|
|
1
30
在这个特殊的情况下没有区别; 然而,它们在总体上并不相同。
为了向自己证明这一点,只需制作一个简单的方法,它包含两个字符串
相比之下,
另外,如果
更新: 见 this StackOverflow question ,几乎是一样的。 |
|
|
2
7
两者之间的重要区别
实际上,我不知道为什么
编辑:关于“在字符串池中创建对象”的问题,我认为您误解了字符串池是什么。在运行时,实际的字符序列“str”和“end”将存储在一个专用的数据结构中,并且无论您在何处看到文本
实际上,字符串池是在加载类时填充的,而不是在运行包含字符串文本的代码时填充的。这意味着每个片段只创建一个对象:连接的结果。(在幕后也有一些对象创建,这对每种技术都有点不同,但性能影响不值得担心。) |
|
|
3
1
除非concat的参数是空字符串,否则
也将创建3个字符串。 更多信息: http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html |
|
|
4
1
你似乎对那个词有误解。不存在“字符串池”这样的东西——你使用它的方式,看起来你只是指堆中的所有字符串对象。那里
是
一
runtime constant pool
它包含编译时字符串常量和从
|
|
|
user29759326 · 如何返回递归函数中的最后一个值? 8 月前 |
|
|
malife89 · 将java中的字符串读取为正确的日期格式 8 月前 |
|
|
Tim · 在java中,有没有更快的方法将字节数组写入文件? 8 月前 |
|
|
rudraraj · java中未声明最终变量 9 月前 |
|
|
Bala Ji · 以下BFS的实施效率如何? 9 月前 |