effictive--避免创建不必要的对象
来源:互联网 发布:互联网十云计算概念股 编辑:程序博客网 时间:2024/06/05 04:17
demo01:
package com.xiaohao.effective;import java.util.Calendar;import java.util.Date;import java.util.TimeZone;/** * 避免创建不必要的对象Calendar,BOOM_START,BOOM_END * @author Administrator * */public class Demo01 {private static final Date BOOM_START;private static final Date BOOM_END;static {Calendar gmtCal = Calendar.getInstance(TimeZone.getTimeZone("GMT"));gmtCal.set(1946,Calendar.JANUARY,1,0,0,0);BOOM_START = gmtCal.getTime();gmtCal.set(1965,Calendar.JANUARY,1,0,0,0);BOOM_END = gmtCal.getTime();}public static boolean isBabyBoomer(Date birthDate) {return birthDate.compareTo(BOOM_START) >= 0 &&birthDate.compareTo(BOOM_END) < 0;}}
demo02:
package com.xiaohao.effective;import java.util.Date;/** * countNum01方法中每执行一次sum +=1,实际上是sum = sum + 1,但是sum是对象,对象不支持“+”运算,所以sum * 会进行自动拆箱和装箱,sum = sum.intValue() + 1; Long sum = new Long(sum); * 就会创建一个Long类型对象,非常耗性能 , 而countNum02并不会如此。 * 注意:要优先使用基本类型而不是装箱基本类型,要当心无意识的自动装箱 * @author Administrator * */public class Demo02 {private static Demo02 d= new Demo02();public static void countNum01(){Long sum = 0L;long t1 = new Date().getTime();for(long i=0;i<Integer.MAX_VALUE;i++) {sum += i;}long t2 = new Date().getTime();System.out.println(sum + " :case " + (t2-t1));}public static void countNum02(){long sum = 0L;long t1 = new Date().getTime();for(long i=0;i<Integer.MAX_VALUE;i++) {sum += i;}long t2 = new Date().getTime();System.out.println(sum + " :case " + (t2-t1));}public static Demo02 getInstance() {if(d == null) {d = new Demo02();}return d;}}
测试demo02:
package com.xiaohao.test;import org.junit.Test;import com.xiaohao.effective.Demo02;public class TestEffective {@Testpublic void testDemo02() {Demo02.getInstance().countNum01();Demo02.getInstance().countNum02();}}
output:
2305843005992468481 :case 7277
2305843005992468481 :case 655
阅读全文
0 0
- effictive--避免创建不必要的对象
- 避免创建不必要的对象
- 避免创建不必要的对象
- 避免创建不必要的对象
- 避免创建不必要的对象
- 避免创建不必要的对象
- 避免创建不必要的对象。
- 避免创建不必要的对象
- 05、避免创建不必要的对象
- 避免创建不必要的SPWeb对象
- EffectiveJava-避免创建不必要的对象
- 第五条:避免创建不必要的对象
- 5、避免创建不必要的对象
- EffactiveJava-避免创建不必要的对象
- 05-避免创建不必要的对象
- 高效Java05:避免创建不必要的对象
- effective--避免创建不必要的对象
- Effective Java -- 避免创建不必要的对象
- mysql 联合索引
- 软件测试必须会的业务测试
- C++实现单例模式
- iOS 按钮、Cell暴力点击触发多次响应的问题研究
- iOS远程真机之ios-minicap安装使用完全指南
- effictive--避免创建不必要的对象
- Android动画之补间动画(二)
- es6中的class
- 在谷歌目标检测(Google object_detection) API 上训练自己的数据集
- 复制文字到剪切板的方法
- 创建固定长度列表
- Zbar二维码扫描
- C++中的static关键字的总结
- react-native热更新之codepush使用