1、equals() 和==
根據下面的程序代碼,哪些選項的值返回true?
A. a==b
B. s==a
C. b==c
D. a.equals(s)
分析:
equals()是object類的一個方法, 指示某個其他對象是否與此對象“相等”。由於object類是類層次結構的根類。所以它是每個類的超類。每個類都可以重寫equals()方法,如String類。如果沒有重寫新類的equals(),則該方法和==操作符一樣在兩個變量指向同一對象時返回真,但是java推薦的是使用equals()方法來判斷兩個對象的內容是否一樣。注意以下幾點區別
1,引用類型比較引用,基本類型比較值
2,equals()方法只能比較引用類型,==可以比較引用及基本類型
3,用equals()方法進行比較時,對類File,String,Date及封裝類(Wrapper Class)來說,是比較類型及內容。
4,用==進行比較時,符號兩邊的數據類型必須一致(可相互轉換的基本類型除外),否則編譯出錯。
答案 C
2.public class TestOne {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int a = 2;
int b = 1;
for(int c = 0; c < 5; c++){
if((++a > 2)&&(++b > 2)){
System.out.println(a+"...");
a++;
System.out.println(a+",,,");
}
}
System.out.println("a="+a+" b="+b);
}
}
輸出a=11 b=6
3、邏輯運算符
邏輯運算符共3中,即“非(!)”,“和(&&)”,“或(||)”
4.位運算符
位運算符是用來對二進制進 行操作的。位運算符一般分兩種:位邏輯運算符 和 位移位運算符
4.1 位邏輯運算符
與(&)、按位取反(~)、或(|)、異或()。
注意位邏輯運算符從表面上看似乎有點像邏輯運算符,但邏輯運算符是針對兩個關係運算符來進行邏輯運算,而位運算符主要針對兩個二進制數的位進行邏輯運算。
4.1 位移運算符
左移(<<)、 右移(>>):帶符號 右移、邏輯右移 (>>>):不帶符號 右移
操作數<<移位數
邏輯操作與的左右操作數都應該是布爾型的值,而位邏輯操作符的左右操作數是整型值。