通过以下代码在java中创建了多少个String对象: 如果String池中没有包含相同值的String对象。 (我读了somewhere 因为我们传递的参数为" Hello",这是一个字符串文字,它还会创建另一个对象为" Hello" on string游泳池。)
String s="Hello";
答案 0 :(得分:3)
如果在
之前插入了值,则会在字符串池中插入值而不是对象答案 1 :(得分:2)
答案 2 :(得分:1)
在字符串常量池中只创建一个对象。背后的原因是我们创建对象时,我们没有使用任何“新”关键字。
答案 3 :(得分:0)
您需要区分在加载和传递类时加载到字符串池的文字(这是您的情况)以及通过实际解析/读取/构造某些内容来创建字符串对象的情况。
后一种情况当然更多地发生在程序中,并且它总是会生成一个新的String对象(即使字符串值本身已经存在于字符串池中)。
另见Will the String passed from outside the java application be saved in String pool?
答案 4 :(得分:-1)
创建一个字符串对象(文字也是对象)IF" Hello"字符串池中尚未存在。