Java 开发环境配置 || Java 基础语法

news2024/11/29 3:49:02

Java 开发环境配置

在本章节中我们将为大家介绍如何搭建Java开发环境,以及不同系统下的环境变量怎么配置。


window系统安装java

下载JDK

首先我们需要下载java开发工具包JDK,下载地址:Java Downloads | Oracle

点击如下下载按钮:

 

在下载页面中你需要选择接受许可,并根据自己的系统选择对应的版本,本文以 Window 64位系统为例:

 

下载后JDK的安装根据提示进行,还有安装JDK的时候也会安装JRE,一并安装就可以了。

安装JDK,安装过程中可以自定义安装目录等信息,例如我们选择安装目录为 C:\Program Files (x86)\Java\jdk11.0.1。

配置环境变量

1.右击“我的电脑”→“属性”→“高级系统设置”→“高级”→“环境变量”;

 

2.选择"高级"选项卡,点击"环境变量"; 

3. 新建“JAVA_HOME”系统变量(点击“系统变量”下方的“新建”按钮,填写变量名与变量值,点击“确定”) 
 

 

4. 同上,新建“CLASSPATH”系统变量,变量值为“.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;”。(引号内的全部内容,注意最前方是点不是逗号)

 

5. 双击“系统变量”下的“Path”变量进行编辑。(此时可以看到JAVA_HOME已经存在于系统变量中),(有的电脑"Path"也写作“PATH”) 

 

这是 Java 的环境配置,配置完成后,你可以启动 Eclipse 来编写代码,它会自动完成java环境的配置。

在"系统变量"中设置3项属性,JAVA_HOME,PATH,CLASSPATH(大小写无所谓),若已存在则点击"编辑",不存在则点击"新建"。

变量设置参数如下:

  • 变量名:JAVA_HOME
  • 变量值:C:\Program Files (x86)\Java\jdk1.8.0_91        // 要根据自己的实际路径配置
  • 变量名:CLASSPATH
  • 变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;         //记得前面有个"."
  • 变量名:Path
  • 变量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

注意:如果使用1.5以上版本的JDK,不用设置CLASSPATH环境变量,也可以正常编译和运行Java程序。

通过控制台测试JDK是否安装成功

1、同时按键盘上“win”、“R”两个键打开运行,输入“cmd”确定打开控制台。

 

2、键入命令: java -versionjavajavac 几个命令,出现以下信息,说明环境变量配置成功;

 

Linux,UNIX,Solaris,FreeBSD环境变量设置

环境变量PATH应该设定为指向Java二进制文件安装的位置。如果设置遇到困难,请参考shell文档。

例如,假设你使用bash作为shell,你可以把下面的内容添加到你的 .bashrc文件结尾: export PATH=/path/to/java:$PATH


流行JAVA开发工具

正所谓工欲善其事必先利其器,我们在开发java语言过程中同样需要一款不错的开发工具,目前市场上的IDE很多,本文为大家推荐以下几款java开发工具:

  • Eclipse:另一个免费开源的java IDE,下载地址: Release - Eclipse IDE | The Eclipse Foundation

    选择 Eclipse IDE for Java Developers

  • IntelliJ IDEA(推荐):一个好用的java IDE,专业版功能强大但需要付费,开源版基础功能足够雄厚让你有更好的代码开发体验

      下载地址:IntelliJ IDEA – 领先的 Java 和 Kotlin IDE

Notepad++ : Notepad++ 是在微软windows环境之下的一个免费的代码编辑器,下载地址: http://notepad-plus-plus.org/ 

此外还有很多优秀的代码编辑器,比如vscode,sublime,vim等,在此不做过多介绍。

使用 Eclipse 运行第一个 Java 程序

HelloWorld.java 文件代码:

public class HelloWorld {
    public static void main(String []args) {
       System.out.println("Hello World");
    }
}

Java 基础语法 

一个Java程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作。下面简要介绍下类、对象、方法和实例变量的概念。

  • 对象:对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。
  • :类是一个模板,它描述一类对象的行为和状态。
  • 方法:方法就是行为,一个类可以有很多方法。逻辑运算、数据修改以及所有动作都是在方法中完成的。
  • 实例变量:每个对象都有独特的实例变量,对象的状态由这些实例变量的值决定。

第一个Java程序

下面看一个简单的 Java 程序,它将打印字符串 Hello World

public class MyFirstJavaProgram {
   /* 第一个Java程序.  
    * 它将打印字符串 Hello World
    */
    public static void main(String []args) {
       System.out.println("Hello World"); // 打印 Hello World
    }
} 

