歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Java中的復合運算符

Java中的復合運算符

日期:2017/3/1 9:49:19   编辑:Linux編程

Java中的復合運算符,比如 += 、-= 等,一般來說,a = a + b 與 a += b 是等價的,但實際上從嚴格意義上來說,這二者之間並不等價,還是有一定區別的。

比如:

public class TestCompositeOperator {

public static void main(String[] args) {
short a = 5;
short b = 10;
a = a + b; //此處會報錯
System.out.println(a);
}

}

因為在Java中,凡是小於int的整型在參與運算的時候,都會被當做int類型來處理,即a = a + b;此處的右邊的a和b在參與運算的過程中,a和b都被當成int類型來處理,運算結果當然是int類型,要把int類型賦給short類型,必須強制轉換,否則就會報錯;
但是:
public class TestCompositeOperator {

public static void main(String[] args) {
short a = 5;
short b = 10;
a += b; //此處正確
System.out.println(a);
}

}

因為在Java中,像+=這樣的復合運算符,實際上包含了強制類型轉換,即以上代碼a += b;是和 a = (short)(a + b);等價。
所以在實際使用中,一定要牢記基本的運算准則,否則就很容易出一些莫名其妙的錯誤。

Copyright © Linux教程網 All Rights Reserved