String ,StringBuffer ,StringBuilder 三者的理解

Easter79
• 阅读 544

1.String ,StringBuffer , StringBuilder三者执行效率的问题

StringBuilder > StringBuffer > String

String是字符常量,是不可变的.如果拿String来操作字符串,一旦操作的字符串的值改变了,就会在内存中创建多一个空间来保存新的字符串,这样的话String的效率就比较低下了.

StringBuffer:线程安全的

StringBuilder:非线程安全的

StringBuilder能操作StringBuffer,相反则不能.

StringBuffer要维持同步锁,所以要消耗部分的资源.  执行效率肯定没有Stringbuilder快.

单线程程序:考虑StringBuilder

多线程程序:考虑StringBuffer

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
2年前
java将前端的json数组字符串转换为列表
记录下在前端通过ajax提交了一个json数组的字符串,在后端如何转换为列表。前端数据转化与请求varcontracts{id:'1',name:'yanggb合同1'},{id:'2',name:'yanggb合同2'},{id:'3',name:'yang
面试字节我被String类的问题给问死了!
""是怎么连接字符串的?(JDK1.7及以上)总结:使用""连接字符串时,实际上是使用临时创建的StringBuilder对象来辅助完成的。对于编译时常量,在编译后直接计算出字符串的值,而不会在运行时创建临时的StringBuilder对象来完成字符串连接。在循环中对String对象进行连接,应该直接使用StringBuilder代替"",这样
Wesley13 Wesley13
2年前
java中stringBuilder的用法
String对象是不可改变的。每次使用System.String类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间。在需要对字符串执行重复修改的情况下,与创建新的String对象相关的系统开销可能会非常昂贵。如果要修改字符串而不创建新的对象,则可以使用System.Text.StringBuilder类。例如,当在一个循
Wesley13 Wesley13
2年前
String、StringBuffer、StringBuilder的区别
String字符串常量StringBuffer字符串变量(线程安全)StringBuilder字符串变量(非线程安全) 简要的说,String类型和StringBuffer类型的主要性能区别其实在于String是不可变的对象,因此在每次对String类型进行改变的时候其实都等同于生成了一个新的String
Easter79 Easter79
2年前
String
一,String,StringBuffer,StringBuilder三者之间的关系三个类的关系:StringBuffer和StringBuilder都继承自AbstractStringBuilder这个类,而AbstractStringBuilder和String都继承自Object这个类(Object是所有java类的超类)
Easter79 Easter79
2年前
String的相关类和方法
String的相关类和方法一、String,StringBuilder,StringBuffer三者的区别这三个类之间的区别主要是在两个方面,即运行速度和线程安全这两方面1、运行速度:StringBuilderStringBufferStringString为字符串常量,而StringBuilder和StringBuffe
Wesley13 Wesley13
2年前
Java深究之String、StringBuffer、StringBuilder的区别
       在Java学习中,String、StringBuffer、StringBuilder三者是很重要的,在编写代码中经常使用到他们,那么深入的了解他们的异同是非常重要的,接下里我们详细剖析下这三个的异同之处_首先总结下这三者的区别:_1.基本区别String的对象不可变,StringBuffer和StringBuild
Stella981 Stella981
2年前
BATJ的常见java面试题
JAVA基础1.JAVA中的几种基本数据类型是什么,各自占用多少字节。2.String类能被继承吗,为什么。不可以,因为String类有final修饰符,而final修饰的类是不能被继承的,实现细节不允许改变。3.String,Stringbuffer,StringBuilder的区别。String字符串常量StringBuffer
Stella981 Stella981
2年前
HIVE 时间操作函数
日期函数UNIX时间戳转日期函数: from\_unixtime语法:   from\_unixtime(bigint unixtime\, string format\)返回值: string说明: 转化UNIX时间戳(从19700101 00:00:00 UTC到指定时间的秒数)到当前时区的时间格式举例:hive   selec
Easter79
Easter79
Lv1
今生可爱与温柔,每一样都不能少。
文章
2.8k
粉丝
5
获赞
1.2k