下面将逐步介绍如何保存、编译以及运行这个程序:

  • 打开Notepad,把上面的代码添加进去;
  • 把文件名保存为:MyFirstJavaProgram.java;
  • 打开cmd命令窗口,进入目标文件所在的位置,假设是C:\
  • 在命令行窗口键入 javac MyFirstJavaProgram.java  按下 enter 键编译代码。如果代码没有错误,cmd 命令提示符会进入下一行。(假设环境变量都设置好了)。
  • 再键入 java MyFirstJavaProgram 按下 Enter 键就可以运行程序了

你将会在窗口看到 Hello World

C : > javac MyFirstJavaProgram.java
C : > java MyFirstJavaProgram 
Hello World

基本语法

编写Java程序时,应注意以下几点:

  • 大小写敏感:Java是大小写敏感的,这就意味着标识符Hello与hello是不同的。
  • 类名:对于所有的类来说,类名的首字母应该大写。如果类名由若干单词组成,那么每个单词的首字母应该大写,例如 MyFirstJavaClass 。
  • 方法名:所有的方法名都应该以小写字母开头。如果方法名含有若干单词,则后面的每个单词首字母大写。
  • 源文件名:源文件名必须和类名相同。当保存文件的时候,你应该使用类名作为文件名保存(切记Java是大小写敏感的),文件名的后缀为.java。(如果文件名和类名不相同则会导致编译错误)。
  • 主方法入口:所有的Java 程序由public static void main(String[] args)​ 方法开始执行。

Java标识符

Java所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。

关于Java标识符,有以下几点需要注意:

  • 所有的标识符都应该以字母(A-Z或者a-z),美元符($)、或者下划线(_)开始
  • 首字符之后可以是字母(A-Z 或者 a-z),美元符($)、下划线(_)或数字的任何字符组合
  • 关键字不能用作标识符
  • 标识符是大小写敏感的
  • 合法标识符举例:age、$salary、_value、__1_value
  • 非法标识符举例:123abc、-salary

Java修饰符

像其他语言一样,Java可以使用修饰符来修饰类中方法和属性。主要有两类修饰符:

  • 访问控制修饰符 : default, public , protected, private
  • 非访问控制修饰符 : final, abstract, static,synchronized 和 volatile

在后面的章节中我们会深入讨论Java修饰符。

Java变量

Java中主要有如下几种类型的变量

  • 局部变量
  • 类变量(静态变量)
  • 成员变量(非静态变量)

Java数组

数组是储存在堆上的对象,可以保存多个同类型变量。在后面的章节中,我们将会学到如何声明、构造以及初始化一个数组。


Java枚举

Java 5.0引入了枚举,枚举限制变量只能是预先设定好的值。使用枚举可以减少代码中的 bug 。

例如,我们为果汁店设计一个程序,它将限制果汁为小杯、中杯、大杯。这就意味着它不允许顾客点除了这三种尺寸外的果汁。


实例

class FreshJuice {
   enum FreshJuiceSize{ SMALL, MEDIUM, LARGE }
   FreshJuiceSize size;
}

public class FreshJuiceTest {
   public static void main(String args[]){
      FreshJuice juice = new FreshJuice();
      juice.size = FreshJuice. FreshJuiceSize.MEDIUM ;
   }
}

注意:枚举可以单独声明或者声明在类里面。方法、变量、构造函数也可以在枚举中定义。


Java关键字 

下面列出了Java保留字。这些保留字不能用于常量、变量、和任何标识符的名称。 

关键字描述
abstract抽象方法,抽象类的修饰符
assert断言条件是否满足
boolean布尔数据类型
break跳出循环或者label代码段
byte8-bit 有符号数据类型
caseswitch语句的一个条件
catch和try搭配捕捉异常信息
char16-bit Unicode字符数据类型
class定义类
const未使用
continue不执行循环体剩余部分
defaultswitch语句中的默认分支
do循环语句,循环体至少会执行一次
double64-bit双精度浮点数
elseif条件不成立时执行的分支
enum枚举类型
extends表示一个类是另一个类的子类
final表示一个值在初始化之后就不能再改变了
表示方法不能被重写,或者一个类不能有子类
finally为了完成执行的代码而设计的,主要是为了程序的健壮性和完整性,无论有没有异常发生都执行代码。
float32-bit单精度浮点数
forfor循环语句
goto未使用
if条件语句
implements表示一个类实现了接口
import导入类
instanceof测试一个对象是否是某个类的实例
int32位整型数
interface接口,一种抽象的类型,仅有方法和常量的定义
long64位整型数
native表示方法用非java代码实现
new分配新的类实例
package一系列相关类组成一个包
private表示私有字段,或者方法等,只能从类内部访问
protected表示字段只能通过类或者其子类访问
子类或者在同一个包内的其他类
public表示共有属性或者方法
return方法返回值
short16位数字
static表示在类级别定义,所有实例共享的
strictfp浮点数比较使用严格的规则
super表示基类
switch选择语句
synchronized表示同一时间只能由一个线程访问的代码块
this表示调用当前实例
或者调用另一个构造函数
throw抛出异常
throws定义方法可能抛出的异常
transient修饰不要序列化的字段
try表示代码块要做异常处理或者和finally配合表示是否抛出异常都执行finally中的代码
void标记方法不返回任何值
volatile标记字段可能会被多个线程同时访问,而不做同步
whilewhile循环

