在最底層,Java中的數據是通過使用操作符來操作的。
1.'=' 賦值
對於基本數據類型就是簡單的賦值,如a=b,則無論改變a還是b均不會對另一個產生影響。
但是在java中,對於對象來說,‘=’相當於對對象引用,假如c=d,若c或者d發生變化,則另一個也會變化。
class A{ int a; } public class Practice{ public static void main(String[] args){ A a1 = new A(); A a2 = new A(); a1.a = 1; a2.a = 2; System.out.println("a1:" + a1.a); System.out.println("a2:" + a2.a); a1 = a2; System.out.println("a1:" + a1.a); System.out.println("a2:" + a2.a); a1.a = 99; System.out.println("a1:" + a1.a); System.out.println("a2:" + a2.a); a2.a = 100; System.out.println("a1:" + a1.a); System.out.println("a2:" + a2.a); } }
a1:1<span style="white-space:pre"> </span>//輸出 a2:2 a1:2 a2:2 a1:99 a2:99 a1:100 a2:100
2.'/ '除法
Java中的除法會直接去掉小數點的部分。
public class Practice{ public static void main(String[] args){ int a = 3; int b = 2; System.out.println(a/b); } }
1 <span style="white-space:pre"> </span>//輸出
3.關系操作符
'==' 、'!=' 如果是基本數據的話就正常操作
但如果是對象間的比較的話,比較的是對象的引用,而不是基本的值。
public class Practice{ public static void main(String[] args){ Integer n1 = new Integer(47); Integer n2 = new Integer(47); System.out.println(n1); System.out.println(n2);//可以看出這裡的值都是47 System.out.println("n1==n2?: " + (n1 == n2)); //但是這裡n1於n2不相等,因為n1、n2引用的對象不一樣 System.out.println("n1!=n2?: " + (n1 != n2)); Integer n3,n4; n3 = n1; n4 = n2; System.out.println("n3==n4?: " + (n3 == n4)); //這裡n3,n4也是引用了不一樣的對象所以不相等 n3 = n1; n4 = n1; System.out.println("n3==n4?: " + (n3 == n4)); //這n3、n4引用了同一個對象,相等了 } } //輸出 47 n1==n2?: false n1!=n2?: true n3==n4?: false n3==n4?: true
4.邏輯運算符
(與)&&、(非)!、(或)||
邏輯運算符操作符只可應用於布爾值,與C++不同的是:不能將一個非布爾值當做布爾值在邏輯表達式中使用。
如:在C++中可以看到while(1) 這樣的語句,因為true的值就是1,所以可以用1代替true或者0代替false
但是在Java中不允許這樣做,只能用while(true),不能使用while(1)