請盡量用BufferString進行字元拼接

2021-08-30 18:49:05 字數 670 閱讀 9094

最近寫hql語句時,用到很多字元的鏈結,產生了對string和stringbuffer的思考。

string類用來表示那些建立後就不會再改變的字串,它是immutable的。

stringbuffer類用來表示內容可變的字串,並提供了修改底層字串的方法。

當我們進行字元拼接時,請使用stringbuffer類而非string類,因為前者將比後者快上百倍。的確,在程式的太多場合我們都會進行字串拼接工作,簡單的**示例如下:

string hql="select c from oaarchivessort c ";

hql+=" order by c.id asc";

如果用stringbuffer類的話,**如下:

stringbuffer hql= new stringbuffer(" select c from oaarchivessort c ");

而如果直接使用stringbuffer類,程式將只產生兩個物件:最初的stringbuffer和拼接時的string("order by c.id asc"),也不再需要建立臨時的stringbuffer類物件而後還得將其轉換回string物件。

可以想象,當我們的字串要被迴圈拼接若干段時,用string類直接操作會帶來多少額外的系統開銷,生成多少無用的臨時stringbuffer物件,並處理多少次無謂的強制型別轉換哪。

盡量用static const替代預處理指令

變數一定要同時用static和const來宣告,而盡量不要用預處理指令 static修飾符表示該變數僅在定義此變數的編譯單元 實現檔案,也就是.m檔案 中可見。編譯器每收到乙個編譯單元,就會 輸出乙份目標檔案 object file 如果不加static修飾符,編譯器會建立乙個外部符號 extern...

為什麼你要盡量用auto

總的來說,使用auto可以幫助你實現正確 高效的變數宣告,讓 更健壯,可維護性更高。由於auto宣告的變數,其型別推導自初始化物,所以他們必須被初始化。int x 可以未初始化 auto x error,必須被初始化 auto x 1 ok,x int這樣就避免了你使用乙個未初始化變數而不小心引出的...

基於資料整合時,請盡量隔離介面表的訪問

近來,領導安排寫乙個資料整合的方案,解決目前系統中資料冗餘問題,隔離外部系統對我們系統的訪問。首先,我們知道,資訊系統整合主要包括以下種的整合 1 硬體整合 使用硬體裝置將各個子系統連線起來,例如使用路由器連線廣域網等。2 軟體整合 軟體整合要解決的問題是異構軟體的相互介面。3 資料和資訊整合 資料...