关于字符串驻留
来源:互联网 发布:java 输出参数 out 编辑:程序博客网 时间:2024/06/03 20:47
首先看几个例子:
示例1:
static void Main()
{
string s2 = "ab";
s2 += "c";
Console.WriteLine(string.IsInterned(s2) ?? "null");
string s1 = "abc";
}
示例2:
static void Main()
{
string s2 = "ab";
s2 += "c";
Console.WriteLine(string.IsInterned(s2) ?? "null");
string s1 = GetStr(); // 这个方法返回字符串“abc”
}
示例3:
public const string s1 = "abc";
static void Main()
{
string s2 = "ab";
s2 += "c";
Console.WriteLine(string.IsInterned(s2) ?? "null");
}
示例4:public static string s1 = "abc";static void Main(){string s2 = "ab";s2 += "c";
Console.WriteLine(string.IsInterned(s2) ?? "null");}
示例1的运行结果:"abc"
示例2的运行结果:null
示例3的运行结果:null
示例4的运行结果:"abc"
我对示例1的结果非常疑惑,什么时机才改变intern pool 的hashtable?按代码执行的先后顺序来讲,"abc"应该是没有被驻留才对,但结果刚好相反。
另外,对示例3、4. 是否说明const string s1="abc" 不会触发字符串驻留池的改变,static string s1 = "abc" 才会引起。这两种情况下的string在内存中的存储位置是否有区别?
- 关于字符串驻留
- 字符串驻留
- 字符串驻留
- Java字符串驻留池
- 字符串驻留问题
- 字符串内存驻留机制
- Java字符串驻留池
- .NET Framework字符串驻留
- Java中的字符串驻留
- 字符串的驻留
- python的字符串驻留
- 字符串的驻留(String Interning)
- 字符串的驻留(String Interning)
- 字符串的驻留(String Interning)
- 字符串的驻留(String Interning)
- 字符串的驻留(String Interning)
- 字符串的驻留(String Interning)
- Java中的字符串驻留(String Interning)
- 《计算机教育》专题报道:充满快乐的提高班
- 基于压缩传感的脉冲GPR成像技术研究(硕士学位论文初稿20111230)
- jQuery 导航菜单点击伸缩展开效果的JS特效
- Java 使用poi导入excel,结合xml文件进行数据验证的例子(增加了jar包)
- POJ1002
- 关于字符串驻留
- 困扰我的多线程
- 字符串分段、替换
- JDBC连接SQL Server 2008 R2时遇到的常见问题集解
- @dynamic
- hash表 c语言实现
- oracle Pipelined Table Functions 的使用 (包含split函数的示例)
- 《计算机教育》专题报道:阶梯式教学法
- js 50 个写法