Java注释

类似于C/C++,Java也支持单行以及多行注释。注释中的字符将被Java编译器忽略。

public class MyFirstJavaProgram{
   /* 这是第一个Java程序
    *它将打印Hello World
    * 这是一个多行注释的示例
    */
    public static void main(String []args){
       // 这是单行注释的示例
       /* 这个也是单行注释的示例 */
       System.out.println("Hello World"); 
    }
} 

Java 空行

空白行,或者只有注释的行,Java编译器都会忽略掉。


继承

在Java中,一个类可以由其他类派生。如果你要创建一个类,而且已经存在一个类具有你所需要的属性或方法,那么你可以将新创建的类继承该类。

利用继承的方法,可以重用已存在类的方法和属性,而不用重写这些代码。被继承的类称为超类(super class),派生类称为子类(subclass)。

接口

在Java中,接口可理解为对象间相互通信的协议。接口在继承中扮演着很重要的角色。

接口只定义派生要用到的方法,但是方法的具体实现完全取决于派生类。

下一节介绍Java编程中的类和对象。之后你将会对Java中的类和对象有更清楚的认识

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/142522.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

阿里CCO:基于Hologres的亿级明细BI探索分析实践

作者:张乃刚(花名:隽驰),CCO数据开发 CCO是Chief Customer Officer的缩写,也是阿里巴巴集团客户体验事业部的简称。随着业务的多元化发展以及行业竞争的深入,用户体验问题越来越受到关注。CCO体验业务运营…

【前端】CSS进阶

