1
misaka19000 2019-11-20 23:40:33 +08:00
根本原因在于防止误修改吧,类似于 Python 里的 global
|
2
aguesuka 2019-11-21 00:58:06 +08:00 via Android
effective java 最小化可变性
|
3
hinate 2019-11-21 09:26:45 +08:00
符号引用是字符串,这个字符串包含足够的信息,以供实际使用时可以找到相应的位置。
符号引用会被替换为直接引用,下次就不用搜索了。直接引用就是偏移量,通过偏移量虚拟机可以直接在该类的内存区域中找到方法字节码的起始位置。 |
4
zappos 2019-11-21 10:55:38 +08:00
你自己尝试一下,字符串各种操作是新生成字符串方便还是在原字符串上改动方便。
结论就是不可变字符串在时间上不弱于可变字符串,在空间上由于有了常量池甚至更优。 这才是字符串默认不可变的原因。 |