如果例如:
String str1 = “abc”;
String str2 = new String(“def”);
那么,
案例1:String str3 = str1.concat(str2)
会进入堆还是池?
案例2:String str4 = str2.concat(“HI”)
会进入堆还是池?
最佳答案
在java中,无论你使用new关键字创建哪个字符串,都将在堆内存中创建。如果你创建任何字符串而不使用new,它将在字符串池中创建,并且将被称为字符串常量。字符串常量池值只有一份副本,这意味着字符串池中不会存在重复项。
关于java - 在普通内存和字符串池中创建新字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25956404/