從事Java開發也有兩三年了,大學所學的一些計算機知識早就不記得了(其實也沒怎麼學,天天LOL)後來臨近畢業之時培訓了一波,然後一直重複CRUD,最近有時間有重新讀書,惡補一些基礎,樓主始終認爲,基礎就像是武俠裏面的內功,基礎好了,學什麼都快,本博客主要講的一些基本數據類型一些細節,對自己算是一個記錄,參考書籍《Java核心技術卷Ⅰ》
---------------------------
1 瞭解過Java的都知道 Java 數據類型分爲基本數據類型和引用數據類型,本博客主要講基礎數據類型
整型 : byte short int long
浮點型 : float double
布爾型 : boolean
字符類型 : char
Java裏面默認數字是採用int類型,小數採用double類型,一個字節等於8個比特位(0,1),並且在Java中整型的取值範圍與運行的Java代碼的機器無關,這保證了可移植性,與C和C++ 不同,由於範圍無關,所有Java取值範圍必須固定,至於取值範圍爲什麼是上圖所示,可以計算的,這裏就不計算了。
-----------------------
2 數據類型之間的轉換
比如 123456789 是一個數,它所包含的位數比float類型所能表達的位數多,所以轉float時爲了得到同樣的位數大小,就會損失一定的精度
上面有提到 Java默認數字是int類型,小數是double類型
下面說幾個常見類型的轉換,並且一些細節
1
int num,num1;
num =5;
num1 = 5;
// num+= 3.14; ==> num + 3.14
double n = num + 3.14;
System.out.println(n); // 8.14
num1+= 3.14;
System.out.println(num1); //8
首先初始化num 和num1 ,這個時候會發現 num + 3.14 會符合書中說到的操作1,側必須用double來接收,不然會報編譯錯誤
但是 num1+= 3.14 爲什麼又等於8呢,其實看了源碼編譯得class文件就清楚了 ,這裏解釋一下
num + 3.14 和 num += 3.14 是兩個不同的概念,第一個 就是 一個int和一個double去加 得到的結構是個double類型 所以必須用double 來接收 ,而後者 num += 3.14, +=操作符在解析是先 num的類型 就是 num+3.14 <=> (num的類型)(num+3.14)
書中是這麼解釋的
2 一些類型轉換的 細節,參考 https://blog.csdn.net/haovip123/article/details/42987795
3 引用類型的賦值等
Long l = 1; 這句話會報編譯錯誤,因爲1默認是int類型 而左邊又是long的包裝類型,左右類型要對上,纔不會錯,則 1需要改成1L