認識資料型態

基本資料型態

Java 程式設計是由物件所產生,物件是由屬性產生。相對於大自然的現象由「木、火、土、金、水」這五種氣的變化所總括,描繪了事物的結構關係和運動形式。自西周時期已經有了一種五材說。從《鄭語》「以土與金、木、水、火雜,以成萬物」和《左傳》「天生五材,民並用之,廢一不可」到《洪範》「五行:一曰水,二曰火,三曰木,四曰金,五曰土。的記載,開始把五行屬性抽象出來,推演到其他事物,構成一個固定的組合形式。資料型態 (primitive data type)可稱之為JAVA程式的五行,如下表


型態關鍵字位元數方法類別範圍
整數byte8Byte-27 ~ 27
整數short16Short215 ~ 215
整數int32Integer231 ~ 231
整數long64Long264 ~ 264
浮點數float32Float232 ~ 232
浮點數double64Double264 ~ 264
布林值boolean1--
字元char16--



依資料所佔位元數的不同,整數有四種,浮點數有兩種,另外布林值與字元各一種。
資料型態所佔據的位元數越多,可表示的數字範圍也越大。
浮點數的範圍等同於整數的數字長度,差別在小數點要點在哪裡。
若將boolean和char量化很奇怪,不會有人問它們的範圍值的


byte

資料型態用於儲存位元資料,例如影像、聲音等數位化串流資訊。除了I/O應用,不會使用byte。
若一定要的話,byte資料型態也可以用於儲存整數數值。但他只能存-128 ~ 127..

public class CH001 {
  
 public static void main(String agrs[]){

    System.out.println("位元 byte 的最大值:"+Byte.MAX_VALUE);
    System.out.println("位元 byte 的最小值:"+Byte.MIN_VALUE);

  }

}
請把上面的程式碼複制到主程式的大括號中間,按下選單上的綠色氣球。


整數 short / int / long

只儲存整數數值,可細分為
  • 短整數 short
  • 整數 int
  • 長整數 long
不同型態的整數所佔的記憶體不同,佔用愈多記憶體表示可儲存數值範圍也就較大
整數的應工具和方法與型態名稱相同,僅開頭第1個英文字母大寫
public class CH001 {
  
 public static void main(String agrs[]){

    System.out.println("位元 byte 的最大值:"+Byte.MAX_VALUE);
    System.out.println("位元 byte 的最小值:"+Byte.MIN_VALUE);

    System.out.println("整數 short 的範圍:"+Short.MIN_VALUE+"~"+Short.MAX_VALUE);
    System.out.println("整數 int   的範圍:"+Integer.MIN_VALUE+"~"+Integer.MAX_VALUE);  
    System.out.println("整數 long  的範圍:"+Long.MIN_VALUE+"~"+Long.MAX_VALUE);

    

  }

}


浮點數 float / double

主要用來儲存小數數值,也可以儲存整數,可細分為
  • 單精度浮點數 float
  • 倍精度浮點數 double
倍精度浮點數所使用的記憶體空間比單精度浮點數來得多,可表示的數值範圍與精確度也比較大。事實上浮點數與整數所能表示的數字長度是一樣的,當中多個小數點來表示精度。為了區別浮點數的精確度,在數字結尾必須以d或f來明確指定是64位長度的倍精度d,或是32位長度的一般浮點數f。
浮點數的應工具和方法與型態名稱相同,僅開頭第1個英文字母大寫
public class CH001 {
  
 public static void main(String agrs[]){

    System.out.println("位元 byte 的最大值:"+Byte.MAX_VALUE);
    System.out.println("位元 byte 的最小值:"+Byte.MIN_VALUE);

    System.out.println("整數 short 的範圍:"+Short.MIN_VALUE+"~"+Short.MAX_VALUE);
    System.out.println("整數 int   的範圍:"+Integer.MIN_VALUE+"~"+Integer.MAX_VALUE);  
    System.out.println("整數 long  的範圍:"+Long.MIN_VALUE+"~"+Long.MAX_VALUE);

    float f=1.024f;
    double d=1.024d;
    System.out.println("單精度 float 的範圍:"+Float.MIN_VALUE+"~"+Float.MAX_VALUE);
    System.out.println("倍精度 double的範圍:"+Double.MIN_VALUE+"~"+Double.MAX_VALUE);

  }

}


不同型態的數值無法進行計算,通常需要再運算前強制轉型並放棄任一方的較精確單位。
Java語言是採用十進制的。


布林 boolean

boolean 只能表示兩種資訊,1個是 true,另1個則是 false。


public class CH001 {
  
 public static void main(String agrs[]){

    System.out.println("位元 byte 的最大值:"+Byte.MAX_VALUE);
    System.out.println("位元 byte 的最小值:"+Byte.MIN_VALUE);

    System.out.println("整數 short 的範圍:"+Short.MIN_VALUE+"~"+Short.MAX_VALUE);
    System.out.println("整數 int   的範圍:"+Integer.MIN_VALUE+"~"+Integer.MAX_VALUE);  
    System.out.println("整數 long  的範圍:"+Long.MIN_VALUE+"~"+Long.MAX_VALUE);

    float f=1.024f;
    double d=1.024d;
    System.out.println("單精度 float 的範圍:"+Float.MIN_VALUE+"~"+Float.MAX_VALUE);
    System.out.println("倍精度 double的範圍:"+Double.MIN_VALUE+"~"+Double.MAX_VALUE);
    
    System.out.println(Boolean.FALSE);
    System.out.println(Boolean.TRUE);

  }

}


字元 char

字元只能用來表示單一文字,可以思考為1個英文字母或1個非英文字母的任何文字。通常英文字母可以直接用鍵盤輸入,鍵盤無法表示的文字測以Unicode輸入。
System.out.println('K');
System.out.println('\u8b9a');
CH001 請找出6種可以量化的資料型態,終端機印出它們的範圍值。
下一步 變數與修飾子

沒有留言:

張貼留言