1
powerman 2021-08-17 19:13:20 +08:00
看看 String 实现不就好了 ,java 里面的+号 也不过是一个语法糖,不过一大部分人的计算场景来讲,根本不用考虑字符串这个问题
|
3
1194129822 2021-08-17 19:34:19 +08:00 1
思而不学则殆
|
4
des 2021-08-17 20:04:36 +08:00 1
只是编译器 or VM 保证了不变吧,看这个
https://stackoverflow.com/questions/20945049/is-a-java-string-really-immutable |
5
secondwtq 2021-08-17 20:04:38 +08:00 1
还是要分清 specification 和 implementation
> 语言的 string 类型是 immutable 不可变的 (是不是”大多数“就不扯了) 这是 specification 规定的 > 由编译器类型检查保证 这是 implementation 用来 enforce specification 的手段 > 所在的内存是 read-only 这是 implementation 在特定条件下,以不违反 specification 前提做的优化 |