String、StringBuffer、Stringbuilder的关系和优势

String

String str =”hello“; String str ="helloWorld"

string每一次改变都会在堆中生成了一个新的对象,然后原有的对象引用了新的对象,所以说String本身是不可以改变的,每一次改边字符串内容,都会创建新的对象,而每一次产生新的对象都会对系统性能产生影响,这会降低java虚拟机的工作效率

在堆内存中开辟一个空间,一个匿名内部类,数值方法栈内存中。

StringBuffer && StringBuilder

stringBuffer是线程安全的,StringBuilder是线程不安全的,stringBuffer在字符串修改上的效率比stringBuilder的效率低一些。单线程的时候用stringBuilder更好一些,因为不怕多线程操作。

String每次修改字符串内容的时候都会在堆内存中重新开辟一个空间,stringBuffer是在原有的基础之上追加或者修改。执行效率比string快很多

创建方式:

StringBuffer sbf =new StringBuffer("hello")

StringBuffer sbf =new StringBuffer();

 

转换方式:

String str ="String";

StringBuffer sbf=new StringBuffer(str );//string转成StringBuffer

StringBuilder sbd =new StringBuilder(str);//转成StringBuilder

String str =sbf.toString();//转成String

String str =sbd .toString();//转成String

StringBuffer sbf =new StringBuffer(sbd.toString())//StringBuilder转成StringBuffer

StringBuilder sbd =new StringBuilder(sbf.toString())//StringBuffer转成StringBuilder

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值