字符串是值类型或引用类型
本文关键字:引用类型 类型 字符串 | 更新日期: 2023-09-27 18:20:29
我对字符串(引用类型或值类型)有一些困惑,我有两个字符串类型的变量,我将值分配给第一个变量,然后将相同的变量分配给第二个变量?
string string1 = "abc";
string string2 = string1;
string1 = "xyz";
这里字符串1是保存值xyz,字符串2是abc
下面是发生的事情:
string string1 = "abc";
string1
是对字符串"abc"的引用,该字符串位于某个堆中。
string string2 = string1;
string2
是另一个引用,恰好指向与string1
相同的内存位置。使用赋值运算符时,该引用已复制到string2
。现在有两个变量指向内存中的同一位置。
string1 = "xyz";
string1
现在指向一个新创建的字符串,该字符串包含"xyz"。string2
仍然指向"abc",它仍然可访问并且不会被垃圾收集。
无论如何,是的;字符串是一种引用类型。