一、基本数据类型及其包装类
| 基本类型 | 对应的包装类 |
|---|---|
| byte | Byte |
| short | Short |
| int | Integer |
| long | Long |
| float | Float |
| double | Double |
| char | Character |
| boolean | Boolean |
PS. 数值型包装类继承于Number,字符型和布尔型继承于Object
二、常用方法
| 方法 | 说明 | 举例 |
|---|---|---|
| typeValue() | 生成对象基本值 | obj.intValue(); |
| parseType(String str) | 将字符串转换成基本值 | Integer.parseInt(str); |
| valueOf(String str) | 将字符串转换成基本值 | Integer.valueOf(str); |
| toString() | 生成字符串表示法 | obj.toString(); |
| hashCode() | 生成哈稀表代表 | obj.hashCode(); |
| equals(obj) | 对同一个类的两个对象进行比较 | obj1.equals(obj2); |
PS.
-
例子中的obj是
Integer obj -
包装类的构造方法可接收基本数据类型或字符串为参数
// 基本数据类型为参 Integer obj = new Integer(2); // 字符串为参 Integer objStr = new Integer("2"); -
parseType()与valueOf()方法的不同点在于,parseType()会直接返回数值,但valueOf()不同,它是先将字符串转换成包装类,再通过自动拆箱完成基本类型转换,也就是valueOf返回的是包装类对象。
三、装箱与拆箱
装箱:基本数据类型 => 包装类
// 自动装箱
Integer i2 = 2;
// 手动装箱
Integer integer2 = new Integer(2);
拆箱:包装类 => 基本数据类型
// 自动拆箱
int i = integer1;
// 手动拆箱
int i2 = integer2.intValue();
四、包装类对象的比较
public static void main(String[] args) {
Integer integer = 100;
Integer integer2 = 100;
Integer integer3 = 200;
Integer integer4 = 200;
System.out.println(integer == integer2); // output: true
System.out.println(integer3 == integer4); // output: flase
Double double1 = 100.0;
Double double2 = 100.0;
Double double3 = 200.0;
Double double4 = 200.0;
System.out.println(double1 == double2); // output: false
System.out.println(double3 == double4); // output: flase
Boolean boolean1 = true;
Boolean boolean2 = true;
System.out.println(boolean1 == boolean2); // output: true
}
结论:
- 如果是Integer对象,在[-128, 127]之间不会创建新Integer对象。
- 如果是Double对象,无影响,其对象引用均不相等。
- 如果是Boolean对象,无影响,其对象引用均相等。
本文详细介绍了Java中基本数据类型与对应的包装类,并解释了装箱与拆箱的过程,对比了包装类对象间的差异。
165

被折叠的 条评论
为什么被折叠?



