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类中的静态变量地址(静态变量开始会被初始化,所以无论引用多少次,只会分配一次内存),两者比较,后者少了一次内存分配,所以效率更高。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值