Java 中 int 轉換為 Long
一、簡介
數據類型轉換構成任何語言編程的關鍵部分。在 Java 中,開發人員經常需要將int
轉換為Long
,反之亦然,如我們的文章中所述。
雖然此操作看似簡單,但 Java 提供了多種具有獨特特徵和用例的方法。
在本教程中,我們將深入研究這些方法,清楚地了解每種方法的工作原理以及何時使用它們。
2. 基礎知識:理解int
和Long
在探討轉換方法之前,我們首先了解一下int
和Long
是什麼。 int
和Long
都是我們在 Java 中用來存儲數值的不同類型的數據類型。
int
數據類型是一個 32 位有符號二進制補碼整數,它可以容納最小值 -2^31 和最大值 2^31-1。
相比之下, Long
是一個 64 位二進制補碼整數,可以保存從 -2^63 到 2^63-1 的值。當int
提供的範圍不夠時,我們通常使用Long
。
3. 自動裝箱:隱式轉換
Java 在其第 5 版本中引入了一項稱為自動裝箱的功能,該功能允許在基本類型及其相應的包裝類之間進行自動轉換。
讓我們使用自動裝箱將int
直接轉換為Long
:
int intTen = 10;
Long longTen = (long) intTen;
我們聲明一個int
變量intTen
並為其賦值 10。然後我們聲明一個Long
變量longTen,
並為其賦值intTen
。 intTen
之前的(long)
是一個類型轉換運算符,它告訴編譯器在將intTen
分配給longTen
之前將其轉換為long
。這個過程是自動的,因此稱為自動裝箱。
4. 使用Long.valueOf()
:包裝類方法
Java 中的Long
類是一個包裝類,它提供了幾種處理long
值的實用方法。其中一種方法是valueOf()
,它可以採用int
並返回Long
對象。
此方法是將int
轉換為Long
簡單而有效的方法:
int intTen = 10;
Long longTen = Long.valueOf(intTen);
我們使用Long
類的valueOf()
方法將int
值轉換為Long
。 valueOf()
方法返回一個表示指定int
值的Long
實例。該方法是Long
類的一部分,Long類是Java中long
數據類型的包裝類。
5. 使用new Long()
構造函數:對象創建方法
將int
轉換為Long
另一種方法是使用Long
構造函數。此方法從int
創建一個新的Long
對象。然而,由於創建新對象的開銷,這種方法效率較低:
int intTen = 10;
Long longTen = new Long(intTen);
我們使用Long
構造函數創建一個新的Long
對象。 Long
構造函數採用int
值並創建一個表示相同數值的新Long
對象。雖然這種方法很簡單,但由於對象創建開銷,我們應該避免將其用於性能關鍵型應用程序,因此靜態工廠valueOf()
通常是更好的選擇。
6. 使用Long.parseLong()
: String
轉換方法
我們通常使用Long.parseLong()
方法將String
轉換為Long
。但是,我們也可以通過首先將int
轉換為String
將其與int
一起使用:
int intTen = 10;
Long longTen = Long.parseLong(String.valueOf(intTen));
我們首先使用String.valueOf()
方法將int
轉換為String
。然後,我們將此String
傳遞給Long.parseLong()
方法,該方法將String
解析為long
值並返回表示該值的Long
對象。此方法有點迂迴,但在輸入為String
特定場景中會很有幫助。
7. 其他注意事項
從int
轉換為Long
時,請務必注意,您將從較小的數據類型轉換為較大的數據類型。這意味著在轉換過程中不存在丟失數據的風險。
但是,如果Long
值大於 Integer,則反向操作(從Long
到int
)可能會導致數據丟失Integer.MAX_VALUE, which
表示 32 位可以表示的最大正整數值,保存公式 2^ 的結果31-1(即2147483647)。
此外,雖然Long
數據類型可以保存更大的值,但它會消耗更多的內存。 Java中int
佔用4字節內存,而Long
佔用8字節內存。因此,在決定使用Long
而不是int.
8. 深入研究:了解潛在機制
為了充分理解轉換方法,了解底層機制是有益的。例如,自動裝箱是 Java 編譯器提供的一種語法糖。它會自動插入必要的代碼以在原始類型和相應的包裝類之間進行轉換。此功能簡化了代碼並使其更具可讀性。
另一方面, valueOf()
方法和Long
構造函數是Long
類的一部分,Long 類是long
基本類型的包裝類。 Java 中的包裝類提供了一種將原始數據類型用作對象的方法。它們提供了多種實用方法,包括我們在示例中使用的轉換方法。
parseLong()
方法通常用於String
到Long
轉換,也可以處理int
到Long
轉換。但是,它需要一個額外的步驟,首先將int
轉換為String
。此方法有點迂迴,但在處理字符串格式的數字輸入(例如用戶輸入或從文件讀取的數據)時非常有用。
9. 結論
我們可以通過多種方式將 Java 中的int
轉換為Long
,每種方法都有優點和用例。自動裝箱是一種簡單直接的方法,而Long.valueOf()
和Long.parseLong()
提供更顯式的轉換。也可以使用Long
構造函數,但由於對象創建開銷,效率較低。
選擇最適合您的需求和代碼上下文的方法至關重要。
與往常一樣,本文的完整代碼示例可以在 GitHub 上找到。