Java基础与核心语法整理
语法
1、数据类型与类型转换
基础类型、包装类型、自动拆装箱、强制类型转换是高频内容。
2、流程控制与运算规则
自增、自减、三元表达式、取余与取模重点看求值顺序和边界值。
3、数组、集合和遍历方式
for、foreach、Map 查找都要会选。
1 | List<Role> roles = roleService.find(null); |
对象
对象创建、构造器、this、无参构造、有参构造要一起看。JavaBean、反射、序列化、ORM 映射都依赖这些基础。
常见坑:
1、类里什么构造器都不写,编译器会补无参构造
2、只写了有参构造,编译器不会再补无参构造
3、很多框架默认就是通过无参构造 + setter 反射创建对象
1 | public class User { |
这种写法手动 new 没问题,但交给反射、序列化、ORM 时经常直接报错。
集合
遍历集合时,只读优先 foreach,依赖索引或需要修改元素时用 for。
1 | for (File file : files) { |
数据量上来以后,先看复杂度。List 转 Map 本质是用空间换时间。
1 | List<Role> roles = roleService.find(null); |
数组初始化、数组拷贝、Arrays.toString、交并差集处理都很常用。
易错点
1、自增、自减和表达式求值顺序
2、取余 % 和 Math.floorMod() 的差别
3、基本类型和包装类型之间的边界
4、字符串常量、StringBuilder、StringBuffer 的使用场景
5、String.format() 和占位符格式
1 | String text = String.format("订单号:%03d", 7); |
类型
无参构造影响反射;instanceof 要看继承边界;枚举常用于状态约束;泛型解决类型安全。
1 | System.out.println((null instanceof UserReceivedStageDTO)); // false |
枚举重点记 3 个点:
1、枚举本质上是继承 Enum 的类
2、枚举实例天然是 static final
3、枚举比较优先用 ==
1 | Color color = null; |
泛型重点记擦除:
1、运行时拿不到 Pair<String>.class
2、不能判断 x instanceof Pair<String>
3、? extends T 适合读,? super T 适合写
1 | Pair<Integer> pair = new Pair<>(1, 2); |
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Comment



