String、StringBuuffer、StringBuilder三者的区别

可变性
String 类中使用 final 关键字字符数组保存字符串, private final char value[] ,所以 String 对象是不可变的。
StringBuilder 与 StringBuffer 都继承自 AbstractStringBuilder 类,在 AbstractStringBuilder 中也是使用字符数组保存字符串 char[]value 但是没有用 final 关键字修饰,所以这两种对象都是可变的。
StringBuilder 与 StringBuffer 的构造方法都是调用父类构造方法也就是 AbstractStringBuilder 实现的

 

String 类

private final char value[];

 

StringBuilder 与 StringBuffer 都继承自 AbstractStringBuilder 类

 

在 AbstractStringBuilder 中也是使用字符数组保存字符串 char[]value ,但是没有用 final 关键字修饰,所以StringBuilder 与 StringBuffer 这两种对象都是可变的

 

 

线程安全性
String 中的对象是不可变的,也就可以理解为常量,线程安全。AbstractStringBuilder 是 StringBuilder 与 StringBuffer 的公共父类,定义了一些字符串的基本操作,如 expandCapacity、append、insert、indexOf 等公共 方法。StringBuffer 对方法加了同步锁或者对调用的方法加了同步锁,所以是线程安全的。StringBuilder 并没有对 方法进行加同步锁,所以是非线程安全的。
性能
每次对 String 类型进行改变的时候,都会生成一个新的 String 对象,然后将指针指向新的 String 对象。
StringBuffer 每次都会对 StringBuffer 对象本身进行操作,而不是生成新的对象并改变对象引用。相同情况下使用 StirngBuilder 相比使用 StringBuffer 仅能获得 10%~15% 左右的性能提升,但却要冒多线程不安全的风险。

对于三者使用的总结:

  1. 操作少量的数据 = String
  2. 单线程操作字符串缓冲区下操作大量数据 = StringBuilder
  3. 多线程操作字符串缓冲区下操作大量数据 = StringBuffer

 

StringBuffer加了锁synchronized

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/271050.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

运算符和类型转换

1.类型转换: 分为自动转换和强制转换,一般用强制转换。 其他类型转换为整数:parseInt(); 其他类型转换为小数:parseFloat(); 判断是否是一个合法的数字类型&a…

数据库设计基础:数据字典相关知识笔记

1、数据字典的定义 数据字典(Data Dictionary ,DD)是各类数据描述的集合,它是关于数据库中数据的描述,即元数据,而不是数据本身。2、数据字典的组成数据字典主要包括数据项、数据结构、数据流、数据存储、处理过程等内…

用符号方法求下列极限或导数matlab,matlab实验

3,设有矩阵A 和B 1234530166789101769A ,111213141502341617181920970212223242541311B ????????-????????-????????????????1、求它们的乘积C ;2、将矩阵C 的右下角3*2子矩阵赋给D ;3、察看matlab 工作空间…

事务管理:事务的基本概念笔记

1、事务的意义事务管理是对于一系列数据库操作进行操作。针对多个事务并发执行的数据库当中,如果对共享的数据进行更新操作不进行控制,很有可能会产生数据的不一致性,造成数据库存储无效甚至错误的数据。数据库在运行过程中会受到很多方面的因…

从零开始攻略PHP(8)——面向对象(下)

8.编写代码类 每个分离的函数可以执行一个明确的任务。任务越简单,编写与测试这个函数就越简单,当然也不要将这个函数分得太小——若将程序分成太多的小个体,读起来就会很困难。 使用继承可以重载操作。我们可以替换成一个大的Display()函数&…

vb treeview 展开子节点_C# / VB.NET 在PPT中创建、编辑PPT SmartArt图形

本文介绍通过C#和http://VB.NET程序代码来创建和编辑PPT文档中的SmartArt图形。文中将分两个操作示例来演示创建和编辑结果。使用工具:Spire.Presentation for .NET hotfix 5.9.5dll文件引用:方式1:下载包;Spire.Presentation for…

mysql安装教程8.0.21安装,Windows系统下MySQL8.0.21安装教程(图文详解)

安装建议:尽量不要用.exe进行安装,用压缩包安装,对日后的卸载/版本升级更为方便下载地址:https://dev.mysql.com/downloads/mysql/1、点击上面的下载地址得到zip压缩包2、解压到要安装的目录我这里是E:\database\mysql8\mysql-8.0…

