package zxj.com.cn;
public class Demo {
public static void main(String[] args) {
String strA = "abc";
String strB = new String("abc");
System.out.println("strA == strB ? " + (strA == strB ? true : false));
//false strA指向的是常量池;strB指向的是堆内存地址
String strC = "abc";
System.out.println("strA == strC ? " + (strA == strC ? true : false));
//true strA和strC都是指向常量池同一个abc常量
String StrD = "ab";
String StrE = "c";
String StrF = StrD + StrE;
System.out.println("strA == StrF ? " + (strA == StrF ? true : false));
//false strA指向的是常量池中的abc;StrF同时指向了常量池中ab和c的两个常量
String strBB = new String("abc");
System.out.println("strB == strBB ? " + (strB == strBB ? true : false));
//false strBB会重新在堆内存开辟新的空间与strB内存地址不同
}
}