待整理主題:Java的8種基本數據類型與對應封裝類型、拆箱、裝箱
===================================================================================================
參考文章:
char:java中稱為“字符型” 占2個字節
字符常量是用單引號括起的一個字符 且字符常量在內存中存儲的是該字符在Unicode字符集中的排序位置,即整數
eg:char x='a'
內存x中存儲的是字符a在Unicode字符集中的排序位置97 因此允許將上面的語句寫成char x=97;
由此例可以得出以下結論:
1.要觀察一個字符在Unicode字符集中的排序位置,必須使用int類型顯示轉換,例如:(int)'a'
2.同理,如果要得到一個0---65535之間的數所代表的Unicode表中相應位置上的字符也必須使用char型顯示轉換
===================================================================================================
參考文章
1)四種整數類型(byte、short、int、long):
byte:8位,用於表示最小數據單位,如文件中數據,-128~127
short:16位,很少用,-32768 ~ 32767
int:32位、最常用,-2^31-1~2^31 (21億)
long:64位、次常用
- 注意事項:
- int i=5; // 5叫直接量(或字面量),即直接寫出的常數。
- 整數字面量默認都為int類型,所以在定義的long型數據后面加L或l。
- 小於32位數的變量,都按int結果計算。
- 強轉符比數學運算符優先級高。見常量與變量中的例子。
2)兩種浮點數類型(float、double):
float:32位,后綴F或f,1位符號位,8位指數,23位有效尾數。
double:64位,最常用,后綴D或d,1位符號位,11位指數,52位有效尾數。
- 注意事項:
- 二進制浮點數:1010100010=101010001.0*2=10101000.10*2^10(2次方)=1010100.010*2^11(3次方)= . 1010100010*2^1010(10次方)
- 尾數: . 1010100010 指數:1010 基數:2
- 浮點數字面量默認都為double類型,所以在定義的float型數據后面加F或f;double類型可不寫后綴,但在小數計算中一定要寫D或X.X。
- float 的精度沒有long高,有效位數(尾數)短。
- float 的范圍大於long 指數可以很大。
- 浮點數是不精確的,不能對浮點數進行精確比較。
3)一種字符類型(char):
char:16位,是整數類型,用單引號括起來的1個字符(可以是一個中文字符),使用Unicode碼代表字符,0~2^16-1(65535)。
注意事項:
不能為0個字符。
轉義字符:\n 換行 \r 回車 \t Tab字符 \” 雙引號 \ 表示一個\
兩字符char中間用“+”連接,內部先把字符轉成int類型,再進行加法運算,char本質就是個數!二進制的,顯示的時候,經過“處理”顯示為字符。
4)一種布爾類型(boolean):true真 和false假。
5)類型轉換: char–>
自動轉換:byte–>short–>int–>long–>float–>double
強制轉換:
- 會損失精度,產生誤差,小數點以后的數字全部舍棄。
- 容易超過取值范圍。
===================================================================================================
java里不是說char類型自動向int型轉換嗎?那為什么..
解釋一:常量和變量的內存模型
解釋二:char類型加減一個值是左右偏移
char a='a';
char b=a+18; //運行時程序報錯了
===================================================================================================
short類型與int類型轉換,float類型與double類型轉換
===================================================================================================