Java 類型轉換細節

Java 類型轉換細節

這裡介紹的是在 Java 中不同數據類型之間轉化的一些比較基本的,但是又不容易確定的問題。

這裡以 byte 類型為主,很多方法其實通用於 int long 這種類型。

一些非常簡單,沒有迷惑性的東西,這裡就跳過了,這篇主要講的是在轉化中比較容易迷惑的問題。

String 類型轉 Byte 類型

我們都知道 String 類型的轉換其他任意的基本數據類型,基本都有一個 XXX.valueOf()方法。通過這個方法就可以把 String 類型轉化為 XXX 類型了。以 Byte 類型為例。

使用這個方法要注意:

  • String 類型要符合數據類型
  • String 的數不能超過 byte 類型的取值範圍(-128 -127)超過這個範圍就會拋出異常了。
  • Byte.valueOf(String string,int radix) 這個方法,這個方法的意思是,string 被當做是 radix 進制的數。比如 Byte.valueOf("10",16) 結果是 16
  • Byte.decode(String nm) 方法,這個方法是自動識別 nm 的進制的。nm 是 ox 、oX、# 開頭就認為是 16 進制的數。 0 開頭就認為是 8 進制的數值

長類型轉短類型(保留低字節)

以 int 轉 short 為例子:我們知道 int 是 4 個字節,shor 是 2 個字節。

我們又知道這些數值在計算機中都是以二進制來儲存的。

假如 int a = 65535 那麼在計算機中的存儲方式就是:0000FFFF(這裡方便起見用 16 進製表示)

short s = (shor)a 這樣強制轉換,Java 會把 a 的高 2 個字節刪除,保留低 2 個字節給 s 於是 s 在計算機中就變成了 FF ,就是 -1 了。


分享到:


相關文章: