Java數據類型自動轉換(++ ,+=)

在算術表達式中的自動類型轉換

  • 數據從類型範圍小的自動向數據範圍大的轉換3d

  • 整數向浮點數轉換(包括long類型向float轉換)code

    • 例子:
  • char類型的範圍內與整數之間轉換依據ASCII表blog

強制轉換會丟失精度,尤爲是超過數據範圍和整數與浮點數的轉換編譯

在賦值表達式中的自動類型轉換

  • 先看兩個例子

  • 這裏的m+2L就是上面的自動類型轉換,在執行加法時就成了long類型,因此是long類型的2147483649(已經超出了int的範圍)float

    • num+1也是自動類型轉換,在執行加法時就成了int類型,因此是int類型的128(已經超出了byte的範圍)
  • 再來看++的狀況
    im

    • 這裏沒有發生自動類型轉換嗎,是有的,並且還有強制類型轉換。若是隻是num = num + 1是會產生編譯錯誤的,因此這裏還有默認的強制類型轉換num = (byte) (num+1),因此結果被截取爲byte類型,變成了-128。
  • +=狀況相似
    d3

    • m+=2L能夠看作m=(int)(m+2L),強制類型轉換爲int,變成-2147483647

至此,如有紕漏,望各位不吝賜教數據

相關文章
相關標籤/搜索