优先选择基本类型而不是基本类型的包装类型
2015-05-11 11:54
281 查看
Prefer primitives(short,char,int,long,float,double) to boxed primitives(Short,Char,Integer,Long,Float,Double),and watch out for unintentional autoboxing.
优先选择基本类型而不是基本类型的包装类型,还要避免无意识的自动封箱.
我电脑上简单的测试
public static void main(String[] args) {
long startTime = System.currentTimeMillis();
long sum=0L;
//Long sum=0L;
for(long i=0;i<Integer.MAX_VALUE;i++){
sum+=i;
}
System.out.println(sum);
System.out.println(System.currentTimeMillis()-startTime);
}
如果是sum声明long,执行701ms.
如果是sum声明Long,执行10147ms.
巨大差距的原因是什么?
变量sum声明为Long也就意味着代码构造了大约2^31个多余的Long instances(每次执行sum+=i 就创建了一次Long实例).
优先选择基本类型而不是基本类型的包装类型,还要避免无意识的自动封箱.
我电脑上简单的测试
public static void main(String[] args) {
long startTime = System.currentTimeMillis();
long sum=0L;
//Long sum=0L;
for(long i=0;i<Integer.MAX_VALUE;i++){
sum+=i;
}
System.out.println(sum);
System.out.println(System.currentTimeMillis()-startTime);
}
如果是sum声明long,执行701ms.
如果是sum声明Long,执行10147ms.
巨大差距的原因是什么?
变量sum声明为Long也就意味着代码构造了大约2^31个多余的Long instances(每次执行sum+=i 就创建了一次Long实例).
相关文章推荐
- Java 基本类型优先于包装类型,以及二者之间的选择
- Java_语法基础_优先选择基本类型
- Effective Modern C++: Item 5 -> 优先选择auto而不是显式类型声明
- 优先选择基本类型
- javascript基本包装类型
- java基本数据类型传递与引用传递区别详解(一个大神的解析,不是我。。)
- 基本数据类型的包装类
- java equal和==的比较,尤其注意基本类型和基本类型的包装类型的比较
- JavaScript学习笔记——基本包装类型(上)Boolean、Number
- java中基本数据类型和包装类型
- [置顶] JAVA源码分析---基本类型对应的包装类之基本框架
- objective-c(四)-基本数据类型以及循环和选择结构
- 关于java的基本类型和包装类型
- 基本数据类型的包装类
- 基本类型 包装类型 堆与栈 的区别
- 基本数据类型的包装类型作为参数传递,以及其他引用类型作为参数传递,以及List中值的交换的一些问题
- 基本类型与包装(装箱)类型的区别
- java的栈与堆(基本数据类型与包装数据类型)详解
- JDK源码解析基础篇-8种基本数据类型的包装类及相关讨论
- 一道js题(引用类型、基本类型、包装对象、函数赋值)