Java 教程

Java 控制語句

面向物件程式設計

Java 內建類

Java 檔案處理

Java 錯誤和異常

Java 多執行緒

Java 同步

Java 網路程式設計

Java 集合

Java 介面

Java 資料結構

Java 集合演算法

高階 Java

Java 雜項

Java APIs 和框架

Java 類引用

Java 有用資源

Java - 資料型別



Java 資料型別定義了不同型別變數、常量、方法引數、返回型別等的資料型別和值範圍。資料型別告訴編譯器要儲存的資料型別和所需的記憶體。為了儲存和操作不同型別的資料,所有變數都必須具有指定的資料型別。

根據變數的資料型別,作業系統分配記憶體並決定可以在保留的記憶體中儲存什麼。因此,透過為變數分配不同的資料型別,可以在這些變數中儲存整數、小數或字元。

Java 資料型別分為兩大類:

  • 基本資料型別
  • 引用/物件資料型別

Java 基本資料型別

基本資料型別由語言預定義,並由關鍵字命名。Java 支援八種基本資料型別。以下是基本資料型別的列表:

byte 資料型別

byte 資料型別是 8 位有符號二進位制補碼整數,最小值為 -128 (-27),最大值為 127(包含)(27 -1)。

byte 變數的預設值為 0,用於節省大型陣列中的空間,這對於整數來說尤其有利,因為 byte 的大小是整數的四分之一。

示例

byte a = 100;
byte b = -50;

short 資料型別

short 資料型別是 16 位有符號二進位制補碼整數,其值範圍為 -32,768 (-215) 到 32,767(包含)(215 -1)。與 byte 資料型別一樣,short 資料型別也有利於節省記憶體,因為它比整數佔用更少的空間,只有整數的一半大小。

short 變數的預設值為 0。

示例

short s = 10000;
short r = -20000;

int 資料型別

int 資料型別是 32 位有符號二進位制補碼整數,其值範圍為 -2,147,483,648 (-231) 到 2,147,483,647(包含)(231 -1)。除非考慮記憶體問題,否則整數通常用作整數值的預設資料型別。

int 變數的預設值為 0。

示例

int a = 100000;
int b = -200000;

long 資料型別

long 資料型別是 64 位有符號二進位制補碼整數,其值範圍為 -9,223,372,036,854,775,808 (-263) 到 9,223,372,036,854,775,807(包含)(263 -1)。當需要比 int 更寬的範圍時使用此資料型別,其預設值為 0L。

示例

long a = 100000L;
long b = -200000L;

float 資料型別

float 資料型別是單精度 32 位 IEEE 754 浮點表示。它在大型浮點數陣列中特別有用,可以節省記憶體。其預設值為 0.0f。但是,需要注意的是,由於浮點運算中的舍入誤差,float 資料型別不適合用於精確值,例如貨幣。

示例

float f1 = 234.5f;

double 資料型別

double 資料型別是雙精度 64 位 IEEE 754 浮點表示,通常用作十進位制值的預設資料型別,通常是預設選擇。double 資料型別不應用於精確值,例如貨幣,其預設值為 0.0d。

示例

double d1 = 123.4;

boolean 資料型別

boolean 資料型別表示單個位的資訊,可以儲存兩種可能的值之一:true 或 false。此資料型別用於跟蹤真/假條件的簡單標誌,其預設值為 false

示例

boolean one = true;

char 資料型別

char 資料型別是單個 16 位 Unicode 字元,它表示來自不同語言和符號的各種字元。範圍為 '\u0000'(或 0)到 '\uffff'(或 65,535 包含)。此資料型別主要用於儲存單個字元。

示例

char letterA = 'A'

基本資料型別的示例

以下示例顯示了我們上面討論的各種基本資料型別的用法。我們在數值資料型別上使用了加法運算,而 boolean 和 char 變數則按原樣列印。

public class JavaTester {
   public static void main(String args[]) {

      byte byteValue1 = 2;
      byte byteValue2 = 4;
      byte byteResult = (byte)(byteValue1 + byteValue2);

      System.out.println("Byte: " + byteResult);

      short shortValue1 = 2;
      short shortValue2 = 4;
      short shortResult = (short)(shortValue1 + shortValue2);

      System.out.println("Short: " + shortResult);

      int intValue1 = 2;
      int intValue2 = 4;
      int intResult = intValue1 + intValue2;

      System.out.println("Int: " + intResult);

      long longValue1 = 2L;
      long longValue2 = 4L;
      long longResult = longValue1 + longValue2;

      System.out.println("Long: " + longResult);

      float floatValue1 = 2.0f;
      float floatValue2 = 4.0f;
      float floatResult = floatValue1 + floatValue2;

      System.out.println("Float: " + floatResult);

      double doubleValue1 = 2.0;
      double doubleValue2 = 4.0;
      double doubleResult = doubleValue1 + doubleValue2;

      System.out.println("Double: " + doubleResult);

      boolean booleanValue = true;

      System.out.println("Boolean: " + booleanValue);

      char charValue = 'A';

      System.out.println("Char: " + charValue);     
   }
}

輸出

Byte: 6
Short: 6
Int: 6
Long: 6
Float: 6.0
Double: 6.0
Boolean: true
Char: A

Java 非基本(引用/物件)資料型別

非基本資料型別不是預定義的。引用資料型別是使用建構函式建立的。它們用於訪問物件。這些變數宣告為特定型別,不能更改。例如,Employee、Puppy 等。

以下是非基本(引用/物件)資料型別:

  • 字串 (String):字串是Java中的一個類,它表示字元序列。
  • 陣列 (Arrays):陣列是利用基本資料型別建立的,用於儲存多個相同型別的值。
  • 類 (Classes):類是使用者自定義的資料型別,由變數和方法組成。
  • 介面 (Interfaces):介面是抽象型別,用於指定一組方法。

任何引用變數的預設值都是 null。引用變數可以用來引用宣告型別或任何相容型別的任何物件。

示例

下面的例子演示了引用(或物件)資料型別。

// Creating an object of 'Animal' class
Animal animal = new Animal("giraffe");

// Creating an object of 'String' class
String myString = new String("Hello, World!");
廣告