以下代码在java中创建了多少个String对象:如果String池中没有包含相同值的String对象。(我在某处读到,由于我们将参数作为“Hello”传递,这是一个字符串文字,它还将在字符串池上创建另一个对象作为“Hello”。)
String s="Hello";
以下代码在java中创建了多少个String对象:如果String池中没有包含相同值的String对象。(我在某处读到,由于我们将参数作为“Hello”传递,这是一个字符串文字,它还将在字符串池上创建另一个对象作为“Hello”。)
String s="Hello";
没有创建对象,而是将值插入到字符串池中,如果它之前插入
字符串常量池中只会创建一个对象。背后的原因是在我们创建对象时,我们没有使用任何“new”关键字。
您需要区分加载和传递类时加载到字符串池的文字(这是您的情况)和通过实际解析/读取/构造某些内容来创建字符串对象的情况。
后一种情况当然更多地发生在程序中,它总是会生成一个新的 String 对象(即使字符串值本身已经在字符串池中)。
如果字符串池中不存在“Hello”,则创建一个字符串对象(文字也是对象)。