另一個考試的問題,這讓我感到困惑:String對象計數SCJP
public String makinStrings() {
String s = 「Fred」;
s = s + 「47」;
s = s.substring(2, 5);
s = s.toUpperCase();
return s.toString();
}
的問題是: 「?有多少String對象時,調用此方法將創建」
正確的答案應該是3,但是我統計了:
弗雷德
Fred47
ED4
ED4
是3真的是正確的答案?如果是這樣 - 爲什麼?
從Java語言規範[常量池自Java 7以來已移至Java堆](http://www.oracle.com/technetwork/java/javase/jdk7-relnotes-418459.html#jdk7changes),以及之前該池在熱點JVM上位於'permgen space'中。 – 2015-02-24 12:26:49
這並不排除字符串常量在方法調用過程中沒有實例化的事實,但是當類被實例化時,是不是? – 2015-02-25 23:59:19
Nopes它不排除,但評論是在您的緩存內存概念提到的答案的前一個版本...... – 2015-02-26 09:27:46