Posted on 2010-03-03 14:08
BearRui(AK-47) 阅读(2487)
评论(3) 编辑 收藏 所属分类:
Java
Java 中有下面几种基本数据类型:double,float,long,int,short,char,boolean。
分别对应下面几个类包装器:Double,Float,Long,Integer,Short,Character,Boolean。
我们知道基本类型与对应的类之间可以无缝自动转换,这种转换就涉及到了JVM自动装箱和拆箱了,下面列出2个很简单装箱和拆箱的列子:
// 装箱
int i = 0;
// 把i这个基本类型的数赋给Integer类的变量,JVM就会自动装箱
Integer int = i;
// 拆箱
int j = int;
装箱和拆箱都是要花费CPU和内存资源的,所以如果没必要尽量避免使用JVM的自动装箱、拆箱。
下面用二段简单的代码测试一下自动装箱的性能影响:
代码一:
Integer result = 0;
for(int i =0;i < 50000000;i++){
result += i; // 自动装箱
}
代码二:
int result = 0;
for(int i =0;i < 50000000;i++){
result += i;
}
在本机测试第二段代码的效率比第一段代码快10倍左右。