java 優化

 

一、編碼優化

 

(一).對象與基本類型

 

1. clone() 方式創建對象的選擇

    private static Person per = new Person();
    public static Person getPerson() throws CloneNotSupportedException{
        return (Person) per.clone();
    }

 注意:該方式是淺拷貝,類需要實現 Cloneable 接口,拷貝的新對象會包含一些原來對象的信息,當構造器中有複雜邏輯執行時,clone()方式創建對象才比new快(clone() 是對內存中數據塊的拷貝,沒有調用構造器)。

2.避免對boolean判斷

當表達式結果爲Boolean類型時,避免將表達式結果再與‘true’或‘false’進行比較。

        if( str.endsWith("a"));  //推薦
        if(str.endsWith("a") == true );  //不推薦

3.靜態方法的選擇

如果不需要去訪問對象的外部,那麼就把方法聲明爲static的,如工具類中的方法。 靜態方法通過“類名.方法名”的方式調用,無須創建對象,不需要虛擬導向表,可以更快的調用。

4.多使用局部變量

局部變量的訪問速度遠高於成員變量

5.運算符的選擇

使用 || 代替 | ,使用 && 代替 & ,使用 >> 、<< 、>>> 代替部分算術運算

6.數據維數的選擇

二維數組的訪問速度優於一維數組,但二維數組比一維數組要佔用更多的內存。

7.表達式優化

    int a1,a2,a3;
    
    //方式1
    int b1 = a1*a2*a3*13;
    int b2 = a1*a2*a3*17;
    int b3 = a1*a2*a3*19;
    
    //優化方式
    int c0 = a1*a2*a3;
    int b1 = c0*13;
    int b2 = c0*17;
    int b3 = c0*19;

8.避免重複初始化變量

java會把變量初始化爲一個確定的值,對象爲null,整數類型爲0,浮點類型爲0.0,布爾類型爲false,

9.數值字面量的改進

        int a = 0b10;  //二進制,數字前加"0b"或"0B"
        System.out.println(a);  //2
        
        int b = 017; //八進制,數字前加"0"
        System.out.println(b); //15
        
        int c = 0x15; //十六進制,數字前加"0x"或"0X"
        System.out.println(c); //21
        
        int d = 50_000_000; //加"_"增加可讀性,相當於50,000,000
        System.out.println(d);  //50000000

10.賦空變量

賦空變量是指將null值顯示的賦給變量。這樣使該變量的引用失去作用域,不再有對該變量的引用,它就可以被當做垃圾收集了。(對於局部變量,當方法執行完畢,局部變量就失去了作用域,棧就會刪除對該變量的引用)

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章