在最底層,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)