1

以下代码在java中创建了多少个String对象:如果String池中没有包含相同值的String对象。(我在某处读到,由于我们将参数作为“Hello”传递,这是一个字符串文字,它还将在字符串池上创建另一个对象作为“Hello”。)

String s="Hello";
4

5 回答 5

3

没有创建对象,而是将值插入到字符串池中,如果它之前插入

于 2014-05-29T11:56:41.047 回答
2

字符串常量池中只会创建一个字符串 字面量。

于 2014-05-29T11:55:39.173 回答
1

字符串常量池中只会创建一个对象。背后的原因是在我们创建对象时,我们没有使用任何“new”关键字。

于 2014-05-29T12:40:14.520 回答
0

您需要区分加载和传递类时加载到字符串池的文字(这是您的情况)和通过实际解析/读取/构造某些内容来创建字符串对象的情况。

后一种情况当然更多地发生在程序中,它总是会生成一个新的 String 对象(即使字符串值本身已经在字符串池中)。

另请参阅从 java 应用程序外部传递的字符串是否会保存在字符串池中?

于 2014-08-10T01:56:00.273 回答
-1

如果字符串池中不存在“Hello”,则创建一个字符串对象(文字也是对象)。

于 2014-05-29T11:59:33.893 回答