您的位置:首页 > 其它

小提示——避免不必要的自动装箱、拆箱

2010-03-04 09:36 211 查看
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倍左右。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: