目錄
- 資料型別
- 運算子
- 寫在最后的話
資料型別
| 基本資料型別 | 表示符號 | 所占大小(byte) | 包裝類 |
|---|---|---|---|
| 位元組型 | byte | 1 | Byte |
| 字符型 | char | 2 | Character |
| 短整型 | short | 2 | Short |
| 整型 | int | 4 | Integer |
| 長整型 | long | 8 | Long |
| 單精度浮點型 | float | 4 | Float |
| 雙精度浮點型 | double | 8 | Double |
| 布爾型別 | boolean | 未規定具體大小 | Boolean |
注意:1.浮點型數字是不穩定的或者說可能是不準確的,并且位數越長越有可能不準確看下圖,1.1*1.1的輸出結果的最后一位居然不為零,所以小伙伴可以理解浮點數不準確這個概念了嗎?

2.布爾變數和其他變數是完全不同的變數,沒有一點關系!就算是強制型別轉換也不能讓他們變成同一型別,看下圖,布爾型別的變數只有true和false兩種情況

3.Java中的資料型別的大小是標準規定死的,和平臺無關,不管是32位平臺還是64位平臺,甚至是16位平臺Java資料型別的大小都是一樣的,而且Java是運行在JVM上的,也就是虛擬機上的程式,所以Java在任一作業系統上撰寫的程式可以在任意作業系統上,如Windows上撰寫的程式可以在Linux和蘋果等等作業系統上運行都是沒有問題的,這也是Java的一大優點,
4.boolean變數的大小Java標準并未嚴格規定所以其大小和其編譯器環境有關,但是多為1bit和1byte
5.Java中直接書寫的小數默認為double型別,而且Java是強型別的語言,也就是說對資料的型別非常的敏感,不相同的資料型別的進行賦值需要進行強制型別轉換(布爾型別除外,見上文),如果沒有強制型別轉換就會報錯,看下圖

當我們加上f表示單精度浮點型后代碼就沒有報錯了,強制型別轉換當然也是可以的,只是這樣寫更簡單

6.在Java中不僅不同型別的資料混合運算時會發現隱式提升為占空間較大的型別如int和long混合運算最后的結果為long型別,如果存在浮點數那么存在什么型別的浮點型整型就會自動轉換為什么型別的浮點型,并且所有大小小于int型別的資料型別都會在運算時發現隱式型別提升變為int型別,看下圖,所以如果我們要讓代碼正常運行就需要進行強制型別轉換,其他提升情況同理


運算子
| 算數運算子 | +、–、*、/、% |
|---|---|
| 關系運算子 | >、<、==、!=、>=、<=、 |
| 邏輯運算子 | &&、||、!、&、| |
| 位運算子 | ~、&、^、| |
| 移位運算子 | >>、<<、>>> |
| 條件運算子 | 布爾運算式?運算式1:運算式2 |
注意:1.可以看到在邏輯運算子和位運算子中都有&和丨當這兩個運算子兩邊為布爾運算式時則和是邏輯運算子,當為兩個數的時候為位運算子,知道這兩個運算子可以做邏輯運算式就行,不常用,因為他們并不能進行短路求值,所以這兩個運算子只常用于位運算

2.Java中可以對浮點數進行求余

3.邏輯運算子&&當兩邊的布爾運算式全為true時整個運算式為true其余全為false,||兩邊運算式全為false時整個運算式的值為false其余全為true,
4.位運算子的操作物件是二進制的數,&當兩個運算元相同權重的二進制位同為1是值為1,|則全為0才為0,^則是兩個數相同權重的二進制位上的數不同是為1,相同時為0,~則是將一個數的二進制中的0變為1,1變為0看下圖,以byte為例

如果對最后面兩個取反之后的操作不理解的可以參閱博主的這篇博客戳我轉到資料的存盤形式或者自行百度了解一下即可,
5.移位運算子可以簡單的理解為n<<1(n左移1位等于n乘二)和n>>1(n右移一位等于n除二),最重要的是>>>無符號右移最高位補0,而不是補符號位,就有可能會發生負數變成正數的情況,看下圖,可以看到-10變成了一個非常大的正數,這里涉及的東西一下子解釋不清,博主就不贅述了,小伙伴們可以參閱上面資料的存盤形式,或許就能理解了,

6.條件運算子唯一需要注意的點就是?之前必須為布爾運算式,且運算式為true則執行運算式1,為false則執行運算式2.
寫在最后的話
以上就是博主這段時間Java學習的內容了,C語言的話也還會更新一些內容,小伙伴們期待一下吧,由于博主水平有限,文中難免有說錯或表達不清的地方,若個小伙伴們發現了,歡迎留言或私信博主指出,謝謝,最后本篇博客就到此結束了,希望對小伙伴們能有所幫助,咱們下篇博客見,
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/272538.html
標籤:其他
上一篇:C語言中scanf和printf、fscanf和fprintf、sscanf和sprintf這三對函式的區別
下一篇:C語言指標全歸納-進階版
