這個我經常用的是String,說真的,用StringBuffer的次數還真是少,唯一讓我覺得特別的方法就是appand這個方法是StringBuffer獨有的,那么他們到底有什么區別呢,我們知道String是字符串,而字符串是對象,對象里有一個概念叫做可變對象和非可變對象,String屬于非可變對象,StringBuffer屬于可變對象,可能有人會問String str=“aa”;str="bb";這句話也能通過編譯啊,沒有任何錯誤啊,是的,這句話的確沒有一丁點的錯誤,不過你忽略了一點,就是“aa”和“bb”是字符串吧,字符串是對象吧,他們壓根就不是一個對象,說String是不可變對象,其實在String str="aa"這句話其實是一個引用的使用,他引用到了一個對象,str在等于“aa”之前他所指向的地址和后來并不是一樣的,就是說他并不是把值給了str,而是把對象的引用給了他,換句話說就是把對象的地址給了他,然而你想改變“aa”這個對象地址的數據通過String是不可能實現的,就像這個程序:
這個程序返回值和輸入的不會有變化。
下面說說StringBuffer,這個類型可以進行修改的,就是說他是在原來地址上進行修改,差別就在于此。
因此得到的結論是:如果你對字符串中的內容經常進行操作,特別是內容要修改時,那么使用StringBuffer,如果最后需要String,那么使用StringBuffer的toString()方法好了!
也許這就是你的程序的性能瓶頸!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
新聞熱點
疑難解答