final String string1 = "somestring1";
for (int i = 0; i < 30; i++) {
final String string2 = "somestring2";
if (string2.equals(string1)) { // Using variable
// do stuff
}
}
for (int i = 0; i < 30; i++) {
final String string2 = "somestring2";
if (string2.equals("somestring1")) { // Not using variable
// do stuff
}
}
其中哪一個會更快?直接字符串比字符串變量更快嗎?
1)第一個將它保存爲一個變量,並使用變量,直到循環完成。
2)第二個是每次都會生成一個新的String,不是嗎?
這只是一個例子,在我的情況下,毫秒會很重要。
在此先感謝。
#2不會每次都創建一個新的字符串,但它將不得不每次都檢查池並檢索實習生。請參閱字符串實習:https://en.wikipedia.org/wiki/String_interning – Radiodef
@Radiodef:是什麼讓您認爲每次都要查看實習字符串? –
@LouisWasserman我讀過那幾個地方。爲什麼不需要檢索? JLS指出String字符串是通過'String#intern'方法實現的,該方法的文檔指定池被查詢。 – Radiodef