標籤:組成 遞增 ext 等於 rgs 預設 int enter 地址
一:賦值
1.對基礎資料型別 (Elementary Data Type)的賦值,int a=b; //把b的值複製給a,如果修改了a的值,b 的值不會受到影響。
2.對參考型別的賦值,
public class Text {public static void main(String[] args) {Person a=new Person();Person b=a;//System.out.println(b.age);b.age=14;System.out.println(a.age);}}class Person{int age=15;}
輸出結果:14
解: 引用a指向一個堆空間,接著b也指向這個空間,ab共用一個堆空間,當b.age=14改變時候,a也跟著改變。(String雖然也是引用,但是)
二:自增自減
- 首碼遞增(遞減):++i(--i) :先執行遞增(遞減)操作,再執行語句。
- 尾碼遞增(遞減):i++(i--) :先執行語句,在執行遞增(遞減)操作。
int i=1;System.out.println(i++);i=2;System.out.println(++i);
結果:1
3
三:關係操作符
- 組成:大於(>) 小於(<) 小於等於(<=) 大於等於(>=) 等於(==) 不等於(!=)
- 結果:產生的是boolean類型的結果。
- 等於(==)和不等於(!=)適用於所有的基本類型,而其他比較符不適用於boolean類型,比如true>false 沒有實際意義。
- 等於(==)和不等於(!=)比較的是對象的引用。
- 我們知道==和!=是用於比較對象的引用,但是如果我們想直接比較對象的值呢?這裡可以用equlas()方法來比較,但是這個方法不適用與基礎資料型別 (Elementary Data Type),基礎資料型別 (Elementary Data Type)用==和!=就可以比較。 注意:equals()預設的是比較引用,但是大多數類都覆蓋了equals()以便比較對象的內容,如果是我們建立類中,equals()就不能比較對象的內容因為我們沒有重新定義並覆蓋這個方法。
public class Text {public static void main(String[] args) {String a=new String("abc");String b=new String("abc");System.out.println(a.equals(b)); //true a的類String覆蓋了equlas()以便比較對象的內容,所以ab相等Person a1=new Person();Person b1=new Person();System.out.println(a1.equals(b1)); //false 自訂類Person中沒有覆蓋equals(),故還是原來的equals()只能比較地址。}}class Person{int i=15;}
結果: true
false
java基礎之操作符