標籤:
伺服器端的編程可以參考另一本書《企業Java編程》(Thinking in Enterprise Java)。
1.基本類型
基本型別 |
大小 |
最小值 |
最大值 |
預設值 |
boolean |
----- |
----- |
------ |
false |
char |
16-bit |
Unicode 0 |
Unicode 2^16-1 |
\u0000(null) |
byte |
8-bit |
-128 |
+127 |
0 |
short |
16-bit |
-2^15 |
+2^15-1 |
0 |
int |
32-bit |
-2^31 |
+2^31-1 |
0 |
long |
64-bit |
-2^63 |
+2^63-1 |
0L |
float |
32-bit |
IEEE754 |
IEEE754 |
0.0f |
double |
64-bit |
IEEE754 |
IEEE754 |
0.0d |
數實值型別的都有正負之分。
boolean類型所佔的空間沒有明確的制定。
1.java的數值是有符號的,不要忘了還要考慮負數
判斷一個數是不是奇數,
if( i % 2 == 1){
...
}
如果i是負數,i%2 的結果將是-1.應該是寫成:
if( i%2 ! =0){
...
}
2.如果使用小數,預設的將是double類型,要使用float類型,應該顯示的指明小數的類型
float f = 1.24f;
3.小數都可能會有精度的丟失,使用float和double做小數計算時可能都會碰到這樣的問題,如果就是需要精確地計算,可以考慮使用BigDicemal,整型對應的是BigInteger。這裡要用的是new BigDicemal(String)而不能用new BigDicemal(double),否則在構造BigDicemal之前就已經丟失了精度,這是需要注意的。
System.out.println(2.0f - 1.1f);
System.out.println(2.0d - 1.1d);
2.封裝類型
封裝類型包括:Integer 、Long、Short、Byte、Character、Double、Float、Boolean、BigInteger、BigDecmail
其中BigInteger、BigDecimal沒有相對應的基本類型,主要應用於高精度的運算,BigInteger 支援任意精度的整數,BigDecimal支援任意精度帶小數點的運算。
使用BigInteger、BigDecimal不會產生精度丟失的問題,而是用long,float時都需要考慮精度丟失的問題。可能不是很大的數值的計算都會有精度丟失的問題。
為什麼有了基本類型還需要封裝類型?很多時候方法的參數是一個對象而非基本類型,例如ArrayList的add方法的參數就是對象。
3.緩衝
緩衝是一種典型的空間交換時間的方案,資料庫頻繁讀取時需要考慮緩衝,最基本的思路就是Map。
使用緩衝需要考慮的問題:
1.資料需要緩衝多久
2.快取資料很真實資料的一致性,當真實資料更新或刪除時
3.緩衝的並發控制,增刪改查在多線程的環境下需要考慮
java.lang包預設會匯入到每個Java檔案中,所以lang包下的類預設都可以直接使用。
rt.jar包也會自動載入,jre/lib下的jar包也會自動載入。
《Thinking in Java》學習筆記(一)