String,StringBuffer、StringBuilder的区别

1、可变性

String:是不可变的、其内部是fianl修饰的,每次变更都会创建一个新的对象。

StringBuffer、StringBuilder是可变的,字符串的变更是不会创建新对象的。

2、线程安全性

String是不变的,线程安全的。

StringBuffer是线程安全的,每次操作方法是都会添加synchronized同步关键字。

StringBuilder不是线程安全的。

3、性能方面

String的性能最低,因为每次修改字符串时都会创建新对象和内存。

StringBuffer因为是可变的,可以直接修改,但是因为添加了synchronized重量级锁,所以性能不如StringBuilder。

StringBuilder性能来说最优。

4、存储方便

String是存储在字符串常量中,而Stringbuffer和StringBuilder都存储在堆内存中。

相关推荐
一支闲人5 天前
带你了解STM32:SPI通信(硬件部分)
stm32·单片机·嵌入式硬件·基础知识
一支闲人8 天前
带你了解STM32:SPI通信(软件部分)
stm32·单片机·嵌入式硬件·基础知识·适用于新手小白
一支闲人8 天前
带你了解STM32:I2C通信(第二部分)
stm32·单片机·嵌入式硬件·基础知识·适用于新手小白
RE-190112 天前
Excel基础知识 - 导图笔记
数据分析·学习笔记·excel·思维导图·基础知识·函数应用
一支闲人1 个月前
带你了解STM32:GPIO通用输入输出口
stm32·基础知识·适用于新手小白
一支闲人1 个月前
STM32新建工程
stm32·基础知识·适用于新手小白·新建工程
一支闲人2 个月前
C语言相关简单数据结构:双向链表
c语言·数据结构·链表·基础知识·适用于新手小白
一支闲人2 个月前
C语言相关简单数据结构:顺序表
c语言·数据结构·基础知识·适用新手小白
ChanYanny5 个月前
deepseek-r1的1.5b、7b、8b、14b、32b、70b和671b有啥区别?
机器学习·基础知识
Leweslyh6 个月前
云计算:基础、概念与未来展望
学习·云计算·基础知识