Java中String字面量创建与new创建的区别


转载:https://blog.csdn.net/qq_45404693/article/details/120004171
public class Main {
public static void main(String[] args) {
String a = "string";
String b = "string";
if(a == b)
System.out.println("字面量创建字符串会从字符串常量池中获取,如果没有再创建");
String c = new String("string");
if(a != c)
System.out.println("new创建不会从常量池中获取,每次都会新开辟一个空间");
String d = new String("string2");
String e = "string2";
if(d != e)
System.out.println("new创建的字符串不会加入到字符串常量池中");
}
}

字符串常量池在堆中

浙公网安备 33010602011771号