1.共同点:
三者都是字符串类。StringBuilder和StringBuffer都是继承AbstractStringBuilder类,存储字符串都是使用数组进行存储的。
2.区别:
a. String 类存储字符串使用的数组被final进行修饰了,当对String对象进行增加修改字符时,都需要重新new一个字符数组,将原来的值拷贝到新的字符数组中,所以当字符串的值需要经常修改的时候就需要考虑用StringBuilder或StringBuffer来进行处理了。
public final class String implements java.io.Serializable, Comparable<String>, CharSequence { private final char value[]; }
b.StringBuffer和StringBuilder也是使用字符数组来进行存储字符串的,但没有使用final进行修饰;StringBuffer定义的方法都加入了synchronized修饰,也就是说StringBuffer类方法都是线程安全的,而StringBuilder方法没有被修饰,两者常用的方法是append()。
3.使用场景:
当字符串值不会变化时,考虑使用String
当字符串的值多变的时候,考虑使用StringBuilder或者StringBuffer
当要求线程安全时候,考虑使用StringBuffer。
1、原创文章,作者:诺米,如若转载,请注明出处:https://www.http3w.com/archives/600
2、本站内容若有雷同从属巧合,若侵犯了您的权益,请联系本站删除,E-mail: wtao219@qq.com
相关推荐
-
springboot启动服务自动加载额外配置实现
Springboot 项目启动后执行某些自定义代码 Springboot给我们提供了两种“开机启动”某些方法的方式:ApplicationRunner和CommandLineRun…
-
weblogic报java.lang.ClassNotFoundException: org.apache.poi.POIXMLTypeLoader
java.lang.ClassNotFoundException: org.apache.poi.POIXMLTypeLoaderat org.apache.catalina.lo…
-
uniapp实现小程序登录(支持手机号授权登录)
第一步.前端处理 页面登录按钮 js函数,调用后台接口,实现登录 js函数,获取登录凭证(code), 本例文件目录 /utils/login.js 拓展,可忽略:import C…
-
springboot自定义starters
一、简介 SpringBoot最强大的功能就是把我们常用的场景抽取成了一个个starter(场景启动器),我们通过引入springboot未我们提供的这些场景启动器,我们再进行少量…
-
springboot中spring.jpa.hibernate.ddl-auto自动创建表
create:每次应用启动的时候会重新根据实体建立表,之前的表和数据都会被删除。create-drop:和上面的功能一样,但是多了一样,就是在应用关闭的时候,也就是sessionF…
-
dubbo在spring中的配置集成
dubbo在spring或springBoot中的多种配置与使用说明 一、安装注册中心 1、下载注册中心zookeeper,安装方式随意,本站提供docker方式安装 2、安装du…
-
JDK与OpenJDK的区别
一.什么是JDK?以度娘上的解释:JDK(Java Development Kit)是SUN公司(09年被oracle公司收购现在属于oracle公司)针对Java开发人员发布的免…
-
Linux安装Redis6.2.6版本
1、创建存放的文件夹 2、进入创建的文件夹,然后使用wget进行下载 3、解压下载文件 4、进入redis-6.2.6然后进行编译安装redis 如果执行make命令报错:cc 未…
-
.jar中没有主清单属性
如果您使用的是Springboot,那么只需要在pom.xml中添加如下配置,会自动检测主类。 <build><plugins><plugin>…