Java 類型轉換細節(jié)
這里介紹的是在 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 進制的數值
長類型轉短類型(保留低字節(jié))
以 int 轉 short 為例子:我們知道 int 是 4 個字節(jié),shor 是 2 個字節(jié)辜纲。
我們又知道這些數值在計算機中都是以二進制來儲存的笨觅。
假如 int a = 65535 那么在計算機中的存儲方式就是:0000FFFF(這里方便起見用 16 進制表示)
short s = (shor)a 這樣強制轉換,Java 會把 a 的高 2 個字節(jié)刪除耕腾,保留低 2 個字節(jié)給 s 于是 s 在計算機中就變成了 FF 见剩,就是 -1 了。