名稱 | 字節 | 取值範圍 | 默認值 |
byte | 1個字節 | -128 ~127 | 0 |
short | 2個字節 | -32,768 ~ 32,767 | 0 |
int | 4個字節 | -231 ~ 231-1 SE8以及以後,能夠用int來表示無符號32位數 0~232-1 |
0 |
long | 8個字節 | -263 ~ 263-1
SE8以及以後,能夠用long來表示無符號64位數
0~264-1
|
0L |
float | 4個字節 | 單精度 32-bit IEEE 754 浮點數 | 0.0f |
double | 8個字節 | 雙精度 64-bit IEEE 754 浮點數 | 0.0d |
char | 2個字節 | 16位 Unicode 字符 '\u0000' (or 0) ~ '\uffff' (65,535 包括) |
'\u0000' |
boolean | 字節大小並未規定,由實現決定 虛擬機內部沒有支持boolean的指令 boolean編譯以後使用虛擬機中的int代替 oracle公司的虛擬機實現中boolean數組編碼爲byte數組 那就是一個boolean 一個字節 8位 |
true 或者 false | false |
另外爲了方便還提供了 java.lang.String,他是不可變的,也不屬於基本數據類型,默認值爲 null |
爲了支持大數據的計算,還提供了BigInteger 和 BigDecimal |
因此說經常使用到的,基礎性的數據類型有: |
8種基本數據類型 byte short int long float double char boolean |
8種基本數據類型對應的包裝類 Byte Short Integer Long Float Double Character Boolean |
java.lang.String |
java.math.BigInteger 和 java.math.BigDecimal |
Number是對"數值"這兩個字的概念在Java中的抽象 Byte、Short、Integer、Long、Double、Float、BigDecimal、BigInteger 類的超類 |
規定了做爲數值的協議 就是提供xxxValue方法以得到各類不一樣的數據類型的值 在類型轉換之間可能會損失精度 |
![]() |
除了byte和short 上圖方法列表中的其餘的方法 是必須提供的 ![]() |
計算機中整數是以二進制補碼形式存放的 Integer和Long提供了bitCount 方法 用於獲取二進制補碼錶示形式的 1 位的數量 |
數據爲二進制表示形式,翻轉就是徹底的顛倒過來 ,形象點說就是旋轉180度
最後一位變成了最早一位
Integer和Long提供了reverse 方法進行翻轉
|
按照字節翻轉,reverse是按照位翻轉,最後一位變成最早一位
reverseBytes 是按照字節翻轉,也就是最後一個字節變成了最早的一個字節
|
循環移位就是循環移動位置 位置就這麼多,循環移動就是從一頭到另外一頭 移位負距離等同於在另外一頭移位 ![]() |
rotateLeft 循環左移 對應上面一個圖,從最左邊(最高位)移出,從右邊最低位在進入 |
rotateRight
循環右移 對應下面一個圖,從最右邊(最低位)移出,從左邊最高位在進入
|
Integer和Long提供了循環右移和循環左移 |
divideUnsigned(dividend, divisor) 求商,也就是取整 第一個參數除以第二個參數的商 remainderUnsigned(dividend,divisor)求餘 第一個參數 除以 第二個參數的餘數 |
Integer和Long 有提供 |
他的本意是肯定具備指定名稱的系統屬性的整數值
而不是把一個字符串轉換爲包裝類,因此必定不要想固然的把它當作解析
好比 getLong
他首先會System.getProperty
若是你傳遞的字符串根本就不是一個系統屬性的名稱,則根本就不會進行下去
並且,第二個值也不是基數,也就是咱們說的進制,他是若是前面爲null的話,給出的默認值
|
![]() |
測試一下![]() |
接受經過如下語法給出的十進制、十六進制和八進制數字
Sign是可選的
|
Sign DecimalNumeral
Sign 0x HexDigits
Sign 0X HexDigits
Sign # HexDigits
Sign 0 OctalDigits
Sign:
-
+
|
decode 用於將字符串解碼爲包裝類對象 不依賴於對象,因此是靜態方法 valueOf也能夠將字符串或者基本類型包裝爲對象 |
decode 不須要指定進制,能夠識別前綴符號 0x 0X # 0
valueOf則不能夠識別前綴,要麼指定基數,要麼就是默認十進制,並且他的參數只能是指定基礎的有效字符,不能有前綴符號
|