String和StringBuilder

一、.Net中

1、String和string

string是c#中的类,String是Framework的类;string是String的别名,两者等效。

2、String和StringBuilder

String对象是不可变的:即它们创建之后就无法更改。 所有看似修改字符串的 String 方法和 C# 中的运算符,实际上都以新字符串对象的形式返回结果。

static void Main(string[] args)    
{      
    var s1 = "Hi!";      
    var s2 = "Fanguzai!";      
    //拼接 s1 和 s2,并且修改 s1 指向的值      
    s1 += s2;  //即 s1 = s1 + s2;      
    Console.WriteLine(s1);      
    Console.Read();    
}

StringBuilder对象是可变的:即它们创建之后可以自由扩展大小(在达到容量之前,它不会为其自己重新分配空间。如果超过指定大小系统会当前大小倍增,也就10,15,20。建议指定大小)。String分配在栈区,StringBuilder分配在堆区,参考一下示意图。

image

二、Java中

1、Stringbuffer和String和StringBuilder

String和StringBuilder与C#中类似,区别在于String在Java中也是分配在堆区。

Stringbuffer也是可变的,并且是线程安全的,可以不需要额外的同步用于多线程中;而StringBuilder是非同步,运行于多线程中就需要使用着单独同步处理。

最后执行速度快慢为:StringBuilder > StringBuffer > String

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值