關於java型別轉換的問題

2021-07-25 14:42:29 字數 1343 閱讀 6534

資料型別的轉換,分為自動轉換和強制轉換。自動轉換是程式在執行過程中 「 悄然 」 進行的轉換,不需要使用者提前宣告,一般是從位數低的型別向位數高的型別轉換;強制型別轉換則必須在**中宣告,轉換順序不受限制。

自動轉換按從低到高的順序轉換。不同型別資料間的優先關係如下:

低 ---------------------------------------------> 高

byte,short,char-> int -> long -> float -> double

運算中,不同型別的資料先轉化為同一型別,然後進行運算,轉換規則如下:

順便貼一下各種型別對應的位數:

基本型別:byte 二進位制位數:8 

最小值:byte.min_value=-128

最大值:byte.max_value=127

基本型別:short 二進位制位數:16

最小值:short.min_value=-32768

最大值:short.max_value=32767

基本型別:char 二進位制位數:16

最小值:character.min_value=0

最大值:character.max_value=65535

基本型別:int 二進位制位數:32

最小值:integer.min_value=-2147483648

最大值:integer.max_value=2147483647

基本型別:long 二進位制位數:64

最小值:long.min_value=-9223372036854775808

最大值:long.max_value=9223372036854775807

(為什麼這裡long能自動轉float看了資料我也是一臉蒙蔽呀,你可以用float表示的範圍比long大來理解吧,因為float是帶精度的)

基本型別:float 二進位制位數:32

最小值:float.min_value=1.4e-45

最大值:float.max_value=3.4028235e38

基本型別:double 二進位制位數:64

最小值:double.min_value=4.9e-324

最大值:double.max_value=1.7976931348623157e308

強制轉換的格式是在需要轉型的資料前加上 「( )」 ,然後在括號內加入需要轉化的資料型別。有的資料經過轉型運算後,精度會丟失,而有的會更加精確

關於Java物件之間的強制轉換型別

public class employee public class hrstaff extends employee子類物件可以宣告為父類型別,父類物件不可以宣告為子類型別 employee emp new hrstaff 正確 hrstaff hr new employee 錯誤在子類物件宣告為...

java 型別轉換 強制型別轉換

今天在寫乙個demo時,碰到型別轉換問題。發現兩個不相干的class進行強制型別轉換編譯是不會通過的,但是。乙個class到乙個不相干的inte ce強制型別轉換是可以編譯通過的。可能有人感覺知道這沒什麼意義,但是感覺還是記錄下。雖然有自動型別轉換,以及強制型別轉換,但有時強制型別轉換不能通過時,可...

JAVA型別轉換

string s fs123fdsa string變數 byte b s.getbytes string轉換為byte string t new string b bytep轉換為string 1 將字串轉化為整型 int i integer.parsein string str int i int...