java編碼規範

  1. java文件的編碼必須是UTF-8
    java

  2. 縮進必須使用空格而不是tab數組

  3. 對於有特殊轉義表示的字符(\b\t\n\f\r\"\'\\),禁止使用其它等價轉義方式。例如\012或者\u00a表示app

  4. 順序:【許可證(License)或版權聲明(Copyright)、package語句、import語句、惟一的頂層類】中間用2個空行分割ide

  5. 每一個源文件只容許包含惟一一個頂層類函數

  6. 重載的方法必須放在一塊兒,即同名的構造函數或方法之間禁止插入其餘成員編碼

  7. 每次開始書寫一個新的代碼塊時,使用4個空格進行縮進,在代碼塊結束時,恢復以前的縮進級別spa

  8. 列寬必須爲120字符,如下狀況能夠不遵照列寬限制:code

    1. 沒法限制寬度的內容,好比註釋裏的長URLorm

    2. package和import語句ip

    3. 註釋中須要被粘貼到Shell裏去執行的命令

  9. 除了語法要求,字符串內的空格,以及JavaDoc裏的空格,須要在下列狀況裏使用空格

    1. 保留字(好比if、for和catch)和隨後的左圓括號(()之間要有一個空格

    2. 保留字(好比else和catch)和以前的右花括號(})之間要有一個空格

    3. 在任意左花括號({)以前要有一個空格。@SomeAnnotation({a, b})和String[][] x = {{"foo"}};這兩種狀況除外。

    4. 在二目和三目運算符兩邊各要有一個空格。該規則一樣適用於<T extends Foo & Bar>中的&,catch (FooException | BarException e)中的|,以及foreach中的:

    5. 在逗號(,)」、冒號(:)和類型轉換用的右圓括號())後要有一個空格

    6. 在用於行末註釋的//先後各要有一個空格

    7. 在聲明語句的類型和名稱之間要有一個空格,好比List<String> list

    8. 如下兩種初始化數組的形式都可接受:

      new int[] {5, 6}

      new int[] { 5, 6 }

    9. 除行首縮進、註釋和字符串內的空格之外,禁止使用連續的空格

  10. 用逗號(,)分隔每一個枚舉常量,也能夠用換行

    1. enum Color {
          RED,
          GREEN,
          YELLOW
      }
      enum Action {
          CREATE, READ, UPDATE, DELETE
      }
  11. 必須用String[] args的方式來聲明數組,而非String args[]。數組的初始化:  

    1. new int[] {
          0, 1, 2, 3
      }
      
      new int[] {
          0, 1,
          2, 3
      }
      
      new int[] {
          0,
          1,
          2,
          3,
      }
  12. 統一註釋的風格

    1. /*
       * 能夠
       * 這樣
       */
      
      // 也能夠
      // 這樣
      
      /* 或者甚至
       * 這樣 */
  13. 當同時使用多個修飾符時,按順序:

    1. public protected private abstract static final transient volatile synchronized native strictfp
  14. 長整型數字必須使用大寫字母L結尾,不能使用小寫字母l,以便和數字1進行區分。例如使用3000000000L而不是3000000000l

  15. 禁止覆蓋(Override)Object.finalize方法

  16. Javadoc格式

    1. /**
       * Multiple lines of Javadoc text are written here,
       * wrapped normally...
       */
      public int method(String p1) {
          ...
      }
    2. /**
       * Represents ....
       *
       * <p>More details here
       */
      public class XXX {
          ...
      }
      
      /**
       * Represents ....
       *
       * <p>
       * New line is allowed.
       */
      public class XXX {
          ...
      }
相關文章
相關標籤/搜索