Java运算符
运算符是一种告诉编译器执行特定的数学或逻辑操作的符号
2 常用运算符及应用
2.1 赋值运算符
=
复合赋值运算符:+=,-=,*=,/=,%=
2.2 算数运算符
+,-,*,/,%
2.3 关系运算符
<,>,<=,>=,!=,==
2.4 逻辑运算符(|,&)
2.5 短路运算符
短路运算符(常用):&&,||
&&:两个都为true才为true
||:一个为true则为true
2.6 三元运算符
表达式?a:b;
如果表达式成立则输出a,表达式不成立则输出b
a++和++a的区别(a--和--a相同)
a++是先赋值在自加
public class Demo5 {
public static void main(String[] args) {
int a = 5;
int b;
b=a++;
System.out.println(b); //b=5
System.out.println(a); //a=6
}
}
++a则是先自加再赋值
public class Demo5 {
public static void main(String[] args) {
int a = 5;
int b;
b=++a;
System.out.println(b); //6
System.out.println(a); //6
}
}
==和equals的区别
==是Java提供的等于比较运算符,用来比较两个变量指向的内存地址是否相同。而equals()是Object提供的一个方法。Object中equals()方法的默认实现就是返回两个对象==的比较结果,但是equals()可以被重写,所以在具体使用的时候需要关注equals()方法有没有被重写
易错
++a==b:此时a=a+1=9,成立
++a!=b:此时由于之前a已经加1,所以a=9,a=a+1=10,成立
最后输出a=10
public class Demo5 {
public static void main(String[] args) {
int a = 8;
int b = 9;
System.out.println((++a==b)&&(++a!=b));//true
System.out.println(a); //10
}
}
++a!=b:此时a=a+1=9,不成立,因为是短路&&(或运算)所以后面语句++a!=b不执行,即输出false,a=9
public class Demo5 {
public static void main(String[] args) {
int a = 8;
int b = 9;
System.out.println((++a!=b)&&(++a==b));//false
System.out.println(a); //9
}
}
++a!=b,此语句错误,且为||运算,继续++a==b,错误,最后输出false,++a运行了两次,所以a等于10
public class Demo5 {
public static void main(String[] args) {
int a = 8;
int b = 9;
System.out.println((++a!=b)||(++a==b));//false
System.out.println(a);//10
}
}
++a==b,成立,||运算,直接输出true,后面语句不执行,所以a=9
public class Demo5 {
public static void main(String[] args) {
int a = 8;
int b = 9;
System.out.println((++a==b)||(++a!=b));//true
System.out.println(a); //9
}
}

浙公网安备 33010602011771号