JDK、JRE、JVM 的区别
- JDK(Java Development Kit):包含编译器、调试器、文档生成工具等开发工具。
- JRE(Java Runtime Environment):包含 JVM 和核心类库,用于运行 Java 程序。
- JVM(Java Virtual Machine):负责执行字节码,屏蔽底层平台差异。
Java 基本数据类型
| 类型 | 字节数 | 范围 |
|---|---|---|
| byte | 1 | -128 ~ 127 |
| short | 2 | -32768 ~ 32767 |
| int | 4 | -2³¹ ~ 2³¹-1 |
| long | 8 | -2⁶³ ~ 2⁶³-1 |
| float | 4 | IEEE 754 单精度 |
| double | 8 | IEEE 754 双精度 |
| char | 2 | 0 ~ 65535(UTF-16) |
| boolean | 未定义 | true / false |
自动装箱与拆箱
- 自动装箱:基本类型转换为包装类(如
int→Integer)。 - 自动拆箱:包装类转换为基本类型(如
Integer→int)。 - 陷阱:
Integer缓存池范围为 -128~127,超出范围会创建新对象。
面向对象四大特性
- 封装:隐藏内部实现,通过方法暴露功能。
- 继承:子类复用父类属性和方法。
- 多态:父类引用指向子类对象,调用重写方法。
- 抽象:提取共性,忽略细节(通过抽象类或接口实现)。
重载 vs 重写
| 维度 | 重载(Overload) | 重写(Override) |
|---|---|---|
| 发生位置 | 同一类中 | 子类中 |
| 方法签名 | 方法名相同,参数列表不同 | 方法名、参数、返回类型一致 |
| 访问修饰符 | 无限制 | 不能比父类更严格 |
抽象类 vs 接口
| 特性 | 抽象类 | 接口 |
|---|---|---|

