官术网_书友最值得收藏!

2.2.3 數據類型

數據類型除了前面提到過的數值型,還有字符型、日期型等。每個數據類型都有它的取值范圍,編譯器會根據每個變量或常量的數據類型為其分配內存空間。變量中存儲的數據的數據類型應該跟變量聲明的數據類型一致,否則會報錯。例如,如果變量age聲明為整型,則它只能存儲1、2、3等整型數據,而不能存儲1.0、3.14等浮點型數據或'a'、'b'、'c'等字符型的數據。Java的數據類型包括基本數據類型和引用數據類型,各自下面又有分類,如圖2.2所示。其中基本數據類型有8種,如表2.2所示,引用數據類型以后再做介紹。

圖2.2 數據類型分類

表2.2 基本數據類型

1.整數類型

Java使用4種類型的整數:byte、short、int和long。編寫程序時應該為變量選擇最適合的數據類型。例如,知道存儲在變量中的整數是在1字節范圍內,應將該變量聲明為byte型。為了簡單和一致性,本書的大部分內容都使用int來表示整數。

long類型的數據,需要在數字后面加上字母L或l(L的小寫形式)來表示。如果數據的值不超過int的取值范圍,也可省略。示例代碼如下。


public static void main(String[]args) { 
      long data1=1000000000; //沒有超出int的取值范圍,省略字母L 
      long data2=10000000000;  //超出了int的取值范圍,報錯 
      long data3=10000000000L;  //加上字母L就不報錯了 
}

整數又分為二進制整數、八進制整數、十六進制整數和最常用的十進制整數。

二進制整數:由0和1組成的數字序列,逢二進一,如1101。在Java中二進制整數前面還要加上0b或0B才能表示是二進制數,否則會被當成十進制數,如0b1101或0B1101。

八進制整數:由0、1、2、3、4、5、6、7組成的數字序列,逢八進一,如72。在Java中八進制整數前面還要加上0才能表示是八進制數,否則會被當成十進制數,如072。

十六進制整數:由數字0~9和字母a~f共16個字符組成的序列,其中a代表10,b代表11,依此類推,逢十六進一,如a9。在Java中十六進制整數前面還要加上0x或0X才能表示是十六進制數,否則會報錯或被當成十進制數,如0xa9或0Xa9。

二進制、八進制、十六進制的整數在輸出時都會被轉換成十進制整數。示例代碼如下。


public static void main(String[]args) {             
    int num2=0b1101; 
    System.out.println(num2);  
    num2=1101;   //刪除0b將被當成十進制數 
    System.out.println(num2); 
    int num8=072; 
    System.out.println(num8); 
    num8=72;     //刪除0將被當成十進制數 
    System.out.println(num8); 
    int num16=0xa9; 
    System.out.println(num16); 
    //num16=0xa9;  //刪除0x將報錯 
}

運行結果:


13 
1101 
58 
72 
169

2.浮點型

Java使用兩種類型的浮點數:float和double。double稱為雙精度(double precision),而float稱為單精度(single precision)。通常情況下,應該使用double型,因為它比float型更精確。Java中,在小數后面加上字母F或f表示float型數據,在小數后面加字母D或d表示double型數據。如果一個小數后面不加字母,則默認為double型數據。示例代碼如下。


public static void main(String[]args) { 
      double data1=1.87D;  //小數后面加D,表示double型數據 
      double data2=1.87;   //小數后面沒有加D,默認為double型數據 
      float data3=1.87;    //報錯,double型數據不能存入float型變量中 
      float data4=1.87F;   //小數后面加F表示float型數據 
}

3.字符型

字符型(char)的變量只能存儲單獨一個字符。賦值時,需要用一對單引號將一個字符引起來再賦值,如char a='a'。也可以將一個整數賦給char型變量,編譯器將自動將整數轉換成ASCII編碼表對應的字符。示例代碼如下。


public static void main(String[]args) { 
      char c1='c';            //賦值字符c 
      System.out.println(c1); 
      char c2=99;              //賦值整數99,根據ASCII編碼表,99代表字符c 
      System.out.println(c2); 
}

運行結果:


c 
c

4.布爾型

在現實生活中經常要拿兩種事物進行比較,比較結果可能是“真”,也可能是“假”。例如,太陽比地球大,比較結果是“真”;月亮比地球大,比較結果是“假”。比較結果不是“真”就是“假”,只有這兩個取值。布爾型正是用來表示比較結果的,它只有兩個取值,即“真”或“假”,在Java中用關鍵字boolean表示布爾型,它只有兩個取值:true和false,分別代表布爾邏輯中的“真”和“假”。若一個變量聲明為布爾型,則它只能存儲true或false這兩個值之一,而不能存儲其他值。示例代碼如下。


public static void main(String[]args) { 
      boolean bigger;  //聲明一個布爾型變量 
      bigger=true;     //賦布爾型數據true,正確 
      bigger=false;    //賦布爾型數據false,正確 
      bigger=100;      //賦整型數據,報錯 
}

5.String型

String型不屬于基本數據類型,是類的一種,后面會做詳細介紹。但前面有多處用到它,這里要先做簡單說明。String型又稱字符串型,用于存儲字符串,字符串是由一個或多個鍵盤字符組成的字符序列,用雙引號引起來。例如"HelloWorld"就是一個典型的字符串,可以將它賦給一個String類型的變量。示例代碼如下。


String hello="HelloWorld"

主站蜘蛛池模板: 林周县| 光泽县| 巴中市| 黄梅县| 金秀| 邵武市| 麻江县| 航空| 绥芬河市| 阜阳市| 乐至县| 凤翔县| 平武县| 监利县| 杂多县| 堆龙德庆县| 嘉定区| 泗水县| 老河口市| 左云县| 钟山县| 张掖市| 乌苏市| 连平县| 顺平县| 精河县| 凤台县| 扎囊县| 保定市| 临桂县| 绥芬河市| 拉萨市| 南充市| 阜新市| 黑山县| 绥江县| 化德县| 宜城市| 库车县| 天长市| 双流县|