我遇到过以下代码谜语:
string a = "S1";
string b = "S2";
a = a+b;
在此之后会留在记忆中的是什么:
"S1S2"
"S2"
"S1"
也在后台
答案 0 :(得分:5)
我认为 c 是正确答案,但其原因与您的不符。
您必须了解实习池:
公共语言运行库自动维护一个名为的表 实习池,包含每个唯一的单个实例 在程序中声明的文字字符串常量,以及任何唯一的 通过调用
Intern
以编程方式添加的String实例 方法
这就是为什么S1
和S2
都会在实习池中,即使没有对它们的引用。
为什么S1S2
会在记忆中显而易见 - a
指向string
。