???????嚴正聲明:本文出自
即興詩人blogjava博客,如轉載必須與作者聯系
improviser@163.com!??????
???????在上一篇中小總結了下
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的時候釋放所有資源。
????? 嚴正聲明:本文出自
即興詩人blogjava博客,如轉載必須與作者聯系
improviser@163.com!
?
鳳凰涅槃/浴火重生/馬不停蹄/只爭朝夕
???? 隱姓埋名/低調華麗/簡單生活/完美人生