String Stringbuilder Stringbuffer的区别

String:

   最直观 的区别就是String 是不可变字符串,一旦只要确定或者储存了,就改变不了,因为String其实里边也是用字符数组来存储的,其底层是用final修饰的类,只要确定就改变不了了, 类似与对字符串的拼接或者存储都是产生一个新的字符串,

StringBuilder:

首先它是可变字符串,它继承AbstractStringBuider类,也是字符串数组但是它没有用Final修饰,对字符串的拼接或者截取都是在原有的字符串上进行修改,这也大大的减少了占用内存

StringBuffer:

StringBuffer其实和StringBuilder差不多都是继承自AbstractStringBuider类,都是在原有字符串上进行修改,不会产生新的字符串

区别:运行速度和线程安全性

1  运行速度   StringBuilder>StringBuffre>String

2 线程安全  StringBuffer,String>StringBuilder

String之所以最慢是是因为它每次改变时都产生一个新的字符串,都要重新值向新的字符串,而其他两StringBuilder比StringBuffer比块是因为StringBuffer每个方法几乎都加了synchronized同步的关键字这也就带来弊端就是运行速度慢,也同时带来好处就是更加的安全

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值