java学会这些,我就入门啦!(基础篇四)String、StringBuffer、StringBuilder的区别?

简介: java学会这些,我就入门啦!(基础篇四)String、StringBuffer、StringBuilder的区别?
+关注继续查看

大家都知道,String是不能被修改的,因为它是被final修饰的,除非产生新的对象,但是我们在业务中又有很多对字符串进行修改的操作,那么这个时候StringBuffer、StringBuilder应运而生,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。StringBuilder

        StringBuilder其实速度很快,甚至比StringBuffer要快上很多,但是他有一个致命的缺点,那就是这个方法不是线程安全的,由于StringBuilder相比较于StringBuffer有速度优势,所以多数情况下建议使用StringBuilder,但在程序整体要求线程安全的情况下,我们必须使用StringBuffer。

实际上,对于StringBuffer,我作为开发这么多年,还真没遇到过实际的使用场景,因为它的线程安全,仅仅只是保证JVM顺利运行,并且不往下继续抛异常。所以,我们一般情况下要保证线程的安全,需要用到的是锁。

可能是因为出于不知道什么决定,在没有StringBuilder之前,sun的大佬们选择了让StringBuffer是线程安全的。然后若干年后,JDK5时StringBuilder应运而生,也就是从这个时候开始,java开始火起来了。我想StringBuilder也为java甩掉运行速度慢做出了一定的贡献。

总结起来很简单,就下面这几条:

     1.String大小长度不可变,因为被final修饰。

     2.StringBuffer 和 StringBuilder 长度可变。

     3.StringBuffer 线程安全 StringBuilder 线程不安全。

     4.StringBuilder 速度快。

     5.一般业务情况下使用StringBuilder。

     6.StringBuilderJDK1.5才出。

9537310f432361c8e3bea2c2f97d4ac0_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

每天抽出空闲的时间多看一点点。相信我,你会变得更强。


相关文章
|
28天前
|
安全 编译器 测试技术
String,StringBuffer,StringBulider区别与联系
String,StringBuffer,StringBulider区别与联系
16 0
|
1月前
|
存储 安全 Java
Java中的String、StringBuffer和StringBuilder
其实可以看出,java底层实现字符串+的时候其实是用StringBuilder的append()来实现的,如果有字符串的连续+,jvm用StringBuilder append也可以实现优化。
33 0
|
2月前
|
算法 Java 数据库
抽象类和接口 && String的理解 && StringBuilder和StringBuffer && 异常的基本用法 && 时间复杂度
抽象类和接口 && String的理解 && StringBuilder和StringBuffer && 异常的基本用法 && 时间复杂度
25 0
|
2月前
|
存储 缓存 安全
String 和 StringBuilder 以及StringBuffer
String类是线程安全的,因为它是不可变的,多个线程可以同时访问同一个String对象而不会产生竞争条件。 StringBuilder类是非线程安全的,如果多个线程同时修改同一个对象,可能导致数据不一致或产生竞争条件。 StringBuffer类是线程安全的,它的方法都使用了同步关键字(synchronized)来确保在多线程环境下的安全访问,但这也降低了性能。
20 0
|
3月前
|
Java
Java String类和StringBuffer类的区别
Java String类和StringBuffer类的区别
|
3月前
|
存储 缓存 安全
String、StringBuffer和StringBuilder的区别(面试题)
String、StringBuffer和StringBuilder的区别(面试题)
55 0
|
3月前
|
存储 安全
毕业季高频面试题String,StringBuffer好和StringBuilder的区别
可能是因为毕业季,最近有非常多的应届生来咨询我面试相关的问题。这不,今天有一位应届生找到我,说面试被问到这样一道面试题:请谈谈String、StringBuffer和StringBuilder的区别。其实呢,这是一道老生常谈的题,光背八股文还是非常简单的。
32 0
|
4月前
|
存储 安全 Java
Java中 String,StringBuffer,StringBuilder之间的区别和常用方法总结
Java中 String,StringBuffer,StringBuilder之间的区别和常用方法总结
21 0
|
4月前
|
安全 Java
【java常见的面试题】String和StringBuffer、StringBuilder的区别是什么?
Java基础的面试题String和StringBuffer、StringBuilder的区别是什么
|
4月前
|
安全
String、StringBuffer、StringBuilder的区别
String、StringBuffer、StringBuilder的区别
32 0
相关产品
云迁移中心
推荐文章
更多