1.基本數據類型的轉換是由系統(tǒng)根據轉換規(guī)則自動完成的。轉換是在編譯器執(zhí)行,不是在運行期再執(zhí)行。
2.基本數據類型的轉換在賦值、方法調用和算術運算這3種情況下都會發(fā)生。
3.合法的基本數據類型轉換原則是指從取值范圍窄的類型向取值范圍寬的類型轉換,如果是從取值范圍寬的類型向取值范圍窄的類型轉換,則會產生編譯錯誤。
基本數據類型轉換順序:
char
|
byte----->short----->int------>long----->float------>double
4.Java語言中無后綴的數字型為兩個,整型的默認是int。浮點型的默認是double。
5.賦值語句中,默認整型作為右操作數時,可以賦值給取值范圍比整型小的變量,前提條件是文字值對應的實際數值在變量類型的取值范圍內。而默認為double的文字值只能賦值為double的變量。不能賦值給float變量。
6.基本數據類型轉換在算術運算情況下的轉換規(guī)則是不一樣的:
單操作數運算規(guī)則
(1) 當運算符是+、-、~時,如果操作數為byte、short、char則先被轉換為int再參與運算
(2) 當運算符是++、--時,如果操作數為byte、short、char則不先被轉換為int,而是直接參與算術運算,且運算結果類型不變。
(3) 如果操作數為int或long,則無論運算符為何種單操作數運算符,均不發(fā)生類型轉換,直接參與算術運算,且運算結果類型不變。
雙操作數運算的規(guī)則
(1) 如果操作數之一為double,則另外一個操作數先被轉換為double再參與運算。
(2) 如果兩個操作數均不為double,當操作數之一為float,則另外一個操作數先被轉換為float,再參與算術運算。
(3) 如兩個均不為double或者float,當操作數之一為long,則另外一個操作數先被轉換為long,再參與算術運算。
(4) 如果兩個均不為double或者float或long,則兩個操作數先被轉換為int,再參與算術運算。
(5) 如果采用+=、*=等形式,系統(tǒng)會自動強制將運算結果轉換為目標變量的類型。