數據從類型範圍小的自動向數據範圍大的轉換3d
整數向浮點數轉換(包括long類型向float轉換)code
char類型的範圍內與整數之間轉換依據ASCII表blog
強制轉換會丟失精度,尤爲是超過數據範圍和整數與浮點數的轉換編譯
這裏的m+2L就是上面的自動類型轉換,在執行加法時就成了long類型,因此是long類型的2147483649(已經超出了int的範圍)float
再來看++的狀況
im
num = num + 1
是會產生編譯錯誤的,因此這裏還有默認的強制類型轉換num = (byte) (num+1)
,因此結果被截取爲byte類型,變成了-128。+=狀況相似
d3
m+=2L
能夠看作m=(int)(m+2L)
,強制類型轉換爲int,變成-2147483647至此,如有紕漏,望各位不吝賜教數據