我正在为J2ME设备编写一个应用程序,并且非常关心不必要的字符串创建.由于使用Strings是内置的,即没有必要明确地创建它们,我不确定我是否理解它.
例如,返回一个String(只是使用双引号)在返回时创建字符串,即如果我有几个返回语句返回不同的字符串,则只会创建一个字符串.是对的吗?
此外,当使用字符串打印带有异常的消息时,如果不抛出异常,这些字符串永远不会被创建,对吧?
抱歉打扰你这样一个新手问题.
我完全不确定您到目前为止收到的答案。如果您只是返回字符串文字,例如
return "foo";
Run Code Online (Sandbox Code Playgroud)
然后这些值被嵌入到类文件中。JVM 确保只创建该字符串的一个实例(从字面上) - 但我不认为在加载类本身时它不会为类中的所有常量创建字符串。
话又说回来,因为字符串只会创建一次(每个字符串常量),所以不太可能成为问题。
现在,如果您的代码实际上更像这样:
return "foo" + new Date();
Run Code Online (Sandbox Code Playgroud)
那么这就是动态创建一个字符串 - 但只有在实际命中 return 语句时才会创建它。
| 归档时间: |
|
| 查看次数: |
251 次 |
| 最近记录: |