二.基本数据类型优先于封装类型
java的数据类型包含基本类型,如byte,char,short,int,long,float,double,boolean。和引用类型,如String,List。每一个基本数据类型都对应一个引用类型,称为封装类分别对应的是:Byte,Character,Integer,Long,Float,Double,boolean。
基本数据类型和封装类之间区别主要有三个:
- 基本数据类型只能按值传递,而封装类按引用传递。
- int的默认值为0,而Integer的默认值为null
- 基本数据类型是在栈中创建,封装类是在堆中创建
public class Test {
public static void main(String[] args) {
Long sum = 0L;
for(int i = 0;i<Integer.MAX_VALUE;i++){
sum += i;
}
System.out.println(sum);
}
}
这个程序运行起来比预计的要慢一些,因为它将局部变量sum声明为了封装类,程序运行的时候变量被反复的装箱和拆箱,导致明显的性能下降。
当可以选择的时候尽量使用基本数据类型,基本类型更加简单。使用封装类的时候对封装类进行操作的时候注意空指针的异常。
二.当心字符串连接的性能
字符串连接操作符“+”是把多个字符串合并为一个字符串的便利途径。但是在大规模的场景中不适合运用,为连接n个字符串而重复使用字符串连接符操作,需要n的平方级的时间。这是由于字符串的不可变性导致。
如果需要在大规模场景中使用字符串连接可以使用StringBuilder代替String,使用它的append()方法进行字符串连接。