《編寫高質量代碼》讀書筆記一

《編寫高質量代碼》讀書筆記一
這些建議,咱們讀過以後,以爲頗有必要來分享一下,但願能夠幫到你。
少讀書,多思考,提升對程序自己的認識。
建議 1: 不要在常量和變量中出現容易混淆的字母
public class Client {
    public static void main(String[] args)} {
        long i = 1l;
        System.out.println("Double i is: " + (i+i));
    }
}

實際結果:2
--------------------------------------
注意:字母「l」做爲長整型標誌時務必大寫。
--------------------------------------

建議 2: 莫讓常量蛻變成變量
public class Client {
    public void mani (String[] args) {
        System.out.println("Const is: " + Const.RAND_CONST);
    }
}

interface Const {
    public static final int RAND_CONST = new Random().nextInt();
}

--------------------------------------
注意:務必讓常量的值在運行期保持不變。
--------------------------------------


建議 3: 三元操做符的類型必一致
public class Client {
    int i = 80;
    String s = String.valueOf(i<100?90:100);
    String s1 = String.valueOf(i<100?90:100.0);
    System.out.println("Both equal: "+s.equals(s1));
}

實際結果:false
String s1 = String.valueOf(i<100?90:100.0);// 100.0是浮點型

建議 4: 避免帶有變長參數的方法重載
public class Client {
    //Method 1
    public void calPrice(int price, int discount) {
        //TODO
    }
    //Method 2
    public void calPrice(int price, int... discounts) {
        //TODO
    }
    public static void main(String[] args) {
        Client client = new Client();
        client.calPrice(49900, 75);
    }
}

哪一個方法會被call? 爲何?
來問我啊,哈哈哈哈

建議 5: 別讓null值和空值威脅到變長方法
public class Client {
    
}

建議 6: 覆寫變長方法也循規蹈矩

建議 7: 警戒自增的陷阱

建議 8: 不要讓舊語法困擾你

建議 9: 少用靜態導入

建議 10: 不要在本類中覆蓋靜態導入的變量和方法

建議 11: 養成良好習慣,顯式聲明UID

建議 12: 避免用序列化類在構造函數中爲不變量賦值

建議 13: 避免爲final變量複雜賦值

建議 14: 使用序列化類的私有方法巧妙解決部分屬性持久化問題

建議 15: break萬萬不可忘

建議 16: 易變業務使用腳本語言編寫

建議 17: 慎用動態編譯

建議 18: 避免instanceof非預期結果

建議 19: 斷言絕對不是雞肋

建議 20: 不要只替換一個類

dom

相關文章
相關標籤/搜索