了解 Java 字符串不变性 - Java 编程入门

Java 中的 String 类对象又叫做不可变字符串,因为不能修改 Java 字符串中的字符。如同数字 3 永远是数字 3 一样,字符串“Hello”永远包含字符串 H、e、l、l 和 o 的代码单元序列,而不能修改其中的任何一个字符。

String myStr = "Bob";
myStr[0] = "J";
//error: array required, but String found

String 并不是字符型数组,更像是 char* 指针。当然,可以修改字符串变量 greeting,让它引用另外一个字符串,这就如同把存放 3 的数值变量改成存放 4 一样。

String myStr = "Bob";
myStr = "Job";

不可变字符串可以让编译器共享字符串。可以想象将字符串存放在公共的存储池中。字符串变量指向存储池中相应的位置,如果复制一个字符串变量,原始字符串和复制的字符串共享相同的字符。

Loading...


Run