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

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


相关文章
|
2天前
|
存储 安全 Java
聊聊Java中的常用类String
聊聊Java中的常用类String
6 0
|
5天前
Swagger2异常:java.lang.NumberFormatException: For input string: ““
Swagger2异常:java.lang.NumberFormatException: For input string: ““
14 1
|
5天前
|
存储 缓存 Java
|
6天前
|
Java API 索引
Java基础&API(2) String、StringBuilder详解
Java基础&API(2) String、StringBuilder详解
|
6天前
|
存储 编解码 算法
Java 的 String StringBuilder StringBuffer(上)
Java 的 String StringBuilder StringBuffer
25 0
|
20天前
|
Java API 索引
Java基础—笔记—String篇
本文介绍了Java中的`String`类、包的管理和API文档的使用。包用于分类管理Java程序,同包下类无需导包,不同包需导入。使用API时,可按类名搜索、查看包、介绍、构造器和方法。方法命名能暗示其功能,注意参数和返回值。`String`创建有两种方式:双引号创建(常量池,共享)和构造器`new`(每次新建对象)。此外,列举了`String`的常用方法,如`length()`、`charAt()`、`equals()`、`substring()`等。
15 0
|
2月前
|
Java
【Java】如果一个集合中类型是String如何使用拉姆达表达式 进行Bigdecimal类型计算?
【Java】如果一个集合中类型是String如何使用拉姆达表达式 进行Bigdecimal类型计算?
25 0
|
2月前
|
Java
Java String split()方法详细教程
Java String split()方法详细教程
25 0
|
2月前
|
安全 Java
Java StringBuffer 和 StringBuilder 类
Java StringBuffer 和 StringBuilder 类
16 0
|
2月前
|
存储 缓存 安全
【Java】Java中String不可变性的底层实现
【Java】Java中String不可变性的底层实现
18 0