在Java中,類型轉換有強制轉換和隱式轉換兩種方式。
強制轉換是指將一個數據類型強制轉換成另一個數據類型,即從大類型向小類型進行轉換。強制轉換過程中需要使用括號將要轉換的類型括起來,即:
int i = 100; byte b = (byte) i;
上述代碼中,我們將一個整數類型的i強制轉換成一個字節類型的b,這樣做的原因是字節類型的范圍只有-128~127,而整數類型的范圍比它還大,因此必須進行強制轉換才能順利進行賦值操作。
而隱式轉換是指將一個數據類型隱式地轉換成另一個數據類型,即從小類型向大類型進行轉換。在Java中,隱式轉換的情況千奇百怪,比如:
int i = 10; double d = i;
上述代碼中,我們將一個整數類型的i賦值給一個雙精度浮點數類型的d,這里發生了隱式轉換。Java的類型轉換規則是,當兩個不同類型的數據參與運算時,先將它們中的小類型轉換成大類型,再進行運算。例如:
int i = 10; double d = 2.5; double result = i + d;
上述代碼中,我們將一個整數類型的i和一個雙精度浮點數類型的d相加,這里也涉及到了隱式轉換。但需要注意的是,隱式轉換不一定總是安全的,因為在轉換過程中可能會丟失精度或者范圍溢出,這時候就需要使用強制轉換來確保轉換的數據類型是正確的。