1.
Java是一種強類型語言,每個變量都必須聲明其類型。Java的數據類型分為兩大類:基本類型(primitive type)和引用類型 (reference type)
Java中定義了3類8種基本數據類型,今天主要講講基本數據類型。如圖
整數型(byte,short,int,long)
如圖:
類型
佔用存儲空間
表數範圍
Byte
1字節 8位
-128~127
Short
2字節 16位
-215 ~ 215-1 (-32768~32767)
Int
4字節 32位
-231 ~ 231-1
(-2147483648~2147483647) 約21億
Long
8字節 64位
-263 ~ 263-1
舉例一個byte其它以此類推:
byte是一個字節保存的,有8個位,即8個0、1。
8位的第一個位是符號位,
也就是說0000 0001代表的是數字1
1000 0000代表的就是-1
所以正數最大位0111 1111,也就是數字127
負數最大為1111 1111,也就是數字-128
所以Java中的一個byte是1個字節,其範圍是-128~127
下面看看錯誤的,大家比對一下。
Java 語言整型常數的三種表示形式:
十進制整數,如:100, -500, 0。
八進制整數,要求以 0 開頭,如:011。
十六進制數,要求 0x 或 0X 開頭,如:0x15 。
如圖:
Java語言的整型常數默認為int型,聲明long型常量可以後加‘ l ’或‘ L ’ ,如:
long a = 10000000; //不出錯,在Int表示的範圍內(21億內)。
long b = 10000000000;//必須要加10000000000L,要不然就會報錯錯誤: 過大的整數: 10000000000
Java中沒有無符號類型
浮點型
類型
佔用存儲空間
表數範圍
Float
4字節
-3.403E38~3.403E38
Double
8字節
-1.798E308~1.798E308
float類型又被稱作單精度類型,尾數可以精確到7位有效數字,在很多情況下,float類型的精度很難滿足需求。
double表示這種類型的數值精度是float類型的兩倍,又被稱作雙精度,絕大部分應用程序都採用double類型。
Java 浮點類型常量有兩種表示形式
十進制數形式,例如:
3.14 314.0 0.314
科學記數法形式,如
314e2 314E2 314E-2
double f = 314e2; //314*10^2-->31400.0
double f2 = 314e-2; //314*10^(-2)-->3.14
Float類型的數值有一個後綴F/f ,沒有後綴F/f的浮點數值默認為double類型。也可以在浮點數值後添加後綴D/d, 以明確其為double類型:
浮點類型float, double的數據不適合在計算或者比較中使用,因為會丟失精度。
如果需要精確數字計算,需要使用BigDecimal類。
注意:
主要理由:由於字長有限,浮點數能夠精確表示的數是有限的,因而也是離散的。浮點數一般都存在舍入誤差,很多數字無法精確表示(例如0.1),其結果只能是接近, 但不等於。
PS:官方文檔中好像說float指數的取值範圍為-126~127,double指取的取值數範圍為-1022~1023
寫完了如果寫得有什麼問題,希望讀者能夠給小編留言並且指正,也可以掃下面二維碼關注小編的公眾號,查看小編更多初學者文章。
本公眾號以互相學習!互相幫助!不管你是即將跨入Java之門的初學者,還是自學Java的愛好者,你都可以加小編微信(dcc939705214)!小編可以為你提供建議以及Java學習資料!不論你在學習上遇到任何問題,你隨時都可以來找小編!小編會在第一時間回覆!
注:本公眾號純屬個人團隊公益公眾號!不存在任何培訓機構招生信息