Java中 a+=b和a=a+b有什么区别?

一:性能方面 aab是加法运算 需要两次寻找地址而ab是增量运算有寄存器优先时 只有一次地址查找。效率方面后者略高于前者 基于现在计算机的发展可忽略不计。 二:对于不同类型的a,b来说 1:不同类型的两个变量在进行运算的时候,我们经常说到的…

事务管理:事务的状态相关知识笔记

1、事务的几个概念中止事务:事务在执行过程中发生故障,不能执行完成的事务。可以进行事务回滚,保持数据库的一致性。事务回滚:将中止事务对数据库的更新操作撤销称为事务回滚。已提交事务:成功执行完成的事务称为已提交…

mysql符合安可要求吗,安可是什么意思?演唱太过精彩,粉丝要求返场(再唱一个)...

解答:安可是指再唱一个的意思,最早是源自英语“Encore”,常被用在演唱会上,当最后一轮表演或演唱结束之后,粉丝就会开始大喊“安可”,就是想要再听一场,这时歌手也会应粉丝的要求返场。安可是什…

事务管理基础:数据库的并发控制相关知识笔记

1、并发操作的概念介绍并发操作主要是指在多用户共享的系统当中,可能存在很多用户同时对同一个数据进行操作。并发操作会造成丢失更新、不可重复读、读脏数据。主要原因是事务的并发操作破坏了事务的隔离性。2、事务调度相关知识事务调度主要有串行调度、并发调度、…

Spring的AOP理解

Spring的AOP理解: OOP面向对象,允许开发者定义纵向的关系,但并适用于定义横向的关系,导致了大量代码的重复,而不利于各个模块的重用。 AOP,一般称为面向切面,作为面向对象的一种补充&#xff…

wpf 如何设置弹出窗口必须关闭才能打开其他软件_5招教你如何清除C盘除系统外的所有垃圾!都学会了吗?...

老毛桃winpe 2019-04-24 12:22:54 对于C盘,最让我们头疼的问题就是空间不足了!虽然知道C盘会存有很多垃圾,但由于C盘也是系统盘,我们只能可望不可及。那么,有什么办法清除C盘除系统外的所有垃圾吗?答案是…

事务管理基础:排它锁和共享锁相关知识笔记

1、排它锁、共享锁出现的意义数据库的并发事务对数据库进行读写,可能会破坏事务的隔离性和数据一致性。为了保持事务的隔离性,系统必须对事务之间的相互作用加以控制。最典型的做法就是当一个事务访问某个数据对象时,其他事务都不能更新该数据…

php对象底层结构,PHP 底层原理之类和对象

对于PHPer来说,OOP是不可或缺的开发思维,但是你对php类和对象的底层实现又了解多少呢?本着知其然且知其所以然的思想,让我们一起来寻找答案~类的底层实现可看作是之前我们讲过的变量、函数等的知识集合。所以想要理解更深入的同学…

程序默认在副屏显示_聊一款性价比极高的电竞显示器

小米在6月17日开启了小米显示器27寸165Hz版本的众筹,这台显示器的分辨率为2560x1440,也就是大家熟悉的小金刚,它与大金刚的最大区别也只是省去了G-Sync功能,而其他方面的参数几乎是一致的。那么我们今天就来聊聊这款真香的显示器。…

事务管理基础:两段锁协议、活锁、死锁相关知识整理

1、两段锁协议(Two-phase Locking Protocol) 两段锁协议是指对任何数据进行读写之前必须对数据进行加锁;在释放一个封锁之后,事务不再申请和获得任何其他封锁。两段锁协议中两段的含义:事务分为两个阶段,第…

php 空函数,PHP 中函数 isset(), empty(), is_null() 的区别

PHP 中函数 isset(), empty(), is_null() 的区别,使用 PHP 进行开发的时候,经常会用到 isset(), empty(), is_null() 这几个函数对数据进行判断,但是这是哪个函数的具体区别其实没有很好的掌握。下面我们详细讲解一下:NULL什么是 NULL&#x…

UVa11021

11021 TribblesGRAVITATION, n.“The tendency of all bodies to approach one another with a strengthproportion to the quantity of matter they contain – the quantity ofmatter they contain being ascertained by the strength of their tendencyto approach one anot…