【发布时间】:2013-02-22 09:22:52
【问题描述】:
Java 字符串是不可变的,实例化多个具有相同值的字符串会返回相同的对象指针。 (有这个术语吗?“池化”似乎很合适,但这已经是指通过减少实例化来进行缓存以节省时间。)
Java 是否也对其他(用户定义的)不可变类执行此操作(没有术语的事情)? Java 甚至可以检测到一个类是不可变的,还是字符串类独有的东西?
【问题讨论】:
-
+1 有趣的问题。我相信 Java 可以识别只有最终成员的类并将它们视为不可变的,但我对此没有确切的信息。我会关注这个问题。谢谢
-
它没有,考虑一下如果你用反射改变了不可变对象会发生什么..
-
我明白了,我对此有点惊讶。谢谢
-
“这个有术语吗?” Java 称之为"interning" the string。
-
new String("blah") != new String("blah")所以你的第一句话不太准确。
标签: java optimization immutability