【发布时间】:2017-06-16 18:00:50
【问题描述】:
当我们使用时:
String s = new String("abc");
创建一个String 对象。
s 将存储在堆栈中并引用新对象,并且将在堆中创建一个新对象,而文字将在字符串常量池中。
现在的问题是,新对象的值是多少?它会引用字符串池常量中“abc”的内存还是将“abc”作为值?
【问题讨论】:
-
我不太清楚你在问什么。您是在问
s是否会引用常量池中的对象? -
您能详细说明一下吗?
-
@Yohannes 只是想问一下由 new 运算符创建的对象是指向文字 abc 还是将 abc 作为其值。
-
@JonSkeet 我只是想知道新字符串将保存什么,它是存储在字符串常量池中的文字的内存地址,还是它本身带有值 abc。
-
但是你所说的“携带值abc”是什么意思?您需要非常准确地了解您的问题,否则我们无法真正回答。
标签: java string object memory memory-leaks