1.不可变String
- String对象是不可变的。String类中每一个看起来会修改String值的方法,实际上都是创建了一个全新的String对象。
2.重载“+”与StringBuilder
字符串与➕相关的操作,编译器底层还是使用StringBuilder操作的,如果字符串造作比较简单,那就可以信赖编译器,如果字符串比较复杂或者在toString()使用循环的话,那么还是创建一个StringBuilder对象。
private static void test3() {
String mango = "mango";
String s = "abc" + mango + "def" +47;
out.println(s);
}
3.无意识的递归
当编译器看到String对象后面跟一个➕而后面的对象不是String后,会将后面的对象转成一个String,正是通过this的toString()方法。
public class JavaDemo {
@Override
public String toString() {
return "JavaDemo : " + super.toString() + "\n";
}
}
网友评论