【发布时间】:2014-05-27 01:03:08
【问题描述】:
所以我正在阅读orcale java tutorials,然后我阅读了
在这种情况下,“Hello world!”是一个字符串文字——代码中的一系列字符,用双引号括起来。每当它在你的代码中遇到一个字符串字面量时,编译器就会创建一个带有它的值的 String 对象
我想确保不是一直在创建随机值,但这让我很困惑,这是否意味着每次我使用字符串文字时,都会创建一个字符串对象?
例如,如果我想避免创建新对象
String message = "am a NOT new string"
for(int i = 0; i < 1000; i++)
{
someStringarray[i] = message;
}
比
更有效率for(int i = 0; i < 1000; i++)
{
someStringarray[i] = "am a new string EVERY time";
}
【问题讨论】:
-
不,这将每次在数组中放置相同的文字。这是合乎逻辑的——毕竟它在你的源文件中只出现一次,即使它在一个循环中。还有字符串实习。
-
我想知道,因为在 JavaScript 中,我将预先使用的所有字符串存储在一个数组中,然后再调用它们
标签: java string optimization memory-management