1. 程式人生 > 其它 >JAVA程式設計規範

JAVA程式設計規範

1 介面類中的方法和變數都不要加任何的修飾符號,public也不要加。因為經過編譯的class檔案會自動加上這些

public interface CalInterface {
 
    float PI = 3.14159f;//定義用於表示圓周率的常量PI
 
    float getArea(float r);//定義一個用於計算面積的方法getArea()
 
    float getCircumference(float r);//定義一個用於計算周長的方法getCircumference()
}
public abstract interface CalInterface
{
  
public static final float PI = 3.14159F; public abstract float getArea(float paramFloat); public abstract float getCircumference(float paramFloat); }

2 Float型,DOUBLE型計算問題

  如果涉及到小數運算,對於float和double型,不能夠使用‘+’,'-' '=='等運算。必須轉成BigDecimal

  

BigDecimal a = new BigDecimal("1.0"); BigDecimal b = new BigDecimal("0.9"); BigDecimal c = new BigDecimal("0.8"); BigDecimal x = a.subtract(b); BigDecimal y = b.subtract(c); if (x.compareTo(y) == 0) { System.out.println("true"); } 如上所示 BigDecimal 的等值比較應使用 compareTo()方法,而不是 equals()方法。 說明:equals()方法會比較值和精度(1.0 與 1.00 返回結果為 false),而 compareTo()則會忽略精度。 禁止使用構造方法 BigDecimal(double)的方式把 double 值轉化為 BigDecimal 物件。 說明:BigDecimal(double)存在精度損失風險,在精確計算或值比較的場景中可能會導致業務邏輯異常。 如:BigDecimal g = new BigDecimal(0.1F); 實際的儲存值為:0.10000000149 正例:優先推薦入參為 String 的構造方法,或使用 BigDecimal 的 valueOf 方法,此方法內部其實執行了 Double 的 toString,而 Double 的toString 按 double 的實際能表達的精度對尾數進行了截斷。 BigDecimal recommend1 = new BigDecimal("0.1"); BigDecimal recommend2 = BigDecimal.valueOf(0.1); 3 集合變成陣列 List<String> list = new ArrayList<>(2); list.add("guan"); list.add("bao"); String[] array = list.toArray(new String[0]); 注意,toArray方法入參必須是長度是0,通過自適應建立效能是最好的 4 陣列變集合 String[] str = new String[] { "chen", "yang", "hao" }; List list = Arrays.asList(str); 注意,返回的List是
private
static class ArrayList<E> extends AbstractList<E> implements RandomAccess, java.io.Serializable {

該ArrayList是Arrays的內部類,它不支援add,remove,clearall等方法