1.1、String类两种赋值方式
直接赋值(匿名对象):使用"=="比较结果为true,进入堆空间对象池;
构造方法:"=="结果为false,每次赋值完成后,不进入对象池,产生内存垃圾。(不使用)
String a = "xx";
String a = new String ("xx");
1.2、字符串的比较
用"=="比较的是栈空间内所保存的地址,而 eauals() 比较的是堆空间的字符,且可以处理null。
public class TestEquals {
public static void main(String args[]) {
String arr = "Hello";
String brr = "Hello";
String crr = new String("Hello");
System.out.println(arr == brr);
System.out.println(arr == crr);
System.out.println(brr == crr);
}
}
1.3、字符串的内容不会被改变,改变只是利用了引用关系。
public class TestChangeString {
public static void main(String args[]) {
String arr = "Hello";
arr += 123;
arr += "!!";
System.out.println(arr);
}
}