Language
Specification
Naming
Syntax
Pointer
Handler
Reference
Keyword
final
final关键字的作用
- 修饰类:代表类不可以继承
- 修饰字段:代表字段初始化后不能修改引用
- 修饰方法:代表方法不可以被重写
final变量初始化的时机
- 声明时立即初始化
- 声明后通过构造方法初始化
- 声明时通过代码块初始化
final和finalize的区别
- final是一个关键字
- finally是异常处理时的必执行块
- finalize是Object类的一个方法
this和super
implements和extends
Class
Interface(接口)
Abstract Class(抽象类)
Inner Class(内部类)
Anonymous Class(匿名类)
Enum Class(枚举类)
Constructor
new Constructor
Creator
Builder
Builder.build
Of
Field
字段是类或者实例的属性
- 静态字段(属于类)
- 实例字段(属于实例)
Variable
变量是对象的引用,字段都属于变量
变量分类如下
- 成员变量
- 静态变量
- 实例变量
- 局部变量
- 形参变量
- 方法局部变量
- 代码块局部变量
变量范围如下
- 全局变量(global variable):全局范围,java中没有
- 模块变量(module variable):模块范围,java中没有
- 类属变量(class variable):类属范围,java中又叫静态变量(static variable)
- 实例变量(instance variable):实例范围,java中又叫非静态变量(non-static variable)
- 局部变量(local variable):方法和代码块范围
ps:java中的静态变量(static variable)和 实例变量(instance variable)都属于成员变量(member variable)
Property
支持Getter-Setter的字段叫属性
Getter-Setter
Getter-Setter的规则梳理
- is开头后面的第一个字母大写(去掉is前缀)
- 第一个字母小写和第二个字母小写(首字母大写)
- 第一个字母小写和第二个字母大写(不变)
- 第一个字母大写和第二个字母小写(不变)
- 第一个字母大写和第二个字母大写(不变)
- 全部的字母大写(不变)
- 下划线(去掉下划线且后面的字母大写)
规则总结如下
- is开头后面的第一个字母大写(去掉is前缀)
- 第一个字母小写和第二个字母小写(首字母大写)
- 第一个字母或者第二个字母大写(不变)
ps:字段名称建议使用两个小写字母开头,布尔类型不建议使用is开头
Getter-Setter的常用场景
- Lombok
- Json(Spring)
- Sql(Mybatis)
Getter-Setter的常见问题
- java的Getter-Setter规则
- idea的的Getter-Setter规则
- Lombok的Getter-Setter规则(和java的有差异)
- Jackson字段映射时用的是Getter-Setter方法反射还是字段反射(两种都支持)
- Mybatis字段映射时用的是Getter-Setter方法反射还是字段反射(只支持Getter-Setter方法反射)
- Jackson序列化时is前缀丢失(布尔类型不建议使用is开头)
Method
Function
闭包
Operator
异或的逻辑
- 同为0
- 异为1
异或的作用
- 与0异或:原位保留
- 与1异或:原位取反
位相关的操作
1 | /** |