博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
String,StringBuilder和StringBuffer有啥不一样
阅读量:2428 次
发布时间:2019-05-10

本文共 950 字,大约阅读时间需要 3 分钟。

java中用于字符串处理的常用类有三个: String,StringBuffer和StringBuilder,那么三者有什么异同呢?

1.相同点:

都是final类,不允许被继承。这主要是从安全性上考虑防止继承后某些参数被修改。

2.不同点:

线程安全:

StringBuffer是线程安全的,而StringBuilder是线程不安全的,因为 StringBuffer的方法都是被synchronized修饰的,而StringBuilder的方法没有synchronized修饰关键字。

StringBuffer代码段:

@Override    public synchronized int length() {
return count; } @Override public synchronized int capacity() {
return value.length; }

StringBuilder代码段:

@Override    public StringBuilder append(Object obj) {
return append(String.valueOf(obj)); } @Override public StringBuilder append(String str) {
super.append(str); return this; }

性能:

执行速度:StringBuilder > StringBuffer > String
String为字符串常量,所以String类的操作会涉及到大量的对象拷贝。StringBuilder和StringBuffer均为字符串变量因此可以规避这个问题。
StringBuilder 没有对方法加锁,所以StringBuilder的性能要好于StringBuffer。

3.应用场景:

1.String适用于少量的字符串操作的场景。

2.StringBuilder适用于单线程下大量字符串操作的场景。
3.StringBuffer适用多线程下大量字符串操作的场景。

转载地址:http://hecmb.baihongyu.com/

你可能感兴趣的文章
地方普通院校的计算机专业「科班」学生如何突围而出?| 原力计划
查看>>
小白也能看懂的 Java 异常处理
查看>>
C++ 是如何从代码到游戏的?
查看>>
程序员惊魂 12 小时:“���”引发线上事故
查看>>
调查了 10,975 位 Go 语言开发者,我们有了这些发现!
查看>>
面试官吐槽:“Python程序员就是不行!”网友:我能把你面哭!
查看>>
太真实!深刻解读论文里的话术| 每日趣闻
查看>>
拿来就能用!Python 每天定时发送一句情话 | 原力计划
查看>>
Java“拍了拍”你,面试其实没那么难...
查看>>
帅爆了!3个月0基础转型头条数据分析师,他做对了什么?
查看>>
程序员:我受够了!不想再在小厂里干Java了!
查看>>
厉害!国内大学生计算机编程第一人,一人挑战一个队,百度最年轻 T10,现创业自动驾驶...
查看>>
研发团队来了高颜值的妹子,这结局万万没想到 | 每日趣闻
查看>>
太难了!开源项目如何商业化?
查看>>
谷歌排名第一的编程语言,死磕它这两点,小白也能学的会!不信你看!
查看>>
程序员掉头发的原因找到了 | 每日趣闻
查看>>
腾讯:我就是那只吃了假辣椒酱的憨憨。老干妈:企鹅你可长点心吧!
查看>>
倒计时1天 | 张钹院士领衔,AI开发者大会20大论坛全攻略!
查看>>
运维工程师的日常?? | 每日趣闻
查看>>
31 道 Java 核心面试题,统统打包给你!
查看>>