String、StringBuffer、StringBuilder区别

一、是否可变

String类是不可变的,而另外两个是可变的。

String类是每当你new一个字符串时,他都会在新的内存地址上产生该字符串,并将对象引用。

而StringBuffer、StringBuilder则是依靠父类,初始化默认容量为16,之后超过则增加一倍容量+2,当然他也有一个最大值为0x7fffffff

 

二、使用方法

String类可以直接输入字符串如:String s = "hello";   

也可以new出对象如:String s = new String("hello");

如果需要拼接的话则使用  s += "world";

 

StringBuffer、StringBuilder首先实例化  StringBuffer sb = new StringBuffer("hello");

拼接有2种方法,append(str)与insert(str,index);

sb.append(" world");则sb中内容为hello world

sb.insert("abc",4);则sb中内容为hellabco

StringBuilder同样

 

 

三、是否安全

SringBuffer由于实现了加锁操作,因此是线程安全的

而String和StringBuilder则是线程不安全的

 

四、使用环境

String主要处理操作数量少的

StringBuilder则在单线程大数量数据情况下使用

StringBuffer则在多线程大数量数据情况下使用

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值