Skip to content

注释

// 单行注释

/*
 多行注释
*/

/**  
 ** 文档注释:用于为 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

❤️ 数据类型

基本数类

  • 数值类
    • 整数
      • byte 1 字节
      • short 2 字节
      • int 4 字节
      • long 8 字节
    • 浮点数
      • float 4 字节
      • double 8 字节
    • 字符
      • char 2 字节
    • 时间
      • LocalDate 表示一个日期,不包含具体时间部分
      • LocalTime 表示一个时间,不包含日期部分
      • LocalDateTime 表示日期和时间,不包含时区信息
      • ZonedDateTime 表示带时区的日期和时间
      • Duration 表示时间间隔,例如持续时间或持续时间段【2 小时】
      • Period 表示日期间隔,例如持续天数、月数或年数【5 天】
      • Instant 表示时间线上的一个特定时刻【当前时间对应的毫秒时间戳】
  • 非数值类

引用数类

  • String
  • 接口
  • 数组

[!hint] 不管是整数还是浮点数,都允许在数字之间插入任意多个下划线,来增加可读性

java
psvm {
	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);

2

instanceof

判断某个变量是否是某个类型的实例

java
Object obj = ...;  
if (obj instanceof String) {  
    String str = (String) obj;  
    System.out.println(str.length());  
}