栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

String StringBuffer StringBuilder 的对比

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

String StringBuffer StringBuilder 的对比

StringStringBufferStringBuilder

继承关系

数据类型

String类继承Object类,String被final所修饰无法被继承,String是引用数据类型。                      继承自AbstractStringBuilder类,引用数据类型。
初始化双引号创建一个字符串时,JVM 首先在字符串池中寻找具有相同值的字符串。如果找到了,它将返回字符串池中的字符串对象的引用。否则,它会在字符串池中创建字符串对象并返回引用。JVM 通过在不同的线程中使用相同的字符串,节省了大量的内存。StringBuffer s = new StringBuffer(“abc”); 使用new进行初始化
可变性和字符拼接

String 是不可变的。

String拼接字符可以使用+号进行拼接。会生成新的字符开辟新的存储空间,而舍弃原来的存储空间。会在堆中产生垃圾。

String Buffer 和StringBuilder都是可变的。

使用append方法进行拼接,在原有的字符串上进行操作不会产生垃圾。

安全性非线程安全

线程安全 同步

StringBuffer 重写方法时被synchronized锁修饰提高了其安全性

非线程安全

非同步

性能较低
适用场景字符串在 Java 中是不可变的,因此适合在多线程少量数据环境下使用如果是在多线程下操作大量数据,应优先使用StringBuffer类。如果是在单线程下操作大量数据,应优先使用StringBuilder类

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/445696.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号