學Java也有些年頭了,但無時無刻不深感Java基礎知識、Java的OO以及Java的API也就是所謂的Core Java之重要性,從來不敢放鬆對它們的反覆學習和提煉。並且事實證明在對它們的慢慢積累和深透的學習中悟出更多的編程之道,編程能力也在一步步見長。即使在轉而學其它語言的時候應用相應套路也會事半功倍(不過抓住不同語言之區別也至關重要,要不會走很多彎路)。
最近決定重讀Core Java,並希望能找到以前遺漏的部分,並梳理出個更清晰的頭緒。做到先把書由薄讀厚,然後把書由厚讀薄!(再說電腦的書本來就沒有薄的,汗)不打算大篇幅的把內容都貼上來,只是想藉助blog記錄些需要時刻注意的重點供自己與大家分享。
言歸正傳,拋個磚引個玉,先來一篇Java基礎類型,可能你覺得這是Java裡最簡單的概念,其實裡面的東西未必每個人都清楚,並能運用的很好。
Java整型
| int |
4位元組 |
-2147483648 ~ 2147483647 (正好超過20億) |
| short |
2位元組 |
-32768 ~ 32767 |
| long |
8位元組 |
-9223372036854775808 ~ 9223372036854774807 |
| byte |
1位元組 |
-128 ~ 127 |
浮點類型
| float |
4位元組 |
大約±3.40282347E+38F (有效位元為6-7位) |
| double |
8位元組 |
大約±1.79769313486231570E+308 (有效位元為15位) |
一些需要注意:
1if(x
== Double.NaN)
// is never true
1if(Double.isNaN(x))
// check whether is "not a number"
浮點數值不適合用于禁止出現舍入誤差的金融計算中。例如System.out.println( 2.0 - 1.1);將列印0.899999999999999,而不是0.9。因為浮點數值採用二進位系統資料表示,而二進位無法精確表示分數1/10,就像十進位無法精確表示1/3一樣。如果需要在數值計算中不含有舍入誤差,就應該使用BigDecimal類。
char類型
在Java中,char類型用UTF-16編碼描述一個代碼單元。強烈建議不要在程式中使用char。
boolean類型
在C或C++中數值或指標可以代替boolean的值,0相當於flase,非0相當於true,而在Java中則不行,並且在編譯時間就會報錯。