String 大家庭

Java字符串大家庭主要包括 String StringBuilder StringBuffer

String

String 是一个不可变类,创建方式有2种,如下:

String a = "hello";  // a 字符串存放在字符串常量池中
String b = new String("hello"); //b 字符串存放在堆中

String 既然是一个不可变的,那么如何进行拼接操作呢?那就需要借助StringBuiler 了。
既然String是不可变的,那它一定是个线程安全的类。

StringBuiler

下面我们修改一个字符串

String a = "hello";    
String b = a + "abc";

其实现方式其实是如下的:

String a = "hello";  
StringBuilder s = new StringBuilder(a);  //将String字符串放入到StringBuilder对象中
s.append("abc"); //将  abc 拼接到 hello 上
return s.toString();  //返回一个字符串结果

StringBuilder 不是一个线程安全的类。在单线程下会快于StringBuffer。

StringBuffer

由于String方法对字符串的拼接修改等操作过于复杂,这时候StringBuffer就该站出来了。
StringBuffer 是一个字符串缓冲区,并且是一个可变类。所以我们可以直接在当前的StringBuffer中进行字符串的操作,不会进行其他的复杂操作,如下

StringBuffer s = new StringBuffer("hello"); //初始化一个缓冲区
s.append("abc"); //将字符串加入缓冲区

并且StringBuffer是一个线程安全的,在多线程情况下。操作数据量大的字符串的时候StringBuffer是一个不错的选择。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章