搭建环境

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
#默认使用 JDK8
setx /M JAVA_HOME "%JDK8_PATH%"
#默认使用 JDK18
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 语句

    1
    2
    3
    if (布尔表达式) {
    语句;//表达式为 true 时执行
    }
    可以用 else 和 else if 嵌套

    switch 语句

    1
    2
    3
    4
    5
    6
    switch (表达式) {
    case1:语句;break;
    case2:语句;break;
    case3:语句;break;
    [default:默认语句;]
    }

    循环语句

    while 语句

    1
    2
    3
    while ( 布尔表达式 ) {
    循环内容;//布尔表达式为 true,一直循环
    }

    do-while 语句

    先执行再判断
    1
    2
    3
    do {
    循环内容;//布尔表达式为 true,一直循环
    } while ( 布尔表达式 );

    for 语句

    1
    2
    3
    for( 初始值; 布尔表达式; 更新) {
    循环内容;//布尔表达式为 true,一直循环
    }

    跳转语句

    break 语句和 continue 语句都可以用来跳出当前循环,break 语句还可以用在 switch 语句当中;两者的主要区别是:
  • break 语句用于结束整个循环语句,不再执行该循环语句或者程序块
  • continue 语句的作用是中断当前的这次循环,还会继续执行后面的循环

break 语句跳出循环,continue 语句继续执行下一个循环