【Java 基础面试题】string和stringbuffer和stringbuilder的区别是什么(135)

string和stringbuffer和stringbuilder的区别

1、String是字符串常量,而StringBuffer和StringBuilder是字符串变量。由String创建的字符内容是不可改变的,而由StringBuffer和StringBuidler创建的字符内容是可以改变的。

2、StringBuffer是线程安全的,而StringBuilder是非线程安全的。StringBuilder是从JDK 5开始,为StringBuffer类补充的一个单线程的等价类。我们在使用时应优先考虑使用StringBuilder,因为它支持StringBuffer的所有操作,但是因为它不执行同步,不会有线程安全带来额外的系统消耗,所以速度更快。

总结:

关于线程安全,我们要知道一个原理:线程安全的前提的是该类的方法中运用了大量的synchronized关键字去修饰方法;这样一来,就不能同时进行多线程访问,必须要排队访问,所以线程安全的同时呢,也导致效率低下;没有synchronized修饰的类,必然访问效率高,可以同时多线程访问;

String、StringBuilder、StringBuffer共同之处

1、都是字符处理类。

2、来自java.lang包。

3、都实现了接口java.io.Serializable, CharSequence。

4、都是final class不能被继承。

相关推荐
渡我白衣33 分钟前
并查集:基础认识与模拟实现
android·java·javascript·数据结构·c++·算法·并查集
天下无敌笨笨熊37 分钟前
C#Modbus串口开发心得
开发语言·c#
电商API_1800790524737 分钟前
电商商品价格监控工具淘宝京东商品价格抓取API项目实操分享
java·大数据·开发语言·前端·数据挖掘
zzzll111138 分钟前
深度剖析:HashMap 并发死循环与 ConcurrentHashMap 两代演进全解
java·开发语言
如意猴40 分钟前
【C++】001--C++入门(1)
开发语言·c++
秋名RG1 小时前
2026/5/27 生产事故复盘与整改方案
java
传奇开心果编程1 小时前
【Rust入门知识点学与练】第10课:Option 和 Result(错误处理入门)
开发语言·学习·rust
leonkay1 小时前
C# 锁机制——【2】深入原理
开发语言·后端·spring·c#·个人开发
血小板要健康1 小时前
链表 阶段算法总结
java·数据结构·笔记·算法·leetcode·链表
坐吃山猪1 小时前
【多线程】CompletableFuture使用
java·开发语言·多线程