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则在多线程大数量数据情况下使用

 

 

posted @ 2020-05-17 17:13  为之。  阅读(41)  评论(0编辑  收藏  举报