Csharp/C#教程:字符串内存驻留机制详解示例分享

代码如下:
//字符串的内存驻留机制
       publicstaticvoidTest()
       {
           //当有多个字符串变量包含了同样的字符串实际值时,
           //CLR可能不会为它们重复地分配内存,而是让它们统统指向同一个字符串对象实例。

           Strings1=”Hello”;
           Strings2=”Hello”;
           boolsame=(object)s1==(object)s2;//比较一下s1和s2是否是同一个引用
           Console.WriteLine(same);            //这个地方为true:表示同一个引用没有开辟新的内存空间
           /*
            *我们知道,String类有很多特别的地方,其中之一就是它是“不会改变的”(immutable)。
            *这说明在我们每次对一个String对象进行操作时(比如说使用Trim,Replace等方法),
            *并不是真的对这个String对象的实例进行修改,而是返回一个新的String对象实例作为操作执行的结果。
            *String对象的实例一经生成,到死都不会被改变了!
            */

           /*关于驻留池:它是维护哪些字面量的字符串,但是不会维护下面的这种类型*/
           StringBuildersb=newStringBuilder();
           sb.Append(“Hel”).Append(“lo”);
           Strings3=”Hello”;
           Strings4=sb.ToString();//虽然值相同但并不是同一个引用

           boolsame2=((object)s4==(object)s3);
           Console.WriteLine(same2);

           /*让编程者能够强制CLR检查驻留池;查看是否有相同的字符串*/

           StringBuildersb2=newStringBuilder();
           sb2.Append(“He”).Append(“llo”);
           strings5=”Hello”;
           strings6=String.Intern(sb2.ToString());

           boolsame3=(object)s5==(object)s6;
           Console.WriteLine(same3);
       }

标签: 字符 字符串 示例

C++中的RAII机制详解

C++设计模式之单例模式

上述就是C#学习教程:字符串内存驻留机制详解示例分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/905139.html

(0)
上一篇 2021年10月22日
下一篇 2021年10月22日

精彩推荐