1. 程式人生 > >StringBuffer 和String的區別,以及二者之間的轉換(重要)

StringBuffer 和String的區別,以及二者之間的轉換(重要)

在編寫驗證碼的時候,用到 session.setAttribute("piccode",stringBuffer);後面要拿出來,要變成string型別。

要用String piccode = request.getSession().getAttribute("piccode").toString();而不能用(string)強制型別轉化。

1. String 是內容不可以變化的,stringbuffer和stringbuilder是內容可以變化的。

2.stringbuffer是同步的,執行緒安全的,但是正是同步的,故效率低。

 stringbuilder是非同步的,資料不安全,但是效率高。

 

string和stringbuffer的轉化

這裡不可以使用(string)這樣的強制型別轉化。

這裡可以使用stringbuffer自帶的.toString()方法來轉化二者。

 

ps:(string)和valueOf()和.toString()的區別

第一種:用(string)來:

這是標準型別的轉化,但是要注意的是型別要可以轉化成string 型別,如果不能,就會報錯。

另外,如果是object的話,轉化可能會出現不可欲知的錯誤,而且也不會報錯。

Object obj = new Integer(100); String strVal = (String)obj;

這樣其實是錯誤的,但是不會報錯。

第二種:用.toStringj()來:

採用這種方法要注意,object必須不能是null的,否則會丟擲空指標異常。

第三種:valueof()的方法來

使用這種方法其實就是和.toString()方法一樣,唯一不一樣是,他會進行是否為空的判斷。如果為空,會返回一個字串型別的null。