阿里巴巴开发手册

1 .循环体内,字符串的联接方式,使用StringBuilder的append方法进行扩展。

反例:
String str = "start";
for(int i=0; i<100; i++){
	str = str + "hello";
}
说明:反编译出的字节码文件显示每次循环都会new出一个StringBuilder对象,然后进行append操作,最后通过toString方法返回String对象,造成内存资源浪费。

 

2 . 注意 Math.random()这个方法返回是double类型,注意取值的范围 0≤x<1(能够取到零值,注意除零异常),如果想获取整数类型的随机数,不要将x放大10的若干倍然后取整,直接使用Random对象的nextInt或者nextLong方法。

 

3. 所有的相同类型的包装类对象之间值的比较,全部使用equals方法比较。

说明:对于Integer var=?在-128至127之间的赋值,Integer对象是在IntegerCache.cache产生,会复用已有对象,这个区间内的Integer值可以直接使用==进行判断,但是这个区间之外的所有数据,都会在堆上产生,并不会复用已有对象,这是一个大坑,推荐使用equals方法进行判断。

 

What do you want to be?
原文地址:https://www.cnblogs.com/CatsBlog/p/9207439.html