Java 中 Long 和 Int 資料型別的區別

Bishal Awasthi 2023年10月12日
  1. Java 中的 intlong 資料型別
  2. Java 中的 IntegerLong 包裝類
  3. Java 中的 intInteger 之間的差異以及 longLong 之間的區別
Java 中 Long 和 Int 資料型別的區別

本文將討論 Java 中 intlong 資料型別之間的區別,並解釋包裝類 IntegerLong。我們將瞭解這些資料型別和包裝類之間的區別,並能夠根據場景決定使用哪一種。

Java 中的 intlong 資料型別

int 資料型別是 Java 中儲存整數的原始資料型別。這意味著 int 指定變數值的大小和型別。但是,它不能呼叫任何方法。int 的大小是 4 個位元組。它可以儲存從 -2,147,483,6482,147,483,647 的值。

long 資料型別也是 Java 中另一種 8 位元組的原始資料型別。它有比 int 更寬的範圍來儲存整數。long 資料型別用於儲存 int 無法儲存的較大整數。它可以儲存從 -9,223,372,036,854,775,8089,223,372,036,854,775,807 的值。

例如,建立一個帶有 int 資料型別的變數 num1 和帶有 long 資料型別的 num3。將 100 分配給 num1,將 15000000000L 分配給 num3。在控制檯中列印變數。再次建立另一個具有相同資料型別的變數 num2,並分配一個值 2147483648。然後,列印 num2 變數。請注意,這些程式碼行應該寫在類的 main 方法中。

第一個程式碼示例成功執行,但第二個示例遇到錯誤。這是因為值 2147483648 超出了 int 資料型別的範圍。我們在 long 資料型別的值後面寫上 L 來表示一個 long 值。

示例程式碼:

int num1 = 100;
long num3 = 15000000000L;
System.out.println(num1);
System.out.println(num3);

輸出:

100 15000000000

示例程式碼:

int num2 = 2147483648;
System.out.println(num2);

輸出:

Main.java:3: error: integer number too large
 int num2 = 2147483648;
 ^
1 error

Java 中的 IntegerLong 包裝類

包裝類是一種特定型別的類,其物件可以儲存原始資料型別。我們將討論 IntegerLong 包裝類。我們可以從包裝器類建立包裝器物件,它允許我們使用與物件關聯的不同方法。

例如,建立一個包裝類 Integer 的物件 myInt 並分配一個值 50。從包裝類 Long 建立另一個物件 myLong 並分配一個值 326162165161616161。列印出變數 myIntmyLong。然後建立 String 包裝類的兩個物件,分別是 myString1myString2。對每個 myIntmyLong 物件使用方法 toString()。最後,呼叫 length() 方法列印物件 myString1myString2 的長度。

在下面的示例中,我們從包裝類 IntegerLongString 建立了物件。我們用物件呼叫了 toString()length() 之類的方法。toString() 方法將值轉換為字串,我們可以使用 length() 方法來計算它們的長度。如果我們嘗試從原始資料型別訪問這些方法,我們將無法做到。因此,包裝類讓我們建立包裝物件以使用各種操作的方法。

示例程式碼:

Integer myInt = 50;
Long myLong = 326162165161616161L;

System.out.println(myInt);
System.out.println(myLong);

String myString1 = myInt.toString();
System.out.println(myString1.length());

String myString2 = myLong.toString();
System.out.println(myString2.length());

輸出:

50
326162165161616161
2
18

Java 中的 intInteger 之間的差異以及 longLong 之間的區別

intlongIntegerLong 之間的主要區別在於資料型別是原始型別,而包裝類是非原始型別。原始資料型別儲存特定值,而包裝類的物件只是指向儲存資料位置的指標。

Integer myInt = new Integer(5);
int num = 5

上面的 myInt 物件只是一個指向資料 5 位置的指標。儲存 myInt 物件的記憶體包含值 5 位置的記憶體地址。它只是對值位置的引用。同時,儲存變數 num 的記憶體包含值 5

這個概念可以用 null 值來形象化。我們可以將 myInt 物件設定為空值,但我們不能對 num 變數執行相同操作。物件可以引用空地址,因為物件是引用型別。int 資料型別不能包含空值,因為 int 是原始型別,無法引用。因此,當我們將 null 分配給一個物件時,它會輸出為 null,但是當我們將其分配給 int 型別時,則會丟擲錯誤。

示例程式碼:

Integer myInt = null;
System.out.println(myInt);

輸出:

null

示例程式碼:

int num = null;
System.out.println(myInt);

輸出:

Main.java:6: error: incompatible types: <null> cannot be converted to int
int num = null;
 ^
1 error

相關文章 - Java Long

相關文章 - Java Integer