数据类型
八种基本数据类型
| 类型 | 关键字 | 位数 | 默认值 | 取值范围 | 包装类 |
|---|
| 字节型 | byte | 8 位 | 0 | -128 ~ 127 | Byte |
| 短整型 | short | 16 位 | 0 | -32,768 ~ 32,767 | Short |
| 整型 | int | 32 位 | 0 | -2³¹ ~ 2³¹-1 | Integer |
| 长整型 | long | 64 位 | 0L | -2⁶³ ~ 2⁶³-1 | Long |
| 单精度浮点型 | float | 32 位 | 0.0f | ±3.4×10⁻³⁸ ~ ±3.4×10³⁸ | Float |
| 双精度浮点型 | double | 64 位 | 0.0d | ±1.7×10⁻³⁰⁸ ~ ±1.7×10³⁰⁸ | Double |
| 字符型 | char | 16 位 | '\u0000' | 0 ~ 65,535(Unicode) | Character |
| 布尔型 | boolean | 1 位 | false | true / false | Boolean |
引用类型
引用类型变量存储的是对象在堆内存中的地址,而非对象本身。常见的引用类型如下:
| 类型 | 说明 | 示例 |
|---|
| 类(Class) | 用 class 定义的类型,是最常见的引用类型 | String、Integer、自定义类 |
| 接口(Interface) | 用 interface 定义,描述行为规范,不能直接实例化 | Runnable、Comparable |
| 数组(Array) | 存储相同类型元素的有序集合,长度固定 | int[]、String[] |
| 枚举(Enum) | 用 enum 定义的常量集合 | Day.MONDAY |
| 注解(Annotation) | 用 @interface 定义,为代码提供元数据 | @Override、@Deprecated |
引用类型默认值为 null,基本类型不能为 null。基本类型与其对应包装类之间可通过**自动装箱(Autoboxing)/ 拆箱(Unboxing)**进行自动转换。
Object 类常用方法
| 方法 | 描述 |
|---|
hashCode() | 返回对象的哈希码值,用于哈希表(如 HashMap)中确定对象的存储位置 |
getClass() | 返回对象运行时的 Class 对象,可获取类名、父类、接口等元信息 |
equals(Object obj) | 判断两个对象是否相等,默认比较引用地址,子类通常会重写以实现值比较 |
clone() | 创建并返回当前对象的浅拷贝副本,需实现 Cloneable 接口 |
toString() | 返回对象的字符串表示,默认格式为 类名@哈希值,通常会重写以输出有意义的信息 |
notify() | 唤醒在此对象监视器上等待的单个线程,用于线程间通信 |
notifyAll() | 唤醒在此对象监视器上等待的所有线程,用于线程间通信 |
wait() | 使当前线程进入等待状态,直到其他线程调用 notify() 或 notifyAll() 将其唤醒 |
finalize() | 当垃圾回收器确定对象不再被引用时调用,用于释放资源(Java 9 起已废弃) |