String name1 = "Tom"; //创建了一个String类型的对象
String name2 = "Lu"+"cy"; //创建了一个String类型的对象(先拼接后创建对象,所以是一个)
String str = "Ja";
String name3 = str + "mes"; //这两行共创建了两个String类型的对象
String name4 = new String("Katty");//创建了两个String类型的对象(字符串"Katty"创建一个,new对象时又创建一个,共两个)
String letters = "a";
for(int i=1; i<=3; i++){
letters = "a"+letters;
} //共创建了4个对象(刚开始创建一个对象,循环三次又创建了3个对象,因此一共创建了四个对象),
//这样拼接的缺点就是不停地创建新对象,从而浪费内存
用StringBuffer创建对象进行拼接时就不会再创建新对象,也就不会浪费太多的内存
StringBuffer name = new StringBuffer("ha");
for(int i=1; i<=3; i++){
name.append("ha"); //拼接
}
System.out.println(name.toString()); //输出:hahahaha
System.out.println(name.length()); //返回字符的个数,此处输出:8
System.out.println(name.reverse()); //反转,此处输出:ahahahah
这几行代码一共只创建了name一个对象