Java 中 Integer 和 int 的區別
在 Java 中,int 和 Integer 都用於儲存整數型別資料,兩者之間的主要區別在於 int 的型別是基本型別,而 Integer 是類型別。當開發過程中涉及到面向物件程式設計的概念時,這種差異變得非常重要,因為 int 遵循基本資料型別的原則,而 Integer 則表現為包裝類。
以下是 int 和 Integer 之間的重要區別。
序號 | 關鍵點 | int | Integer |
---|---|---|---|
1 | 型別 | int 是一種資料型別,用於儲存 32 位帶符號的二進位制補碼整數。 | 另一方面,Integer 是一個包裝類,它將基本型別 int 封裝成一個物件。 |
2 | 用途 | int 有助於將整數值儲存到記憶體中。 | Integer 有助於根據需要將 int 轉換為物件,並將物件轉換為 int。 |
3 | 靈活性 | 與 Integer 相比,int 的靈活性較差,因為它只允許在其中儲存整數的二進位制值。 | 另一方面,Integer 在儲存和操作 int 資料方面更靈活。由於包裝類繼承了 Object 類,因此它們可以在包含 Object 引用或泛型的集合中使用。 |
4 | 記憶體分配 | 如前所述,int 是一種基本資料型別,需要 32 位(4 位元組)來儲存。 | 另一方面,Integer 是一個物件,需要 128 位(16 位元組)來儲存其 int 值。 |
5 | 強制轉換 | 在 Java 中,不能直接或透過強制轉換將字串值(僅包含整數)分配給 int 變數。 | 對於 Integer,我們可以使用 Integer(String) 建構函式將字串分配給 Integer 型別的物件,或者甚至使用 parseInt(String) 將字串字面量轉換為 int 值。 |
6 | 直接轉換為其他進位制 | 對於 int,我們無法將其整數值轉換為其他進位制。 | 但是,在 Integer 中,我們可以使用 toBinaryString()、toOctalString() 或 toHexString() 分別直接將其整數值轉換為二進位制、八進位制或十六進位制格式。 |
7 | 允許的操作 | int 不允許使用任何內建函式來更改其值或語法。 | 但是,在 Integer 中,我們可以使用 reverse()、rotateLeft() 和 rotateRight() 分別反轉數字或將其向左或向右旋轉。 |
int 與 Integer 的示例
JavaTester.java
示例
public class JavaTester { public static void main(String args[]){ Integer a = new Integer("456"); // Casting not possible // int a = (int)"456"; // Casting not possible // int c="456"; // Casting possible using methods // from Integer Wrapper class int b = Integer.parseInt("456"); System.out.print(b); } }
輸出
456
廣告