![]() |
1
6
查看的源代码
总结:字符串包装
正如其他答案中所解释的,也有实习的机制。 |
![]() |
2
12
这实际上不是100%正确。 This blog post is a decent explanation 为什么会这样,以及 字符串常量池 是。 |
![]() |
3
6
字符串文字在Java中被嵌入,所以实际上只有一个字符串对象具有多个引用(当它们相等时,情况并不总是如此)。参见java.net文章 All about intern() 了解更多详细信息。 还有一个很好的例子/解释 3.10.5 String Literals 在jl中,我们讨论了何时将字符串进行约束以及何时将字符串进行区分。 |
![]() |
4
4
这是不必要的。例子:
但是:
现在第二种形式是不鼓励的。有些人(包括我)认为
显然,你不需要为一个常量做这个。
重要的是,如果你通过了
对于非
|
![]() |
5
3
要回答您编辑的问题,Sun JVM有一个
否则,你可以选择把你的弦绑起来,但我会小心的。非常大且不再被引用的字符串在JVM的生命周期中仍将使用内存。 编辑(响应注释):我首先从 here :
Tom Hawtin 描述一些缓存类型以改进一些基准。当我把它放在想法上时,我的观察是内存足迹(在一次完整的垃圾收集之后)会因为没有它而下降。它不是一个文档化的参数,实际上可能只是为了优化一些基准。我的观察是它有帮助,但我不会基于它构建一个重要的系统。 |
![]() |
6
1
有两件事要小心:
|
![]() |
7
0
如果相同的字符串来自一组固定的可能值,那么在这里需要一个类型安全枚举。它不仅会减少字符串的数量,而且会使应用程序更加可靠。您的整个应用程序将知道这个字符串附加了语义,甚至可能是一些方便的方法。 我最喜欢的优化总是那些可以被认为是生成代码的优化。 更好的 不仅仅是更快。10次中有9次,用具体类型替换字符串会导致代码更加正确和自我记录。 |
|
user29759326 · 如何返回递归函数中的最后一个值? 3 月前 |
|
malife89 · 将java中的字符串读取为正确的日期格式 3 月前 |
![]() |
Tim · 在java中,有没有更快的方法将字节数组写入文件? 3 月前 |
![]() |
rudraraj · java中未声明最终变量 4 月前 |
![]() |
Bala Ji · 以下BFS的实施效率如何? 4 月前 |