String,StringBuffer、StringBuilder的区别

1、可变性

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

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

2、线程安全性

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

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

StringBuilder不是线程安全的。

3、性能方面

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

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

StringBuilder性能来说最优。

4、存储方便

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

相关推荐
初晴融雪-快雪时晴5 天前
基础知识:认知不足导致财富的均值回归 / 认知是财富的容器
基础知识
weixin_446023566 天前
C语言入门:发展历程与编程应用
c语言·基础知识·发展历程·语法结构·编程应用
阿亮爱学代码7 天前
AAOS(Android Automotive OS)IVI(车机娱乐信息系统)相关的简单讲解
娱乐·aaos·automotive·基础知识
初晴融雪-快雪时晴9 天前
基础只是:发动机、变速器、地盘、电池、电机、电控、智能座仓、辅助驾驶 / 当代汽车八大件
基础知识
初晴融雪-快雪时晴23 天前
基础知识:理解虚拟资产 / 数字商品 / 实用代币 / 稳定币 / 资产支持代币 / 数字收藏品 / 数字证券
基础知识
绵满1 个月前
强化学习基础(RL)笔记
深度学习·强化学习·基础知识
●VON2 个月前
HarmonyOS应用开发实战(基础篇)Day02-《ArkTS函数》
学习·harmonyos·鸿蒙·基础知识·von
知无不研3 个月前
c语言动态内存规划
c语言·动态内存管理·内存泄露·基础知识·malloc·realloc·calloc
彷徨而立3 个月前
【基础知识】YU12、I420、IYUV 是同一种格式
基础知识
彷徨而立3 个月前
【基础知识】ANSI、GB2312、UTF-8、Unicode、wchar_t 的含义和区别
基础知识