網頁

2013年9月8日 星期日

Ch1_6 JAVA的基本型態(整數、浮點數、字元、布林)

不同的資料有其不同意義,有些是文字符號,有些是數值,數值可以直接用於算術運算。因此需有所區別,稱之為資料型別(Data Type)。

Java語言的資料在被使用之前必須先宣告資料型別。

JAVA基本型態共分成整數(Integral)、浮點數(Float Point)、布林(Boolean)、字元(Character)共4種類型。


整數類型
  • 整數又分為4小類,byte  short  int  long  ,所以整數類型預設是int
  • 如果要指定浮點數為 long 型別,在數值後面要加上「L」或「l」,像這樣100L或100l
int可以接受合法的char。可以試著將 ' C '與 ' B ' 作相加,看答案是什麼,int 也可作中文字的相加。
1 byte = 8 bits 


整 數類型
類 型 暫 記憶體空間 範 圍
byte 1 bytes  = 8 bits -27 ~ 27-1
short 2 bytes = 16 bits -215 ~ 215-1
int 4 bytes = 32 bits -231 ~ 231-1
long 8 bytes= 64 bits -263 ~ 263-1

要取得資料範圍可以使用下列方式取得最小值和最大值。



浮點數類型
  • 浮點數也就是小數,可分為2小類,float double,所以浮點數預設是double
  • 如果要指定浮點數為 float 型別,在數值後面要加上「F」或「f」,像這樣12.5F或12.5f。

整數類型是精準數,但浮點數類型不是精準數,也就是有誤差,這是因為浮點數是會以科學記號方式儲存值。但是浮點數的儲存範圍比所有整數類型都要大,所以可以承接整數值。

浮 點數類型
類 型 暫 記憶體空間 範 圍
float 4 bytes= 32 bits -3.4*1038~ 3.4*1038
double 8 bytes= 64 bits -1.8*10308 ~ 1.8*10308

要取得資料範圍可以使用下列方式取得最小值和最大值。



布林類型
  • 布林類型只有true(成立)和false(不成立)這2種型態,不可用數值資料0與1表示,用作邏輯判斷,常常會與條件運算時搭配使用,預設是false

布 林類型
類 型 暫 記憶體空間 範 圍
boolean 1 bytes= 8 bits true 和 false



字元類型
  • 字元類型只能儲存1個字,必須以單引號(' ')括住。

每一個字元編碼都分別代表一個Unicode字元,其中前面128個為ASCII字元。(Unicode是一套可用來表示多國文字的字元編碼)
但是要注意的是String (字串)類型,是以雙引號(" ")括住,而字串屬於參照類型而非基本型態,也就是不是基本型態的都屬於參照類型。

字 元類型
類 型 暫 記憶體空間 範 圍
char 2 bytes '\u0000' ~ '\uffff'

類別變數與物件變數如宣告為基本型別,則系統會給定初始值,區域變數則不會給訂。






範例程式
  • Ch1_6_1 .java
package chapter;

public class Ch1_6_1 {
    public static void main(String[] args) {
        System.out.println("byte的資料範圍= " + Byte.MIN_VALUE + " ~ "
                + Byte.MAX_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);
    }

}

  • Ch1_6_2 .java
package chapter;

public class Ch1_6_2 {
    public static void main(String[] args) {
        System.out.println("short的資料範圍= " + Short.MIN_VALUE + " ~ "
                + Short.MAX_VALUE);
        System.out.println("double的資料範圍= " + Double.MIN_VALUE + " ~ "
                + Double.MAX_VALUE);

    }

}

沒有留言:

張貼留言