从源码角度理解String StringBulider StringBuffer三者区别

Java字符串与缓冲区详解

    String类型的适合于不变的对象,如:String a = "hello world!"不过需要注意的是String b = "hello" +" world" + "!";在JVM眼中a和b是是一样的,但是如果你对String类型的对象进行改变,那么就相当于是new了一个新的String对象。但是为什么会这样呢?其实很简单,只要我们看一眼String类型的源代码就可以知道是final类型。


    StringBuffer和StringBuiler的区别其实也是很容易区分的



    源码里的方法很容易看出区别,我找了append方法来做例子,StringBuffer有synchronized关键字,也就是说是加了锁的,所以StringBuffer是线程安全的,而StringBuild没有加锁,所以是非线程安全的,而为了线程安全肯定是要牺牲性能的,所以单纯的比较速度的话StringBuffer更快。

    就是这么简单。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值