它們分別是,byte,short,int,long,這四種類型所佔用的空間是不一樣的java
byte是佔用1個字節,它的取值範圍是 -128~127,bash
short是佔用2個字節,他的取值範圍是-32768~32767,spa
int是佔用4個字節,他的取值範圍是-2147483648~2147483647,3d
long是佔用8個字節,他的取值範圍是-9223372036854775808-9223372036854775807code
咱們前兩章說過內存就像房間,數據類型就像不一樣的房間咱們能夠將這四種類型當作四種不一樣的房間,佔用字節越多的房間就能住下越多的人cdn
例如 byte型變量blog
byte a = 12;
byte c = 12 , b=-13;複製代碼
short型變量內存
short a = 156;
short c = 156,b = -213;複製代碼
int型變量編譯器
int a = 156;
int c = 156,b = -123;複製代碼
long型變量,這裏須要注意聲明long類型變量須要在後面加上大寫或者小寫的 L 不然可能會形成精度丟失 it
long a = 123L;
long c = 123L,b = 25L;複製代碼
由於在JAVA中整數是有默認類型的,這個默認類型是 int 型變量
好比這裏有一個計算公式 123+456計算結果的值是int類型變量,
常見的錯誤,若是聲明long類型並無給它加上L後綴是不會報錯的,例如
long a=123456789 * 987654321;複製代碼
這時就會變成JAVA中默認的數據類型 int 型 爲何會這樣我將會在後面爲小夥伴們解釋 然而這種聲明方法是有問題的
這裏咱們能夠看出,計算的結果是不正確的,由於他並無加L 因此默認的值是int值,可是這個計算結果已經超出了int的取值範圍,就會形成精度丟失,
加上L後綴後
這裏咱們能夠看出所計算的值是正確的,結果就是若是不給long類型的變量加上L後綴就會可能形成精度丟失,因此long類型賦值必須加上L後綴
10進制,也是咱們生活中經常使用的進制,也是java程序中經常使用的 咱們常見的例子都是使用10進制進行計算的,例如
int a = 33;複製代碼
8進制,以0開頭,在java編譯器中將會解析成8進制數字,例如
int b = 033;複製代碼
16進制,以0x或者0X開頭,在java編譯器中將會解析成16進制數字,例如
int c = 0x33;複製代碼
下面就是三種進制賦值的效果
第一個是10進制33結果是33,第二個是8進制033結果是27,第三個是16進制0x33結果是51,這個就是不一樣進制給不一樣整型賦值的方法