String,StringBuffer,StringBuilder的区别

1.可变不可变

  String:是字符串常量,在修改时不会改变自身,若修改,等于重新生成新的字符串对象。

  StringBuffer:在修改时会改变对象自身,每次操作都是对StringBuffer对象自身进行修改,不是生成新的对象。使用场景:用于对字符串经常改变的情况下。主要方法有:                    append(),insert(),delete(),replace(),reverse()等。

2.线程是否安全

  String:对象定义后不可变,线程安全。

  StringBuffer:是线程安全的(对调用方法加入同步锁),执行效率较慢,适用于多线程下操作字符串缓冲区大量数据。

  StringBuilder:是线程不安全的,适用于单线程下操作字符串缓冲区大量数据。

3.共同点:

  StringBuilder和StringBuffer有共同的父类AbstractStringBuilder(抽象类)。

  StringBuilder和StringBuffer的方法都会调用AbstractStringBuilder中的公共方法,如super.append(...),只是StringBuffer会在方法上加上synchronized关键字进行同步。

  最后,如果程序不是多线程的,那么使用StringBuilder效率高于StringBuffer。

注:第一篇博文,不知道写点什么。就从网上以及资料上找到点java的基础知识以及自己所学到的和大家分享,彼此相互学习,也帮助自己回顾记忆。有不对的地方希望大家指正。

 

 

 

  

 

转载于:https://www.cnblogs.com/bin0721/p/9947718.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值