C#基础(4)

1.String/StringBuilder的异同

    string是一个不可变的数据类型,一旦对字符串对象进行了初始化,该字符串对象就不能改变了。修改字符串内容的方法

    和运算符实际上是创建一个新的字符串.

    stringbuilder分配好内存,对字符串的修改就在赋予stringbuilder实例的存储单元中进行.

     举例:

    string的确是不能修改的: 
    string  str  =  "a"; 
    str  =  "b"//str是被赋值了"b"没错,但是str里面原来的string值"a"并没有被修改。 
    string  str  =  "a"; 
    string  str1  =  str; 
    str  +=  "b";//此时str  =  "ab",str1  =  "a"; 
       
    StringBuilder  str  =  new  StringBuilder(  "a"  ); 
    StringBuilder  str1  =  str; 
    str.Append(  "b"  ); 
    str.ToString()和str1.ToString()都是"ab"。 

2.解释string str=null/string str=""

    str=null,声明而不分内存空间,str=""声明而分内存空间

 

3..String s = new String("xyz");创建了几个String Object?

   两个对象,一个是“xyx”,一个是指向“xyx”的引用对像s

 

4..是否可以继承String类?
String类是final类故不可以继承。

 

5.String s=””;string s=string.Empty;有什么区别,哪一种方式更好?

String s=””;先分配一块内存存放””文字常量,s引用该内存,string s=string.Emptys引用string类中的静态变量地址(静态变量开始会被初始化,所以无论引用多少次,只会分配一次内存),两者比较,后者少了一次内存分配,所以效率更高。

相关文章
相关标签/搜索
每日一句
    每一个你不满意的现在,都有一个你没有努力的曾经。
公众号推荐
   一个历史类的公众号,欢迎关注
一两拨千金