String、StringBuilder、StringBuffer的区别

本文介绍了Java中String、StringBuilder和StringBuffer的区别及应用场景。针对不同需求,选择合适的字符串处理方式可以提高程序效率并节约内存资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、介绍

1、String:Java提供了String类来创建和操作字符串对象,

                  String的值是不可变的,每次对String的操作都会生成新的String对象,导致程序效率低且浪费内存空间。

//以下操作,是在常量池中创建了3个对象,分别是:"Hello"、" World"、"Hello World"
String str = "Hello";
str = str + " World";

2、StringBuildr 和 StringBuffer:这两个类的对象能够被多次的修改,并且不产生新的未使用对象。

二、区别

1、字符修改方面

String:不可修改字符串;

StringBuilder:可修改字符串、效率高、线程不安全;

StringBuffer:可修改字符串、效率低、线程安全;

2、效率排名

StringBuilder > StringBuffer > String

3、初始化

String 可被赋值为 null , 另外二者不可; 

三者都可被赋值为 " "    。

String a = null; //没问题
String b = ""; //没问题

StringBuffer s = null; 
//结果警告:Null pointer access: The variable result can only be null at this location
StringBuffer s = new StringBuffer(); //StringBuffer对象是一个空的对象
StringBuffer s = new StringBuffer(""); //StringBuffer对象是一个空的对象

三、小结

1、操作少量数据,可用String;

2、多线程、字符串缓冲区下、操作大量数据,用StringBuffer;

3、单线程、字符串缓冲区下、操作大量数据,用StringBuilder;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值