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 上找到。