算术运算符
执行完下面的代码,变量b的值是: ```java
int a = 1; int b = a++; ```
答案是:D
++在后,先赋值再运算
自动递增和递减
下面代码执行后的结果是:
int a = 0;
a = ++a;
int b = 0;
b = b++;
System.out.println("a = " + a);
System.out.println("b = " + b);
答案是:A
"++"和”–“可以用于数值变量之前或者之后;
两处使用差别:
”++“和”–“用于数值变量之前,在赋值操作中,先对被”++“或”–“操作变量值先加1或者先减1,然后在进行其他的操作;
"++"和”–“用于数值变量之后,在赋值操作中,先用被”++“或”–“的操作变量值进行其他的操作,然后在对其值加1或者减1。
package java_src;
public class Test {
public static void main(String args[]){
int a = 0;
a = ++a;
int b = 0;
b = b++;
System.out.println("a = " + a);
System.out.println("b = " + b);
}
}
a = 1
b = 0
Process finished with exit code 0
关系操作符
下面代码执行后的结果是:
Integer n1 = new Integer(47);
Integer n2 = new Integer(47);
System.out.println(n1 == n2);
System.out.println(n1 != n2);
答案是:B
== : 它的作用是判断两个对象的地址是不是相等。即,判断两个对象是不是同一个对象。(基本数据类型==比较的是值,引用数据类型==比较的是内存地址)
延伸:增加一行equals比较
package java_src;
public class Test {
public static void main(String args[]){
Integer n1 = new Integer(47);
Integer n2 = new Integer(47);
System.out.println(n1 == n2);
System.out.println(n1 != n2);
System.out.println(n1.equals(n2));
}
}
结果为:
false
true
true
Process finished with exit code 0
逻辑操作符
下面的语句能够打印出 CSDN的是:
答案是:B
A 中 !是非操作符,优先级高于||(或),flag1是true,!flag1取反就是false,flag2是false,两个false或后还是false,if里不满足条件,会进到else里打印的是Java
B中&&是与操作符,flag1和flag2都是false,两个false与后还是false,if里条件不满足,会进到else里打印的是CSDN
D中&&是与操作符,只有当flag1和flag2都是true时,值才为true
1.逻辑非(!):就是取反的意思,false变成true,true变成false
2.逻辑与(&&):同时满足条件的时候值为true,两个都是true才会变成true
3.逻辑或(||):一方满足条件的时候值为true,其中任意一个是true
4.逻辑异或(^):两方必须不一样才成立