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 位移运算符
左移(<<)、 右移(>>):带符号 右移、逻辑右移 (>>>):不带符号 右移
操作数<<移位数
逻辑操作与的左右操作数都应该是布尔型的值,而位逻辑操作符的左右操作数是整型值。