String,StringBuffer、StringBuilder的区别

1、可变性

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

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

2、线程安全性

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

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

StringBuilder不是线程安全的。

3、性能方面

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

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

StringBuilder性能来说最优。

4、存储方便

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

相关推荐
汉密士2024010116 天前
微积分[1]|微积分的底层逻辑——解析几何、不等式与极限(含博主推荐的数理阅读教材共计21本书籍)
微积分·基础知识
周珂呀1 个月前
Linux 命令行学习:数据流控制、文本处理、文件管理与自动化脚本 (第二天)
linux·前端·chrome·操作系统·终端·基础知识
Fountyuan1 个月前
C#字符串格式化之String.Format
c#·基础知识·c#知识·.net技术
Fountyuan1 个月前
C#应用程序实现限制输入法
1024程序员节·基础知识·c#知识·.net技术
亦可呀2 个月前
计算机网络概述
计算机网络·osi模型·基础知识·计算机网络性能指标·计算机网络体系结构·tcp/ip模型
城北有个混子4 个月前
浅谈:HTTP 和 HTTPS 通信原理
网络·基础知识
神奇夜光杯4 个月前
Python酷库之旅-第三方库Pandas(021)
开发语言·python·pandas·基础知识·标准库及第三方库·学习与成长
神奇夜光杯4 个月前
Python酷库之旅-第三方库Pandas(020)
开发语言·人工智能·python·excel·pandas·基础知识·学习与成长
神奇夜光杯5 个月前
Python酷库之旅-第三方库Pandas(006)
开发语言·人工智能·python·pandas·基础知识·学习和成长·标准库及第三方库