String StringBuffer和StringBuilder的区别

本文详细解析了StringBuffer和StringBuilder的区别,包括它们的历史背景、线程安全性、执行效率及应用场景。同时介绍了String类型与这两者之间的区别,以及如何在Java中使用这些类进行字符串操作。

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

StringBuffer和StringBuilder的区别

查看java API StringBuffer和StringBuilder的方法基本一样

StringBuffer是jdk1.0版本的,线程安全,可以加锁,执行效率较低

StringBuilder是jdk1.5版本的,线程不安全,执行效率较高

String StringBuffer和StringBuilder的区别

String是不可变的字符序列

StringBuffer和StringBuilder是可变的字符序列

 

StringBuffer的默认初始长度为16

应用举例

public class MyStringBuffer {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
    
	    //构造一个缺省的StringBuffer
	    StringBuffer sb1=new StringBuffer();
	    //StringBuffer的初始容量
	    System.out.println(sb1.capacity());
	    //StringBuffer的内容长度
	    System.out.println(sb1.length());

	}

}

运行结果

16
0

public class MyStringBuffer {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
    
	    //构造一个指定容量为22的StringBuffer
	    StringBuffer sb2=new StringBuffer(22);
	    //StringBuffer的初始容量
	    System.out.println(sb2.capacity());
	    //StringBuffer的内容长度
	    System.out.println(sb2.length());

	}
}

运行结果

22
0

import java.util.Scanner;

public class MyStringBuffer {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		Scanner s=new Scanner(System.in);
	    String st=s.nextLine();
	    
	    
	    //构造一个指定为字符串st的StringBuffer
	    StringBuffer sb2=new StringBuffer(st);
	    //StringBuffer的容量
	    System.out.println(sb2.capacity());
	    //StringBuffer的长度
	    System.out.println(sb2.length());

	}
}

运行结果

aloha
21
5

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值