Java运算符

1 运算符

运算符是一种告诉编译器执行特定的数学或逻辑操作的符号

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
  }
}

 

posted @ 2021-11-18 17:15  ybybyb  阅读(34)  评论(0)    收藏  举报