Ala*_*lan 20 string immutability
一旦我研究了字符串不可变的优点,因为有些东西可以改善内存中的性能.
任何人都可以向我解释一下吗?我在互联网上找不到它.
LBu*_*kin 34
不变性(对于琴弦或其他类型)可以有许多优点:
不可变字符串也有助于避免使用字符串作为缓冲区的诱惑.C/C++程序中的许多缺陷与使用裸字符数组组成或修改字符串值导致的缓冲区溢出问题有关.将字符串视为可变类型可以鼓励使用更适合缓冲区操作的类型(请参阅StringBuilder.NET或Java).
考虑替代方案.Java没有const限定符.如果String对象是可变的,那么将引用传递给字符串的任何方法都可能具有修改字符串的副作用.不可变的字符串消除了对防御性副本的需要,并降低了程序错误的风险.