摘自:http://www.codeceo.com/article/java-boxing-unboxing.html
Java的四类八种基本数据类型
基本类型 | 占用空间(Byte) | 表示范围 | 包装器类型 |
boolean |
1/8 |
true|false |
Boolean |
char |
2 |
-128~127 |
Character |
byte |
1 |
-128~127 |
Byte |
short |
2 |
-2ˆ15~2ˆ15-1 |
Short |
int |
4 |
-2ˆ31~2ˆ31-1 |
Integer |
long |
8 |
-2ˆ63~2ˆ63-1 |
Long |
float |
4 |
-3.403E38~3.403E38 |
Float |
double |
8 |
-1.798E308~1.798E308 |
Double |
自动装箱 代码清单1
public void boxingTest() { Integer i1 = 17;
Integer i2 = 17; Integer i3 = 137;
Integer i4 = 137;
// true 是两个基本类型的比较
System.out.println(i1 == i2);
// false 是两个对象的比较 i3.equals(i4)返回的是true 自动拆箱
// Integer对象自动缓存int值范围在low~high(-128~127),如果超出这个范围则会自动装箱为包装类。
System.out.println(i3 == i4);
}
自动拆箱 代码清单2
public void unboxingTest() {
Integer i1 = 17;
int i2 = 17; int i3 = 137;
Integer i4 = 137;
// true
System.out.println(i1 == i2);
// true i4会调用Integer.intValue方法自动拆箱包装器类型为基本数据类型。
System.out.println(i3 == i4); }