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
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP