StringBuffer是安全的,同步的,效率低
StringBuilder是不安全的,不是同步的,效率高
String与StringBuffer、StringBuilder:
String是一个不可变的字符序列;
StringBuffer、StringBuilder是可变的字符序列 ;
String虽然是引用数据类型,但是他当作参数传递时和基本数据类型是一样的(对于String,一旦初始化就不会被改变;String参数传递时,方法结束后该方法就变成垃圾)。
基本数据类型包装类有8种,其中其中都有passIntXXX的方法,可以将这七种的字符串表现形式转换成基本数据类型。
Integer i1 = 127;
Integer i2 = 127;
System.out.println(i1 == i2);
System.out.println(i1.equals(i2));
Integer i3= 128;
Integer i4 = 128;
System.out.println(i3 == i4);
System.out.println(i3.equals(i4));
-128到127是byte的取值范围,如果在这个取值范围内,自动装箱就不会新创建对象,而是从常量池中获取。如果超出了byte的取值范围就会再新创建对象
直接用String进行拼接,会产生很多垃圾;而StringBuffer、StringBuilder在进行拼接时不会。