String、StringBuffer和StringBuilder的区别是什么?

2021年9月27日 422点热度 0人点赞 0条评论
1String、StringBuffer StringBuilder 的区别是什么?

String是只读字符串,它并不是基本数据类型,而是一个对象。
从底层源码来看是一个final类型的字符数组,所引用的字符串不能被改变,一经定义,无法再增删改。
每次对String的操作都会生成新的String对象。

private final char value[];

每次+操作:隐式在堆上new一个跟原字符串相同的StringBuilder对象,再调用append方法拼接+后面的字符。

StringBuffer与StringBuilder都继承了AbstractStringBulder类,
而AbtractStringBuilder又实现了CharSequence接口,两个类都是用来进行字符串操作的。

在做字符串拼接修改删除替换时,效率比string更高。
StringBuffer是线程安全的,Stringbuilder是非线程安全的。
所以Stringbuilder比stringbuffer效率更高,StringBuffffer的方法大多都加了synchronized关键字

2、String str="aaa",String str=new String("aaa")一样吗?

支付 ¥1.99 购买本节后解锁剩余69%的内容

小小调酒师

此刻打盹,你将做梦; 此刻学习,你将圆梦。 个人邮箱:shellways@foxmail.com

文章评论