搭建环境
Oracle & 账号分享
多版本 JDK
下载并安装想要的版本,设置环境变量
1 2 3 4
| setx /M JDK8_PATH "C:\Program Files\Java\jdk1.8.0_361" setx /M JDK18_PATH "C:\Program Files\Java\jdk-18.0.1.1" setx /M JAVA_HOME "" setx /M Path "%Path%" "%JAVA_HOME%\bin"
|
设置
1 2 3 4 5
| setx /M JAVA_HOME "%JDK8_PATH%"
setx /M JAVA_HOME "%JDK18_PATH%" java -version
|
PS. 如果不成功请删除,Path 环境变量中的C:\ProgramData\Oracle\Java\javapath
Maven
语法基础

标识符
在 Java 中,标识符用来给程序中的包、常量、变量、方法、类和接口命名,其命名需要遵循如下规范:
- 标识符由英文字母 A~Z、a~z、数字 0~9、 _ 、$ 组成
- 标识符的首字符必须是字母、下画线或 $
- 标识符的命名不能与关键字、布尔值(true、false)和 null 相同
- 标识符严格区分大小写,没有长度限制
- 为了使程序具有可读性,标识符命名须符合顾名思义的规则,如:姓名使用 name,年龄使用 age
关键字
关键字是事先定义的有特殊含义的单词,Java 的关键字对 Java 的编译器有特殊的意义,和其他编程语言一样,Java 中预留了很多关键字,如:public、void、for、if 等
类别 |
关键字 |
说明 |
访问控制 |
private |
私有的 |
访问控制 |
protected |
受保护的 |
访问控制 |
public |
公共的 |
访问控制 |
default |
默认 |
修饰符 |
abstract |
声明抽象 |
修饰符 |
class |
类 |
修饰符 |
extends |
扩充,继承 |
修饰符 |
final |
最终值,不可改变的 |
修饰符 |
implements |
实现(接口) |
修饰符 |
interface |
接口 |
修饰符 |
native |
本地,原生方法(非 Java 实现) |
修饰符 |
new |
创建 |
修饰符 |
static |
静态 |
修饰符 |
strictfp |
严格,精准 |
修饰符 |
synchronized |
线程,同步 |
修饰符 |
transient |
短暂 |
修饰符 |
volatile |
易失 |
程序控制语句 |
break |
跳出循环 |
程序控制语句 |
case |
定义一个值以供 switch 选择 |
程序控制语句 |
continue |
继续 |
程序控制语句 |
do |
运行 |
程序控制语句 |
else |
否则 |
程序控制语句 |
for |
循环 |
程序控制语句 |
if |
如果 |
程序控制语句 |
instanceof |
实例 |
程序控制语句 |
return |
返回 |
程序控制语句 |
switch |
根据值选择执行 |
程序控制语句 |
while |
循环 |
错误处理 |
assert |
断言表达式是否为真 |
错误处理 |
catch |
捕捉异常 |
错误处理 |
finally |
有没有异常都执行 |
错误处理 |
throw |
抛出一个异常对象 |
错误处理 |
throws |
声明一个异常可能被抛出 |
错误处理 |
try |
捕获异常 |
包相关 |
import |
引入 |
包相关 |
package |
包 |
基本类型 |
boolean |
布尔型 |
基本类型 |
byte |
字节型 |
基本类型 |
char |
字符型 |
基本类型 |
double |
双精度浮点 |
基本类型 |
float |
单精度浮点 |
基本类型 |
int |
整型 |
基本类型 |
long |
长整型 |
基本类型 |
short |
短整型 |
变量引用 |
super |
父类,超类 |
变量引用 |
this |
本类 |
变量引用 |
void |
无返回值 |
保留关键字 |
goto |
是关键字,但不能使用 |
保留关键字 |
const |
是关键字,但不能使用 |
- 所有的关键字都是小写的。
- 程序中的标识符不能以关键字命名,否则会出现编译错误
注释
注释是程序中的非执行部分,是对代码的解释和说明;好的注释可以提高程序的可阅读性,减少软件的维护成本
- 单行注释://
- 多行注释:
/*
开头、*/
结束
- 文档注释:
/**
开头、*/
结尾、@
作为标签前缀
标签 |
含义 |
@author |
用于标记作者 |
@version |
用于标记版本 |
@param |
参数及其含义 |
@since |
最早使用该方法、类、接口的 JDK 版本 |
数据类型
标签 |
含义 |
字节 |
位数 |
取值范围 |
默认值 |
boolean |
布尔型 |
- |
- |
true,false |
false |
byte |
字节型 |
1 |
8 |
-128 ~ +127 |
0 |
char |
字符型 |
2 |
16 |
0 ~ 65535 |
‘u0000’ |
double |
双精度浮点 |
8 |
64 |
-1.79E+308 ~ +1.79E+308 |
0.0d |
float |
单精度浮点 |
4 |
32 |
-3.40E+38 ~ -3.40E+38 |
0.0f |
int |
整型 |
4 |
32 |
-2147483648 ~ +2147483647 |
0 |
long |
长整型 |
8 |
64 |
-263 ~ 263-1 |
0L |
short |
短整型 |
2 |
16 |
-32768 ~ +32767 |
0 |
常量 & 变量
- 局部变量(Local Variables):定义在方法、构造方法或语句块中的变量,作用域只限于当前方法、构造方法或语句块中;局部变量必须在使用前声明,并且不能被访问修饰符修饰
- 成员变量(Instance Variables):定义在类中、方法之外的变量,作用域为整个类,可以被类中的任何方法、构造方法和语句块访问;成员变量可以被访问修饰符修饰
- 静态变量(Class Variables):定义在类中、方法之外的变量,并且使用 static 关键字修饰,作用域为整个类,可以被类中的任何方法、构造方法和语句块访问,静态变量的值在程序运行期间只有一个副本;静态变量可以被访问修饰符修饰
- 参数变量(Parameters):方法定义时声明的变量,作为调用该方法时传递给方法的值;参数变量的作用域只限于方法内部
运算符
算术运算符
| 操作符 | 描述 |
|——-|—————————|
| + | 加法:相加运算符两侧的值 |
| - | 减法:左操作数减去右操作数 |
| * | 乘法:相乘操作符两侧的值 |
| / | 除法:左操作数除以右操作数 |
| % | 取余:左操作数除以右操作数的余数 |
| ++ | 自增:操作数的值增加 1 |
| — | 自减:操作数的值减少 1 |关系运算符
| 运算符 | 描述 | 例子 |
|——-|————————————————-|——————-|
| == | 检查如果两个操作数的值是否相等,如果相等则条件为真 | (A == B)为假 |
| != | 检查如果两个操作数的值是否相等,如果值不相等则条件为真 | (A != B) 为真 |
| > | 检查左操作数的值是否大于右操作数的值,如果是那么条件为真 | (A> B)为假 |
| < | 检查左操作数的值是否小于右操作数的值,如果是那么条件为真。 | (A = | 检查左操作数的值是否大于或等于右操作数的值,如果是那么条件为真 | (A> = B)为假 |
| <= | 检查左操作数的值是否小于或等于右操作数的值,如果是那么条件为真 | (A <= B)为真 |位运算符
- &:如果相对应位都是 1,则结果为 1,否则为 0;(A&B),得到12,即0000 1100
- |:如果相对应位都是 0,则结果为 0,否则为 1;(A | B)得到61,即 0011 1101
- ^:如果相对应位值相同,则结果为 0,否则为 1;(A ^ B)得到49,即 0011 0001
- 〜:按位取反运算符翻转操作数的每一位,即 0 变成 1,1 变成 0;(〜A)得到-61,即1100 0011
- <<:按位左移运算符,左操作数按位左移右操作数指定的位数;A << 2 得到 240,即 1111 0000
- >>:按位右移运算符,左操作数按位右移右操作数指定的位数;A >> 2 得到 15 即 1111
- >>>:按位右移补零操作符,左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充;A>>>2 得到 15 即 0000 1111
逻辑运算符
- &&:称为逻辑与运算符,当且仅当两个操作数都为真,条件才为真
- ||:称为逻辑或操作符,如果任何两个操作数任何一个为真,条件为真
- !:称为逻辑非运算符,用来反转操作数的逻辑状态,如果条件为 true,则逻辑非运算符将得到 false
赋值运算符
其他运算符
条件语句
if 语句
可以用 else 和 else if 嵌套
switch 语句
1 2 3 4 5 6
| switch (表达式) { case 值1:语句;break; case 值2:语句;break; case 值3:语句;break; [default:默认语句;] }
|
循环语句
while 语句
1 2 3
| while ( 布尔表达式 ) { 循环内容; }
|
do-while 语句
先执行再判断
1 2 3
| do { 循环内容; } while ( 布尔表达式 );
|
for 语句
1 2 3
| for( 初始值; 布尔表达式; 更新) { 循环内容; }
|
跳转语句
break 语句和 continue 语句都可以用来跳出当前循环,break 语句还可以用在 switch 语句当中;两者的主要区别是:
- break 语句用于结束整个循环语句,不再执行该循环语句或者程序块
- continue 语句的作用是中断当前的这次循环,还会继续执行后面的循环
break 语句跳出循环,continue 语句继续执行下一个循环