Java里a和b哪个大_Java中 a+=b和a=a+b有什么区别?
在java語言中,a+=b和a=a+b的主要區別是在運算的精度上。類似的有“-= 、 *= 、/= 、%= ”,這里以a+=b 與 a=a+b 舉例說明一下。
1.下面是一串代碼,我們試一下a=a+b的形式:
public class TestDemo {
public static void main(String[] args) {
byte a=1;
a=a+4;
System.out.println(a);
}
}
從圖中可以看出出現了錯誤,根本無法運行。報錯原因我也貼出來了,說是“類型不匹配:不能從int轉換為byte”,
這里因為a是byte類型,而數字4默認是int 類型。在java中,在a+4時,會進行 自動類型轉換 ,所以a+4 會轉換成int類型。而變量a還是byte類型,將int 類型的a+4賦值給byte類型的a ,無疑會報錯。
當然,我們也可以進行強類型轉換,將已經轉換成int類型的a+4強制轉換為byte類型,這樣也是可以的。但是這種轉換可能會導致溢出或者精度的下降,如果容忍可能出現的誤差,可以使用這種轉換。
下面是轉換的結果:
publicclass TestDemo {
public static void main(String[] args) {
byte a=1;
a=(byte)(a+4);
System.out.println(a);
}
}
(2)下面試一試a+=b的形式
public class TestDemo {
public static void main(String[] args) {
byte a=1;
a+=4;
System.out.println(a);
}
}
我們發現結果是正確的,程序也沒毛病。大家需要明確的是“+=”是java中的一個運算符,而不是兩個,所以在運算時 會進行自動類型轉換。所以在編譯時沒有報錯。
(3),總結一下,在兩個變量的數據類型一樣時:a+=b 和a=a+b 是沒有區別的。
但是當兩個變量的數據類型不同時,就需要考慮一下數據類型自動轉換的問題了。
也就是涉及到精度了。
總結
以上是生活随笔為你收集整理的Java里a和b哪个大_Java中 a+=b和a=a+b有什么区别?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracletns中不存在名称为_关于数
- 下一篇: java了解异常_ID检测_Java入门