![]() |
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
它包含编译时字符串常量和从
|
![]() |
Ben · 统计向量中的单词在字符串中出现的频率 4 月前 |
![]() |
bear_525 · 从列中删除中间名和首字母,并保存在单独的列中 6 月前 |
![]() |
asdfadf · 为什么具有相同内存值的字符串和整数打印方式不同? 6 月前 |
![]() |
user764754 · 防止多行原始字符串文字中出现新行字符 6 月前 |
![]() |
Bogaso · 从列表中返回与模式匹配的元素 6 月前 |
![]() |
Jasco · 如何使用VBA提取两个相似字符之间的字符串中的单词? 6 月前 |