---
# System prepended metadata

title: JAVA筆記

---

# JAVA筆記
**Double Float精度問題**
因為用Double、Float型態去做加減，小數點後面數字容易跑掉，嚴謹的話通常會用BigDecimal去做加減，會以字串與Int進行
**Map取String**
會使用MapUtils.getString(Map,Key)
**Int與Integer**
Int為JAVA預設型態，Integer為Class可能會出現NULL值，如果NULL值與變數進行運算會造成nullPointException
**BigDecimal運用**
新增變數需要宣告一個新的BigDecimal Class，BigDecimal Class有提供Zero(),One(),Ten()等靜態方法，如果用這些進行加減可以降低記憶體消耗
```
BigDecimal bigdecimal =new BigDecimal("變數")
bigdecimal.Zero()
bigdecimal.One()
bigdecimal.Ten()
```
**String與StringBuilder**
如果是宣告完不會做增減的字串建議使用String，如果建立完需要進行增減的字串會建議使用StringBuilder Class，因為以下兩個程式比較String宣告A時會占用A這個記憶體空間，str+=B時把B加入String這個字串會讓B佔記憶體空間後才寫入，另一個使用StringBulder的程式把B加入str不會讓B在佔一個記憶體空間

String
```
String str="A"
str+="B" //str=AB
```
StringBuilder
```
StringBuilder str = new StringBuilder("A")
str.append("B")
```