在上一篇中小總結了下J2ME手機開發中的內存優化的一些內容,本文繼續總結下在J2ME開發過程中的一些細節優化處理.優化的作用就是提高代碼的執行效率,降低運行時的內存消耗,更好的適應各類內存類型的大小跟配置,以下內容將專門敘述有關代碼優化的細節.
A、除法運算優化
在除法運算過程中使用移位操作比直接使用"/"更具效率,如(a b)/2優化后的代碼為(a b)>>1.
B、變數局部化
在聲明變數時候,盡量使用局部變數去替代全局變數,局部變數的賦值性能高於全局變數,如下代碼:
int sum; public void add(){ for(int i=0;i<100;i ) sum = i; } 優化後代碼為: int sum; public void add(){ int temp = sum; for(int i=0;i<100;i ) temp = i; sum = temp; } |
C、多選擇switch
在多選擇情況下,使用switch進行判斷而少用if-else來做判斷,不但提高性能,而且提高代碼可讀性.
D、字元串聲明
在字元串聲明中,使用直接賦值比創建字元串對象好,比如String str = "test"; 比String str = new String("test");更節省內存,new本身創建了另一個字元串對象,從而增加了內存開銷.
E、字元串判空
在判斷一個字元串是否為空情況下,使用判斷字元串長度是否為零,而不使用與""做比較,如使用str.length==0而不使用str.euqals("").
F、StringBuffer對象
在使用StringBuffer中,如果操作一個字元,使用'',而不使用"",如'a',而不是"a".
G、異常處理優化
在異常捕獲處理代碼中,可以使用對異常發生的情況先進行判斷,並執行當異常情況請有效代碼來替代try-catch的異常處理.如下代碼:
try{ a.do(); }catch(NullPointerException ex){ //異常處理代碼 } 優化為: if(a==null) { ruturn; }else { a.do(); } |
H、內部類
使用內部類在某些時候帶來一定好處,但是使用內部類會消耗更多的內存,因此盡量少使用內部類.
I、程序暫停與開始
在程序暫停pauseApp時候讓無用的資源釋放,而在開始startApp的時候獲取資源,在程序停止destoryApp的時候釋放所有資源.
[火星人 ] J2ME手機開發之內存優化攻略(續)已經有734次圍觀