您的位置:首页 > 产品设计 > UI/UE

String、StringBuffer和StringBuilder的区别

2017-07-25 13:21 344 查看
一、   三者的区别

1、String  不可变:有“final”修饰符

private
final char value[];

StringBuffer和StringBuilder可变:

均继承自AbstractStringBuilder类,在AbstractStringBuilder中使用字符数组保存字符串,可变。

    char[] value;

2、StringBuffer加锁,所以线程安全,但是效率低

StringBuilder不加锁,所以线程不安全,但是效率高

效率排行榜

StringBuilder >StringBuffer > String 

二、   String的特殊性

String str1 ="xiao ming ";    // 字符串定义在静态区域。(存放静态成员 static定义的 大小有限)

String str2 = newString( "xiao ming ");   // 字符串定义在动态区域即堆内存

 

 


——String缓冲池内不存在与其指定值相同的String对象,虚拟机将创建新String对象,存在则直接返回已存在的String对象的引用。
即先在静态区域找是否有值相同的对象,有则直接指向此变量。

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: