String与StringBuffer

1、String

String代表字符串常量。String是一个final Class。

String str = "abc";

                                等效于:

                                             char data[] = {'a', 'b', 'c'};
                                             String str = new String(data);

 

String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,所以经常改变内容的字符串最好不要用 String ,因为每次生成对象都会对系统性能产生影响,特别当内存中无引用对象多了以后, JVM 的 GC 就会开始工作,那速度是一定会相当慢的。

在String类中特别要注意“==”和“equals”,他们有着本质的区别,“==”比较的是两个字符串的对象引用,而“equals”比较的是两个字符串的内容。

2、StringBuffer

    StringBuffer类用于内容可以改变的字符串,可以将其他各种类型的数据增加、插入到字符串中,也可以翻转字符串中猿类的内容,并且可以把StringBuffer类生成的字符串通过StringBuffer类的tostring()方法转化成String类,然后就可以通过String类的各种方法操作该字符串了。
     java中提供了“+”来连接两个String类型的字符串连接成一个新的字符串,在StringBuffer类中可以通过append方法实现。

    StringBuffer为线程安全

 

3、StringBuilder

   同Stringbuffer,但线程不安全

 

一般应用时的效率为

StringBuilder > StringBuffer > String

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值