1. 正常對應類型
2. 相互轉化類型
3. 會出現(xiàn)的問題
餓了么技術專家總結之——double與BigDecimal使用姿勢
double計算會有精度問題
bigdecimal設置精度(除不盡)
BigDecimal使用詳解
是一個對象药版;可以傳入字符串進行構造辑舷,就算是double類型也先轉成字符串,這樣可以避免缺失精度
不推薦將浮點數(shù)作為形參傳入構造函數(shù)
包裝類型和基本數(shù)據(jù)類型
- DTO最好是包裝類型槽片,防止數(shù)據(jù)庫返回null的時候直接用其做計算出現(xiàn)NPE錯誤何缓;
- 并且基礎數(shù)據(jù)類型會設置默認值,不會正確的表示null
- RPC方法返回數(shù)據(jù)和參數(shù)必須用包裝類型
- 局部變量用基本數(shù)據(jù)類型
- 對于所有相同類型的包裝類進行比較的時候还栓,都是用equal來進行操作
- Object 的 equals 方法容易拋空指針異常碌廓,所以變量要放在前面
基本包裝類型都可以自動裝箱拆箱
Integer n = 100; // 編譯器自動使用Integer.valueOf(int)
int x = n; // 編譯器自動使用Integer.intValue()
包裝類型提供了很多靜態(tài)方法:
例如可以將字符串轉為int
int x1 = Integer.parseInt("100"); // 100
int x2 = Integer.parseInt("100", 16);
以及靜態(tài)變量
// boolean只有兩個值true/false,其包裝類型只需要引用Boolean提供的靜態(tài)字段:
Boolean t = Boolean.TRUE;
Boolean f = Boolean.FALSE;
// int可表示的最大/最小值:
int max = Integer.MAX_VALUE; // 2147483647
int min = Integer.MIN_VALUE; // -2147483648
// long類型占用的bit和byte數(shù)量:
int sizeOfLong = Long.SIZE; // 64 (bits)
int bytesOfLong = Long.BYTES; // 8 (bytes)