首页

文章

JAVA中StringBuffer与StringBuilder、String的区别是什么?

发布网友 发布时间:2022-03-23 00:09

我来回答

3个回答

热心网友 时间:2022-03-23 01:38

java中String、StringBuffer、StringBuilder是编程中经常使用的字符串操作类。
1.可变与不可变
String类中使用字符数组保存字符串,如下就是,因为有“final”修饰符,所以可以知道string对象是不可变的。
private final char value[];
StringBuilder与StringBuffer都继承自AbstractStringBuilder类,在AbstractStringBuilder中也是使用字符数组保存字符串,如下就是,可知这两种对象都是可变的。
char[] value;

2.是否多线程安全
String中的对象是不可变的,也就可以理解为常量,显然线程安全。
AbstractStringBuilder是StringBuilder与StringBuffer的公共父类,定义了一些字符串的基本操作,如expandCapacity、append、insert、indexOf等公共方法。
StringBuffer对方法加了同步锁或者对调用的方法加了同步锁,所以是线程安全的。看如下源码:
public synchronized StringBuffer reverse() {
super.reverse();
return this;
}

public int indexOf(String str) {
return indexOf(str, 0); //存在 public synchronized int indexOf(String str, int fromIndex) 方法
}
StringBuilder并没有对方法进行加同步锁,所以是非线程安全的。

3.StringBuilder与StringBuffer共同点
StringBuilder与StringBuffer有公共父类AbstractStringBuilder(抽象类)。
抽象类与接口的其中一个区别是:抽象类中可以定义一些子类的公共方法,子类只需要增加新的功能,不需要重复写已经存在的方法;而接口中只是对方法的申明和常量的定义。
StringBuilder、StringBuffer的方法都会调用AbstractStringBuilder中的公共方法,如super.append(...)。只是StringBuffer会在方法上加synchronized关键字,进行同步。
最后,如果程序不是多线程的,那么使用StringBuilder效率高于StringBuffer。

热心网友 时间:2022-03-23 02:56

String 是字符串类 最常用于简单的字符串操作
StringBuffer 是字符串缓冲。 适用于复杂的字符串增删改操作。
StringBuilder 是与 StringBuffer 兼容的 API 简化。 该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)。

热心网友 时间:2022-03-23 04:31

String和StringBuffer,StringBuilder,它们可以储存和操作字符串,即包含多个字符的字符数据。String类表示内容不可改变的字符串。而StringBuffer类表示内容可以被修改的字符串。当你知道字符数据要改变的时候你就可以使用StringBuffer。典型地,你可以使用StringBuffers来动态构造字符数据。
StringBuffer和StringBuilder类都表示内容可以被修改的字符串,StringBuilder是线程不安全的,运行效率高,如果一个字符串变量是在方法里面定义,这种情况只可能有一个线程访问它,不存在不安全的因素了,则用StringBuilder。如果要在类里面定义成员变量,并且这个类的实例对象会在多线程环境下使用,那么最好用StringBuffer。
特别精辟的个性签名(非常经典的个性句子) 特别经典的个性签名(非常惊艳的个性句子) 文艺范十足的个性签名(温柔治愈的个性签名句子) wps文字怎么设置每页头和尾 27岁的女人需要补充哪些营养元素 27岁该重视美容了吗?都可以用哪些方法好些呢? airpods连不上手机怎么回事 - 知百科 腰肌劳损能养好吗? 有一段相声讲的是原始人打猎,唱歌,学说话的,请问名字是什么? 个人征信逾期记录的修复攻略,手把手传授 抖音火山版在哪注销账号 注销账号方法介绍 支付宝怎么把余额宝冻结的钱转出来? 余额宝冻结金额怎么解冻? 支付宝余额锁定怎么解除?可以简单介绍一下吗? 母乳跟气血有关系吗 穿jk发朋友圈俏皮的文案 穿jk制服发朋友圈的文案 福鼎绿雪芽茶历史传说 福鼎太姥绿雪芽曾与武夷山名茶齐名 石蛙保护级别是多少? 是田螺吗?还是别的什么? 昆虫头上像丝一样的感觉器官是表示什么词语 感什么器什么的词语感x器x式的四字词语 三控开关怎么接线方法图片 独立IP和共享IP的区别以及各自的优势有哪些 什么是共享和独享IP、动态和静态IP、固定IP? 连接电脑的wifi如何查名称怎么查看电脑wifi 千变表情是什么意思? kmose正确使用方法? 单位高温防护欠缺致员工中暑如何对待 狗狗为什么爱看视频 360浏览器怎么设置倍速播放 ...先讲女主的灵魂飘荡了一段时间,然后重生,请问是那本? 拯救者散热器怎么开 电脑如何一键还原系统电脑一键还原怎么操作 神舟笔记本电脑怎么重新设置神舟战神bios恢复出厂设置 神舟电脑恢复出厂设置神舟战神怎么恢复原厂系统 水泥楼梯如何铺木楼梯 家里面楼梯是水泥的不想铺地毯或者地砖还能铺什么 楼梯的水泥台阶上可以铺地板革吗 手机腾讯会议共享屏幕播放视频没声 腾讯会议共享屏幕没声音怎么办 微信寄快递怎么取消订单_取消订单方法介绍 300兆宽带用什么路由器好? 请问高分子井盖具体材料有那些?谢谢 井盖骨架有哪些材料 ...一个女主是空姐,她和男主第一次在去巴黎飞机上相遇,约定如果三次... 找一部电影 记得结局是主角上了私人飞机,然后和空姐,可能是情人... 360借条怎么开通? 脚踝系红绳是什么意思 痤疮 痘痘 黑头 粉刺必看的终结绿色治疗 Java中String,StringBuilder和StringBuffer的区别 string 和stringbuilder,stringbuffer 的区别 String,StringBuffer和StringBuilder的区别 String、StringBuffer和StringBuilder的区别是什么? string和stringbuffer stringbuilder的区别 String和StringBuffer有什么区别? string和stringbuffer和stringbuilder的区别 String 与StringBuffer的区别? 请说详细点,最好用内存分析解释 string和stringbuffer类的区别 string和stringbuffer有什么区别 string 和stringbuffer的区别 String和StringBuffer有什么区别啊? String类和StringBuffer类的区别 String 和StringBuffer的区别是什么? 红米手机任何导航怎么总是提醒GPS信号弱 小米手机使用导航的时候总是提示GPS信号弱,自身的定位位置不同步,但是下载东西很快,网速没有问题, 滴滴车主小米手机导航GPS信号弱怎么办? 你好,我的小米手机导航时总是提示jps信号弱,导航跟不上 手机GpS定位信号弱怎么解决 小米10手机GPS信号弱怎么解觉? java中String和StringBuffered有什么区别? “String、StringBuffer和StringBuilder”之间的区别是什么? 手机无网络怎么办 手机没有网络怎么恢复 手机无法上网了怎么办? 手机没有网络怎么办 手机有信号没网络怎么办 手机没网络怎么回事? 手机突然没网络了怎么办 没有网怎么办 手机上不了网怎么回事 没有网络怎么办 开了流量手机还是没有网络怎么办 手机显示无网络是怎么回事 手机突然没网了怎么回事? 手机网络突然没有了是怎么回事? 手机无网络是怎么回事? 手机没有网络连接怎么办 天猫店小二如何联系 管理天猫旗舰店的小二有固定的吗?
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com