請教java小問題?
這個問題看似簡單,但如果不實際測試可能還真會搞錯,最好的辦法是寫個Demo將各個值輸出,就能揣摩出其中的意思,咱們結合程序及輸出來分析下:
在Java中整形是有數據范圍的,其中最小值:Integer.MIN_VALUE是-2147483648。如果在此基礎上再減1,就會出現溢出現象,從輸出結果看已經變成:2147483647。而(i-1L)返回是long長整形,再減去1,不會發生溢出正常計算,結果是:-2147483649。
(i-1):2147483647
(i-1L):-2147483649
所以,(i-1) + (i-1L)結果就是:-2。
上一篇HTML中無下劃線怎么打
下一篇air是什么文件