在多数语言中,字符串是不可修改的,也许有人会疑惑
在代码
String str = "String 1";
str = "String 2";
中,
str = "String 2"
不是修改了字符串吗?
事实上,
str = "String 2"
是重新新建(new)了一个字符串
相当于
str = new String("String 2"); // ( Java , C# )
而数字( 整型 ,浮点型,等) 类型是可以修改的,
在代码
int num = 1;
num = 2;
中,
num = 2;
是直接修改 num 的值。
num 的值存放在一块内存 block 中,修改 num 的值,不会重新分配内存,而是直接在当前 block 中修改值。