Java語言基礎-數據類型
數據類型的作用是什麼?
- 程序當中有很多數據,每一個數據都有相關類型的,不同的數據類型的數據佔用空間大小不同。
- 數據類型的作用是指導jvm在運行程序的時候給該數據分配多大的內存空間。
Java中的數據類型包括兩種
- 基本數據類型
- 引用數據類型:類,接口,數組等等
關於基本數據類型
基本數據類型包括四大類八小種:
-
整數型:byte,short,int,long
-
浮點型:float,double
-
布爾型:boolean
-
字符型:char
字符串“abc”不屬於基本數據類型,屬於引用數據類型,字符屬於基本數據類型
八種基本數據類型各自佔用空間大小
基本數據類型 | 佔用空間大小【單位:字節】 |
---|---|
byte | 1 |
short | 2 |
int | 4 |
long | 8 |
float | 4 |
double | 8 |
boolean | 1 |
char | 2 |
計算機在任何情況下都只能識別二進制
現代的計算機底層採用交流電的方式,接通和斷開就兩種狀態,計算機只識別1或0,其他不認識。
什麼是二進制?
數據的一種表示形式。十進制表示滿十進一原則,二進制表示滿二進一原則
例如:
- 十進制: 0 1 2 3 4 5 6 7 8 9 10 11 12 13…
- 二進制:0 1 10 11 100 101 110 111 1000 1001…
字節(byte)
- 1 Byte = 8 bit【一個字節 = 8個比特位】一個比特位表示一個二進制位:1/0
- 1 KB = 1024 Byte
- 1 MB = 1024 KB
- 1 GB = 1024 MB
- 1 TB = 1024 GB
整數型當中的byte類型,佔用1個字節,所以byte類型的數據佔用8個比特位。那麼byte類型的取值範圍是什麼?
- 關於Java中的數字類型,數字都是有正負之分的,所以在數字的二進制當中有一個二進制位被稱爲“符號位”。並且這個“符號位”在所有二進制位的最左邊,0表示正數,1表示負數。
- byte類型最大值:011111111【10000000(二進制)- 1】
- byte類型最大值:2的7次方 - 1,結果是:127
- byte類型最小值:-128【具體的怎麼用二進制表示,這個和原碼,反碼,補碼有關】
- byte類型取值範圍:[-128 ~ 127]
- byte類型可以表示256個不同的數字【256個不同的二進制】
二進制和十進制之間的轉換規則
- 二進制轉換成十進制:從右往左數,第幾位就是2的幾次方,遇0不計,然後相加。
- 十進制轉換爲二進制:除二求餘數,逆序輸出。
計算機只認識二進制,那麼計算機是怎麼表示現實世界當中的文字呢?
- 八種基本數據類型當中,byte,short,int,long,float,double,boolean這七種數據類型計算機表示的時候比較容易,因爲底層都是數字,十進制的數字和二進制之間存在一種固定的轉換規則。
- 但是八種基本數據類型當中char類型表示的是現實世界中的文字,文字和計算機二進制之間”默認“情況下是不存在任何轉換關係的。
- 爲了讓計算機可以表示現實世界當中的文字,我們需要進行人爲的干涉,需要人負責提前制定好“文字”和“二進制”之間的對照關係。這種對照轉換關係被稱爲字符編碼。
- 計算機最初只支持英文,最先出現的字符編碼是ASCII碼。
例如:
‘a’ --> 97 【01100001】
‘A’ --> 65
‘0’ -->48
‘a’ --> (按照ASCII解碼) --> 01100001
01100001 --> (按照ASCII編碼) --> ‘a’
當編碼和解碼的時候採用的不是同一套字典/對照表,會出現亂碼,同一套則不會。
八種基本數據類型的取值範圍
類型 | 默認值 | 取值範圍 |
---|---|---|
byte | 0 | [-128 ~ 127]* |
short | 0 | [-32768 ~ 32767] |
int | 0 | [-2147483648 ~ 2147483647] |
long | 0 | |
float | 0.0 | |
double | 0.0 | |
boolean | false | [true,false]* |
char | \u0000 | [0 ~ 65535]* |
注意:
- short和char所表示的種類總數是一樣的,只不過char可以表示更大的正整數。因爲char沒有負數。
- 成員變量沒有手動賦值,系統會默認賦值,局部變量沒有賦值會報錯。