如何在java中创建String对象(通过以下代码)

时间:2014-05-29 11:53:57

标签: java string string-pool

通过以下代码在java中创建了多少个String对象: 如果String池中没有包含相同值的String对象。 (我读了somewhere 因为我们传递的参数为" Hello",这是一个字符串文字,它还会创建另一个对象为" Hello" on string游泳池。)

String s="Hello";

5 个答案:

答案 0 :(得分:3)

如果在

之前插入了值,则会在字符串池中插入值而不是对象

答案 1 :(得分:2)

在字符串常量池中只会创建一个String literal

答案 2 :(得分:1)

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

答案 3 :(得分:0)

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

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

另见Will the String passed from outside the java application be saved in String pool?

答案 4 :(得分:-1)

创建一个字符串对象(文字也是对象)IF" Hello"字符串池中尚未存在。