以下是Java程序。
public String makinStrings() {
String s = “Fred”;
s = s + “47”;
s = s.substring(2, 5);
s = s.toUpperCase();
return s.toString();
}
如何找出在String池中创建了多少String对象。我认为创建了4个对象 - “Fred”,“Fred47”,“ed4”,“ED4”。这是正确的假设吗?
答案 0 :(得分:1)
对于Java版本7:
在开头分配“Fred”不会创建新对象,因为它将从literal pool
获取总结 - 每次调用方法都会创建3个字符串。字符串是一个对象,因此返回它不会创建新的 - 它是通过引用完成的。