String str = “abc”;这种写法省内存
这种写法是保存在方法区的叫做字符串常量池的缓冲区中,相同值得只有一个
和String str = new String(“abc”);不一样
package StringTest;
public class String2 {
public static void main(String[] args) {
//方法区的字符串常量池,相同的值地址一样
String a1 = "a";
String a2 = "a";
//堆内存,即使值相同,地址也不一样
String b1 = new String("a");
String b2 = new String("a");
//比较地址
System.out.println(a1==a2);
System.out.println(b1==b2);
System.out.println(a1==b1);
System.out.println("---------------");
//比较值
System.out.println(a1.equals(a2));
System.out.println(b1.equals(b2));
System.out.println(a1.equals(b1));
}
}