String,StringBuffer、StringBuilder的区别

1、可变性

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

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

2、线程安全性

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

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

StringBuilder不是线程安全的。

3、性能方面

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

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

StringBuilder性能来说最优。

4、存储方便

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

相关推荐
知无不研7 天前
c语言动态内存规划
c语言·动态内存管理·内存泄露·基础知识·malloc·realloc·calloc
彷徨而立13 天前
【基础知识】YU12、I420、IYUV 是同一种格式
基础知识
彷徨而立15 天前
【基础知识】ANSI、GB2312、UTF-8、Unicode、wchar_t 的含义和区别
基础知识
一支闲人1 个月前
单片机学习的前提知识储备
单片机·基础知识
小龙2 个月前
【理论知识】石油测井技术全景概览
基础知识·岩性识别·石油测井·测井技术
一支闲人2 个月前
CAN:STM32 CAN外设2
stm32·单片机·基础知识·can协议·stm外设
一支闲人3 个月前
STM32 CAN外设1
stm32·单片机·嵌入式硬件·基础知识·cna协议
一支闲人3 个月前
CAN总线协议:位同步
stm32·单片机·基础知识·can总线协议
一支闲人4 个月前
带你了解STM32:SPI通信(硬件部分)
stm32·单片机·嵌入式硬件·基础知识
一支闲人4 个月前
带你了解STM32:SPI通信(软件部分)
stm32·单片机·嵌入式硬件·基础知识·适用于新手小白