八大基础类型
char、byte、short、int、long、float、double、boolean
八大包装类型
Charater、Byte、Short、Integer、Long、Float、Double、Boolean
什么是拆装箱
装箱:基本类型转变为包装器类型的过程。
拆箱:包装器类型转变为基本类型的过程。
//JDK1.5之前是不支持自动装箱和自动拆箱的,定义Integer对象,必须
Integer i = new Integer(8);
//JDK1.5开始,提供了自动装箱的功能,定义Integer对象可以这样
Integer i = 8;
int n = i;//自动拆箱
拆装箱的目的
java5以后引入了自动拆、装箱机制。装箱对基础类型进行自动转换引用类型,基础类型赋值的时候相当于调用了对象类型.valueOf(),拆箱则是相反的流程。之所以使用自动封装,主要是引入通过常量池,如果命中率比较高的化会提高性能。
使用应该注意的地方
1.包装类进行等值比较时,不管是否在常量池命中范围,不建议直接使用“==”判断,建议使用equals或是转换基本类型判断。
2.不要包装类和基础类混用
Integer s1 = 0;
long t1 = System.currentTimeMillis();
for(int i = 0; i < 1000 * 10000; i++){
s1 += i;
}
long t2 = System.currentTimeMillis();
System.out.println("使用Integer,递增相加耗时:" + (t2 - t1));
int s2 = 0;
long t3 = System.currentTimeMillis();
for(int i = 0; i < 1000 * 10000; i++){
s2 += i;
}
long t4 = System.currentTimeMillis();
System.out.println("使用Integer,递增相加耗时:" + (t4 - t3));
实际输出:
使用Integer,递增相加耗时:81
使用int,递增相加耗时:7
网友评论