四、选择器进阶 1.1后代选择器:空格 作用:根据HTML标签的嵌套关系,选择父元素后代中满足条件的元素 选择器语法:选择器1 选择器2{css} 结果: 在选择器1所找到标签的后代(儿子、孙子、重孙子…&#xf…

Zipkin基础知识及Linux下搭建服务端

Zipkin组成 Zipkin的基础架构,他由4个核心组件构成:分别是Collector、Storage、RESTful API、WebUI Collector:收集器组件,它主要用于处理从外部系统发送过来的跟踪信息,将这些信息转换为 Zipkin 内部处理的 Span 格式…

最快速的获取元素的方法?快到你想象不到~

1、首先我们先准备一个div标签&#xff0c;id定义为box<div id"box"></div>2、通常情况下我们会使用原生js获取&#xff0c;如下所示&#xff1a;let box document.getElementById("box"); // 或者 let box document.querySelector("#b…

【Vue中使用Echarts】Echarts的基本配置

文章目录一、Echarts的基础配置二、柱状图表1.原始柱状图2.经过美化的柱状图3.横向柱状图一、Echarts的基础配置 需要了解的主要配置&#xff1a;series xAxis yAxis grid tooltip title legend color 属性作用series系列列表。每个系列通过 type 决定自己的图表类型 大白话&am…

ConvNeXt V2学习笔记

ConvNeXt V2学习笔记 ConvNeXt V2: Co-designing and Scaling ConvNets with Masked Autoencoders Abstract 在改进的架构和更好的表示学习框架的推动下&#xff0c;视觉识别领域在21世纪20年代初实现了快速现代化和性能提升。例如&#xff0c;以ConvNeXt[52]为代表的现代Co…

目标检测:RCNN、SppNet、Fast RCNN、Faster RCNN是如何过渡的?

目标检测&#xff1a;RCNN、SppNet、Fast RCNN、Faster RCNN、思想总结R-CNN候选框生成Training迁移学习分类与回归候选框R-CNN存在的问题SppNet面临的问题空间金字塔池化特征图映射SppNet存在的问题Fast R-CNNR-CNN与SppNet存在的问题核心思想模型流程ROI Pooling多任务损失的…

力扣刷题记录——326.3的幂、338. 比特位计数、342. 4的幂、350. 两个数组的交集 II

本专栏主要记录力扣的刷题记录&#xff0c;备战蓝桥杯&#xff0c;供复盘和优化算法使用&#xff0c;也希望给大家带来帮助&#xff0c;博主是算法小白&#xff0c;希望各位大佬不要见笑&#xff0c;今天要分享的是——《326.3的幂、338. 比特位计数、342. 4的幂、350. 两个数组…

如何搭建邮箱服务器

目录 部署 DNS 黑名单 Mailcow:dockerized 部署 Mailcow:dockerized 为 Mailcow:dockerized 配置 TLS Mailu.io 生成配置文件 部署 Mailu 安全 S/MIME OpenPGP 推荐阅读 搭建邮局服务器的想法之前一直都有&#xff0c;不过一直没有尝试&#xff0c;国庆的时候从阿里…

62. 目标检测 / 物体检测 以及边缘框代码实现

1. 图片分类和目标检测的区别 2. 边缘框 3. 目标检测数据集 目标检测数据集常用的格式&#xff1a;假设是用文本文件来存的话&#xff0c;每一行表示一个物体&#xff0c;分别有文件名、物体类别、边缘框。因为一个图片文件里面可能有多个物体&#xff0c;同一个文件名可能会出…

STC32G 三电感电磁循迹小车

文章目录前言准备工作增量式以及位置式PID电机闭环电磁采样舵机闭环合并效果前言 准备18届的负压电磁&#xff0c;趁现在考试延期赶紧把车子给调了。 现在速度就只能提到1.5m&#xff0c;再往上调就有点打滑了&#xff0c;只能等后面逐飞把负压电机的做出来了之后看能不能让车…

靶机Os-Hax测试笔记

靶机Os-Hax测试笔记 靶机描述 Difficulty : Intermediate Flag : boot-root Learing : exploit | web application Security | Privilege Escalation Contact … https://www.linkedin.com/in/rahulgehlaut/ This works better with VirtualBox rather than VMware 下载…

elasticsearch 7.9.3知识归纳整理(六)之kibana图形化操作es指南

kibana图形化操作es指南 一、创建用户&#xff0c;角色和权限指引 1.创建角色 1.1 在kibana首页点击Manage and Administer the Elastic Stack下的securitys settings 1.2 点击左侧Security 下的roles 1.3 点击右上角的create role 1.4 输入角色名字 完成后点击下面的create…

C++不知算法系列之迷宫问题中的“见山不是山”

1. 前言 迷宫问题是一类常见的问题。 初识此类问题&#xff0c;应该是“见山是山”&#xff0c;理解问题的原始要求&#xff0c;便是查找从起点到终点的可行之路。 有了广泛的知识体系之后&#xff0c;应该是"见山不是山"。会发现迷宫就是邻接矩阵&#xff0c;树和…

CDH6.3.2整合DolphinScheduler3.0.0

注意事项zookeeper版本兼容要查看dolphinscheduler的libs目录下zookeeper的jar包CDH6.3.2DolphinScheduler3.0.0前置条件默认CDH以正确安装并启动至少官方要求的基础环境以正确安装并配置,点击跳转使用mysql需要驱动包 mysql-connector-java-8.0.16.jar,同时所有服务的libs里面…

电力系统电价与温度模型(Matlab代码实现)

目录 1 数学模型 2 运行结果 3 Matlab代码实现 1 数学模型 用于模拟电价的模型是一个简化形式的混合模型&#xff0c;如下图1所示。其根本驱动因素是天然气价格和气温。该模型在内部捕获了驱动因素与电价的关系之间的关系&#xff0c;以及与一天中的时间、一周中的哪一天和…

日常生产用项目一整套DevOps流水线搭建-笔记一(镜像仓库的设置)

写在前边 很多项目新手在接手开发项目的时候,由于缺乏经验,只能通过比较笨的方法去进行项目的部署和开发.这样就会非常非常的麻烦,重复的工作很多很多.我借着一个项目开发的时机,第一次实现了我原先只在想象中的流水线部署.但是由于跟正规公司的项目规模还有差距,我们的流水线…

十六、状态管理——Vuex(3)

本章概要 action 分发 action在组件中分发 action组合 action 16.7 action 在定义mutation 时&#xff0c;一条重要的原则就是 mutation 必须是同步函数。换句话说&#xff0c;在 mutation() 处理器函数中&#xff0c;不能存在异步调用。例如&#xff1a; mutations:{some…

关于前端的学习

最近在网上想模拟一个ai的围棋&#xff0c;然后在gitee上找了一个算法&#xff0c;想要启动一下。https://gitee.com/changjiuxiong/myGoChess?_fromgitee_search使用说明是这样的&#xff1a;使用说明npm installnpm run dev打开index.html可自定义棋盘大小: new Game(19), n…

Polynomial Round 2022 (Div. 1 + Div. 2, Rated, Prizes!)(A~E)

A. Add Plus Minus Sign给出01字符串&#xff0c;在两两之间加入或者-&#xff0c;使得最后得到的结果绝对值最小。思路&#xff1a;统计1的个数&#xff0c;若是奇数个&#xff0c;那最后绝对值一定是1&#xff0c;否则为0&#xff0c;按照最后结果添加或1即可。AC Code&#…