Java 中 Long 和 Int 資料型別的區別
本文將討論 Java 中 int 和 long 資料型別之間的區別,並解釋包裝類 Integer 和 Long。我們將瞭解這些資料型別和包裝類之間的區別,並能夠根據場景決定使用哪一種。
Java 中的 int 和 long 資料型別
int 資料型別是 Java 中儲存整數的原始資料型別。這意味著 int 指定變數值的大小和型別。但是,它不能呼叫任何方法。int 的大小是 4 個位元組。它可以儲存從 -2,147,483,648 到 2,147,483,647 的值。
long 資料型別也是 Java 中另一種 8 位元組的原始資料型別。它有比 int 更寬的範圍來儲存整數。long 資料型別用於儲存 int 無法儲存的較大整數。它可以儲存從 -9,223,372,036,854,775,808 到 9,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 中的 Integer 和 Long 包裝類
包裝類是一種特定型別的類,其物件可以儲存原始資料型別。我們將討論 Integer 和 Long 包裝類。我們可以從包裝器類建立包裝器物件,它允許我們使用與物件關聯的不同方法。
例如,建立一個包裝類 Integer 的物件 myInt 並分配一個值 50。從包裝類 Long 建立另一個物件 myLong 並分配一個值 326162165161616161。列印出變數 myInt 和 myLong。然後建立 String 包裝類的兩個物件,分別是 myString1 和 myString2。對每個 myInt 和 myLong 物件使用方法 toString()。最後,呼叫 length() 方法列印物件 myString1 和 myString2 的長度。
在下面的示例中,我們從包裝類 Integer、Long 和 String 建立了物件。我們用物件呼叫了 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 中的 int 和 Integer 之間的差異以及 long 和 Long 之間的區別
int 或 long 與 Integer 和 Long 之間的主要區別在於資料型別是原始型別,而包裝類是非原始型別。原始資料型別儲存特定值,而包裝類的物件只是指向儲存資料位置的指標。
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