Java語言有著與C語言類似的教強的數據處理能力,即它的數據類型和不同類型上的運算定義得較為齊全,Java內部的數據類型可以分為四大類:整數、浮點數、字符、布爾型。其中整數和浮點數兩大類根據長度和精度的不同,還可以進一步劃分為byte、int、short、long、float、和double幾個具體的類型。具體可參看下表:
Java的基本數據類型
數據類型 關鍵字 占用比特數 取值范圍 缺省數值 布爾型 boolean 8 true,false false 字符型 byte 8 -128--127 0 整數型 char 16 0--65535 'u0' 短整型 short 16 -32768--32767 0 整型 int 32 -2147483648--2147483647 0 長整型 long 64 -9.22E18--9.22E18 0 浮點型 float 32 1.4013E-45--3.4028E+38 0.0F 雙精度型 double 64 2.22551E-208--1.7977E+308 0.0D1.布爾型
布爾型只能有true和false兩種取值,分別代表布爾邏輯中的“真”和“假”。
2.整型與字符型
整型就是數學中的整數了,字符型就是字符,'0'和'a',等都是字符。要注意兩點:
1)在使用整數型變量的時候要注意其最大和最小取值范圍,如果實際取值超過范圍,則會出現溢出錯誤。尤其在做階乘的時候要注意。如果機器不是很好,還要節約機器資源,只需要int型的地方,就不要用long型。
2)字符型變量的取值可以使用字符常量(用單引號闊起的單個字符),也可以用整數常數。例如,下面的兩個語句的作用完全相同:
char char_A='A';
char char_A=65;
這就是計算機的一個機制問題了,它把字符做為整數型保存的。因為這樣更方便。
3.浮點型
float和double都是浮點數據類型,程序中使用它們來代表小數。由於計算機采用浮點來計算小數,因此就叫浮點數據類型。也因為這個原因,計算機算出來的小數點後的n位(視具體的情況而定) ,與實際的數值總是會有一定的誤差。它只會去盡量地接近它,所以位數越多約精確。float是32位,應該夠用了,如果不夠,那就只能用double了,但也要節約資源。
程序中的科學記數法是表示。例如 :3.14E3表示3,140,而3.14E-2表示0.0314。如果常數後面有一個'd'或者'D',那麼就表示是double型的。付址的時候,應該這樣寫:
float f1=3.14f;
double f2=3.14d;
4.類型轉換
Java 程序中,常數或變量從一種數據類型轉換到另外一種數據類型,稱為類型轉換。它有兩種,一種是從低位轉為高位的稱為缺省類型轉換。例如從char型轉換到int型,從int型轉換到long型,都是機器可以直接執行的。例如:
int i=5;
long j=i;
如果把高位轉化為低位,就會出現問題了。這個道理都明白,怎麼辦?有需要的時候,例如要把float轉化int型,那就只有通過強制類型轉化了。例如:
float f=3.14f;
int i=(int)f;
long j=5;
int i2=(int)j;
當然要注意的是高位轉化為地位的時候,數據的范圍要在地位范圍內,例如不能將一個很大的整數30000轉化char型,因為它超過了范圍。結果會出現錯誤!
好了,看一個例子吧:
import java.awt .* ;
import java.applet.Applet ;
public class Leixing extends Applet
{
boolean b1=true;
int x=10;
char c=65;
float f=3.14f;
public void paint(Graphics g)
{
g.drawString ("布爾型:"+b1,2,20);
g.drawString ("整型:"+x,2,40);
g.drawString ("字符型"+c,2,60);
g.drawString ("浮點數據類型:"+f,2,80);
}
}