注释
// 单行注释
/*
多行注释
*/
/**
** 文档注释:用于为 Java 代码提供文档和说明信息,方法注释
*/关键字
[!quote] 关键字 关键字 是被 Java 赋予了特定含义的英文单词
- 关键字的字母全部小写,例如
public,class,static,void
标识符
标识符就是在写程序时,自己定义的一些名字,定义规则 :
- 不能以数字开头
- 由数字,字母,下划线,美元符 $ 组成
- 不能是关键字
- 区分大小写
❤️ 变量
[!quote] 成员变量 类中方法外,在堆内存中,有默认初始值
[!quote] 局部变量 类中方法中,在栈内存中,无默认初始值
定义,修改变量 :
java
int a = 0;
long b = 100000000000L;
float c = 13.14f; // 由于13.14默认为double,所以定义为float要加f
a = 20;同名变量的访问顺序 :优先局部变量,再成员变量,最后父类变量
- 如果有局部变量,但想访问成员变量时用
this - 想访问父类变量时,用
super
❤️ 数据类型
基本数类 :
- 数值类
- 整数
byte1 字节short2 字节int4 字节long8 字节
- 浮点数
float4 字节double8 字节
- 字符
char2 字节
- 时间
LocalDate表示一个日期,不包含具体时间部分LocalTime表示一个时间,不包含日期部分LocalDateTime表示日期和时间,不包含时区信息ZonedDateTime表示带时区的日期和时间Duration表示时间间隔,例如持续时间或持续时间段【2 小时】Period表示日期间隔,例如持续天数、月数或年数【5 天】Instant表示时间线上的一个特定时刻【当前时间对应的毫秒时间戳】
- 整数
- 非数值类
引用数类 :
- String
- 类
- 接口
- 数组
[!hint] 不管是整数还是浮点数,都允许在数字之间插入任意多个下划线,来增加可读性
javapsvm { int i = 10_000; // 下划线没有实际含义 System.out.println(i); } --- 10000
❤️ 类型转换
自动类型转换 :把数据范围小的数值或变量,赋值给另一个表示数据范围大的变量 : 
java
double d = 10; //10是int,而经过赋值转换成了double强制类型转换 :把一个表示数据范围大的数值或变量,赋值给另一个表示数据范围小的变量
java
int k = (int) 88.88;❤️ 运算符
+=运算符
- +=运算符可以自动进行类型转换,把 i 转成了与 10 相同的类型 int
java
i += 20;
i = i + 20;自增自减运算符
java
int j = i++; //后置++(先赋值后++)
int j = ++i; //前置++(先++,再赋值)关系运算符
java
== 判断a与b的值是否相同
!= 判断a与b的值是否不相等
>
>=
<
<=逻辑运算符
java
& 逻辑与
| 逻辑或
^ 逻辑异或
! 逻辑非
&& 短路与(只要前面有一个false,那就不执行后面的语句了,直接false)
|| 短路或(只要前面有一个true,那就不执行后面的语句了,直接true)三元运算符
关系表达式 ? 表达式 1 : 表达式 2;
计算规则 :
- 首先计算关系表达式的值
- 如果为 true,那表达式 1 的值就是结果
- 如果为 false,那表达式 2 的值就是结果
java
int a = 1;
int b = 2;
int c = (a==b ? a++ : b++);
sout(c);
2instanceof
判断某个变量是否是某个类型的实例
java
Object obj = ...;
if (obj instanceof String) {
String str = (String) obj;
System.out.println(str.length());
}