String a ="aa"; //字符串常量池开始是没有这个字符串,所以创建一个,然后变量指向这个"aa"的地址
String b ="aa"; //上面一个变量已经在字符串常量池里创建了这个"aa"了,所以不会再重新创建,直接将b也指向这个"aa"
所以a和b在比较地址的时候,结果是为true!!
注意,String a = "aa"; 和 String b = new String("aa"); 这两种创建方式是不一样的!!!!
String s = "abc"; //是在字符串常量池中创建一个"abc"对象
String s1 = new String("abc"); //这个是用new的方法在堆中创建一个String对象,它是在构造当中创建并接收了一个"abc"对象,总共创建两个对象。 |