Java中有8種基本數據類型:int, short, long, byte, float, double, char, boolean
在Java中,整型的范圍與運行java代碼的機器無關。在C/C++程序中,int類型占用的字節可能會因不同機器不同操作系統而不同;而在java中,各種整型的存儲需求已經被明確定義(int: 4 bytes; short: 2 bytes; long: 8 bytes; byte: 1 byte),從而實現了平臺無關性。
常用整型、浮點型常量:
l Integer.MAX_VALUE
l Ingeger.MIN_VALUE
l Double.POSITIVE_INFINITY (正無窮大)
l Double.NEGATIVE_INFINITY (負無窮大)
l Double.NaN (Not a number)
PS: 判斷一個特定值是否等于Double.NaN:
if (x == Double.NaN) //is never true
Should use:
if (Double.isNaN(x)) // check whether x is “Not a number”
char 類型用于表示Unicode編碼的字符單元。Unicode可表示為16進制值,從"u0000到"uffff。
關于Unicode: 在Unicode出現前,已經有了很多的字符編碼標準(如美國的ASCII, 西歐的ISO 8859-1, 俄羅斯的KOI-8, 中國的GB118030和BIG-5,etc),這樣造成了兩個問題:a). 對于給定的代碼值,不同的編碼方案下可能對應不同的字母; b). 采用大字符集的語言其編碼長度可能不同,e.g., 有些常用的字符采用單字節編碼,而另一些字符則需要兩個或更多字節。設計Unicode就是為了解決這些問題。但遺憾的是,經過一段時間,Unicode字符超過了65536個,現在,連16位的char類型也已經不能滿足所有Unicode字符的需求了。強烈建議不要在程序中用char類型。
當將一個字符串和一個非字符串的值進行拼接時,后者被轉換成字符串。E.g:
int age = 24;
String s = “abce” + age; //age被轉換成字符串,結果為“abcd24”。
StringBuilder builder = new StringBuilder();
builder.append(ch/str);
其前身是StringBuffer。StringBuffer效率稍低,但支持多線程。StringBuilder不支持多線程,從而效率也較高。