2010年6月19日 星期六

Java 資料型別與運算式 #1


※ 基本資料型態
Java 提供了八種不同的基本資料型態,每個型態所代表的資料長度與意義皆有些微的差異。當我們在程式中宣告一個變數時,可依需求與用途宣告成以下八種型態的一種,一但在程式中宣告一個變數後,若一開始沒明確的給定其內容,Java 便會依不同的資料型態給於一個預設的初始值。詳細資料型態的定義如下表所示:


型態類別

型態名稱

長度(位元bit

起始預設值

布林型態

boolean

8bit

flase

整數型態

byte

8bit

0

字元型態

char

16bit

‘\u0000

整數型態

short

16bit

0

整數型態

int

32bit

0

浮點數型態

float

32bit

0.0f

整數型態

long

64bit

0L

浮點數型態

double

64bit

0.0d



由此表可以得知Java 提供了四種整數型態、二種浮點數型態、一種字元型態與一種布林型態,我們可以在類別或方法中將變數宣告成上述的八種型態的某一種,如底下範例所示。


public class BaseType_1 {

public static void main(String[] args) {

boolean booleVal; //booleanVal變數,宣告成boolean型態

byte byteVal; //byteVal變數,宣告成byte型態

char charVal; //charVal變數,宣告成char型態

short shortVal; //shortVal變數,宣告成short型態

int intVal; //intVal變數,宣告成int型態

float floatVal; //floatVal變數,宣告成float型態

long longVal; //longVal變數,宣告成long型態

double doubleVal; //doubleVal變數,宣告成double型態

}

}



以上範例宣告了八種不同型態的變數,由於並無指定初始值內容,照理說每個變數將會使用預設初始值,但需注意的是,這些變數是宣告於方法區塊之中,因此Java 並不會自動的給于預設初始值,唯有宣告於類別區塊之中的變數才會給于預設的初始值。針對八種基本的資料型態詳細的使用方式介紹如下:


● boolean(布林型態)
布林型態只記載了true 還有false 兩種值,其長度只有1bit,與C/C++較為不同的是布林型態並不能利用數字0 或1 來代表,同時也無法轉換成其它資料型態,或由其它資料型態轉換成boolean。

boolean bo1=true; //宣告bo1為true

boolean bo2=false; //宣告bo2false



● byte(位元組型態)
byte 的長度為8bit,在java 語言中的整數型態(byte、short、int、logn)都能表示正負號,也就是Java 語言並沒有C/C++中所使用的unsigned 關鍵字。另外Java 的整數型態也沒有overflow 或是underflow 的錯誤,若發生overflow 情況時,Java VM 會將數字相加後轉折。
如下範例程式,其輸出結果為-127。

public class ByteTest {

public static void main(String[] args) {

byte a=127; //byte 的範圍為 =-128~0~127

byte c=(byte)(a+2);//超過127後開始發生轉折,因此c=-127

System.out.println(""+c);//輸出127

}

}



● float/double (浮點數型態)
在Java 語言中float 表示單精度的浮點數值(32bit),double 則代表倍精度浮點數值(64bit),另外,在整數運算時若發生除以零狀況,java VM 會丟出ArithmeticException 的例外, 但是在浮點數運算時則會發生, 正無限(POSITIVE_INFINITY) 、負無限大(NEGATIVE_INFINITY)、不是數字(NaN , not-a-number)。若要判斷是否輸出為不是數字,則需要用特別的處理函式Float.isNaN()及Double.isNaN()來判斷。


--未完 待續


沒有留言:

張貼留言