Java是一種強類(lèi)型語(yǔ)言,每個(gè)變量都必須聲明其數據類(lèi)型。 Java的數據類(lèi)型可分為兩大類(lèi):基本數據類(lèi)型(primitive data type)和引用數據類(lèi)型(reference data type)。
Java中定義了3類(lèi)8種基本數據類(lèi)型
數值型- byte、 short、int、 long、float、 double
字符型- char
布爾型-boolean
整型用于表示沒(méi)有小數部分的數值,它允許是負數。整型的范圍與運行Java代碼的機器無(wú)關(guān),這正是Java程序具有很強移植能力的原因之一。與此相反,C和C++程序需要針對不同的處理器選擇最有效的整型。
Java 語(yǔ)言整型常量的四種表示形式
十進(jìn)制整數,如:99, -500, 0
八進(jìn)制整數,要求以 0 開(kāi)頭,如:015
十六進(jìn)制數,要求 0x 或 0X 開(kāi)頭,如:0x15
二進(jìn)制數,要求0b或0B開(kāi)頭,如:0b01110011

long b = 55555555555L;
帶小數的數據在Java中稱(chēng)為浮點(diǎn)型。
浮點(diǎn)型可分為float類(lèi)型和double類(lèi)型。

float d1 = 423432423f;
float d2 = d1+1;
if(d1==d2){
System.out.println("d1==d2");//輸出結果為d1==d2
}else{
System.out.println("d1!=d2");
}

float f = 0.1f;
double d = 1.0/10;
System.out.println(f==d);//結果為false
點(diǎn)數能夠精確表示的數是有限的,因而也是離散的。 浮點(diǎn)數一般都存在舍入誤差,很多數字無(wú)法精確表示(例如0.1),其結果只能是接近, 但不等于。二進(jìn)制浮點(diǎn)數不能精確的表示0.1、0.01、0.001這樣10的負次冪。并不是所有的小數都能可以精確的用二進(jìn)制浮點(diǎn)數表示
java.math包下面的兩個(gè)有用的類(lèi):
BigInteger和BigDecimal,
這兩個(gè)類(lèi)可以處理任意長(cháng)度的數值。
BigInteger實(shí)現了任意精度的整數運算。
BigDecimal實(shí)現了任意精度的浮點(diǎn)運算
建議:
1.不要使用浮點(diǎn)數進(jìn)行比較!
浮點(diǎn)數使用總結
默認是double類(lèi)型
浮點(diǎn)數存在舍入誤差,數字不能精確表示。
如果需要進(jìn)行不產(chǎn)生舍入誤差的精確數字計算,
需要使用BigDecimal類(lèi)。
避免比較中使用浮點(diǎn)數,需要比較請使用BigDecimal類(lèi)
舉例:
BigDecimal bd1 = BigDecimal.valueOf(0.1);
BigDecimal bd2 = BigDecimal.valueOf(1.0/10);
System.out.println(bd1.equals(bd2));//返回True
字符型變量/常量
字符型在內存中占2個(gè)字節,在Java中使用單引號來(lái)表示字符常量。
例如’A’是一個(gè)字符,它與”A”是不同的,”A”表示含有一個(gè)字符的字符串。
char 類(lèi)型用來(lái)表示在Unicode編碼表中的字符。Unicode編碼被設計用來(lái)處理各種語(yǔ)言的文字,它占2個(gè)字節,可允許有65536個(gè)字符。
java 語(yǔ)言中還允許使用轉義字符 '\’ 來(lái)將其后的字符轉變?yōu)槠渌暮x。
常用的轉義字符及其含義和Unicode值

char c2 = '\n'; //代表?yè)Q行符
以后碰到的String類(lèi),其實(shí)是字符序列(char sequence)。
boolean類(lèi)型有兩個(gè)常量值,true和false,
在內存中占一位(不是一個(gè)字節),
不可以使用 0 或非 0 的整數替代 true 和 false ,這點(diǎn)和C語(yǔ)言不同。
boolean 類(lèi)型用來(lái)判斷邏輯條件,一般用于程序流程控制 。
聯(lián)系客服