java規範總結

來源:互聯網
上載者:User

標籤:特性   對比   索引   邏輯   table   index   調用   版本   設計模式   

1.所有的相同類型的封裝類對象之間值的比較,全部使用 equals 方法比較。

    說明:對於 Integer var = ? 在-128 至 127 範圍內的賦值,Integer 對象是在 IntegerCache.cache 產生,
              會複用已有對象,這個區間內的 Integer 值可以直接使用==進行 判斷,但是這個區間之外的所有資料,
              都會在堆上產生,並不會複用已有對象,這是一個大坑,推薦使用 equals 方法進行判斷。

2.Object 的 equals 方法容易拋null 指標異常,應使用常量或確定有值的對象來調用equals。

       如:"test".equals(object);

3.使用索引訪問用 String 的 split 方法得到的數組時,需做最後一個分隔字元後有無內容的檢查,否則會有拋 IndexOutOfBoundsException 的風險。

       如:
             String str = "a,b,c,,";
             String[] ary = str.split(",");
             //預期大於 3,結果是 3
             System.out.println(ary.length);

4.類內方法定義順序依次是:公有方法或保護方法 > 私人方法 > getter/setter方法。

說明:公有方法是類的調用者和維護者最關心的方法,首屏展示最好;保護方保護方法雖然只是子類關心,
          也可能是“模板設計模式”下的核心方法;而私人方法外部一般不需要特別關心,是一個 黑盒實現;
          因為方法資訊價值較低,所有 Service 和 DAO 的 getter/setter 方法放在類體最後。

5.不要在 foreach 迴圈裡進行元素的 remove/add 操作。remove 元素請使用 Iterator方式,如果並行作業,需要對 Iterator 對象加鎖。

6.在 JDK7 版本及以上,Comparator 要滿足如下三個條件,不然 Arrays.sort,Collections.sort 會報 IllegalArgumentException 異常。

說明:
      1) x,y 的比較結果和 y,x 的比較結果相反。
      2) x>y,y>z,則 x>z。
      3) x=y,則 x,z 比較結果和 y,z 比較結果相同。

7.利用 Set 元素唯一的特性,可以快速對一個集合進行去重操作,避免使用 List 的contains 方法進行遍曆、對比、去重操作。

8.如果是 JDK8 的應用,可以使用 Instant 代替 Date,LocalDateTime 代替 Calendar,DateTimeFormatter代替Simpledateformatter,
   官方給出的解釋:simple beautiful strong immutable thread-safe。

9.表達異常的分支時,少用 if-else 方式,這種方式可以改寫成:
  if (condition) {
   ...
   return obj;
  }

10.除常用方法(如 getXxx/isXxx)等外,不要在條件判斷中執行其它複雜的語句,將複雜邏輯判斷的結果賦值給一個有意義的布爾變數名,以提高可讀性。
  如:final boolean existed = (file.open(fileName, "w") != null) && (...) || (...){
      ...
    };
    if (existed) {
     ...
    }

11.後台輸送給頁面的變數必須加$!{var}——中間的驚嘆號。
  說明:如果 var=null 或者不存在,那麼${var}會直接顯示在頁面上。

    

java規範總結

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.