首页 > 代码库 > 跟着刚哥梳理java知识点——运算符(五)

跟着刚哥梳理java知识点——运算符(五)

运算符:是一种特殊的符号,用以表示数据的运算、赋值和比较。

1、算数运算符(+、-、*、/、%、++、--)

  a)除:

    int i = 12;    int j = i / 5;            //2    double d1 = i / 5;        //2.0    double d2 = (double)i/5;  //2.4    double d3 = i/5.0;        //2.4

  b)前++和后++区别

    前++:先自增一赋值给自己,后做运算赋值

    后++:先做运算赋值,后自增一赋值给自己

    int a = 10;    int b = ++a; //a=11 b=11       int c = a++; //a=11 c=10

    自增和自减运算符只能用于操作变量,不能直接用于操作数值或常量!例如 5++ 、 8-- 等写法都是错误的!

2、赋值运算符(+=、-=、*=、/=、%=、=)

    int i = 10;    i += 3;//运算结果等于 i = i + 3;

  i+=3的运算结果是相当于i = i + 3,但是还是有一些区别的。

  例如:

    short s = 10;    s = s + 3; //编译错误    s += 3;    //既可以实现运算,又不会改变s的数据类型

  【知识点】:赋值运算+=、-=、/=、%=进行了运算但是不会改变变量的数据类型

  笔试题:

    1、考核赋值运算符使用

    int a = 1;    a *= 0.1;       System.out.println(a);//0       a++;       System.out.println(a);//1

    2、考核=和==的区别

    boolean b = false;    if (b==true) {      System.out.println("==结果为真");       }       else{           System.out.println("==结果为假");       }       if(b=true){           System.out.println("=结果为真");       }       else{           System.out.println("=结果为假");       }

    输出结果:

      ==结果为假
      =结果为真

3、比较运算符(==、!=、<、>、<=、>=、instanceof)

  比较运算符的结果都是boolean型

4、逻辑运算符(&-逻辑与、&&-短路与、|-逻辑或、||-短路或、!-逻辑非、^-逻辑异或)

  a)逻辑运算符左右两边运算的变量都是boolean型。

  b)&和&&的结果是一模一样的,|和||的结果是一模一样的。

  c)&和&&的区别?

    &:不管左边是true还是false,右端都会运算。

    &&:当左边是false,那么右端则不会运算。

    所以只要当左边是false才会有区别,如果左端是true的时候,就一模一样了。

    当然我们在开发的过程中绝对推荐&&,这样可以减少右端运算的开销。

    |和||的区别就不再阐述了一样的思路。

  c)异或顾名思义,当a和b只要不一致就会返回true,都一样则返回false。

5、位运算符(<<、>>、>>>、&、|、^、~)

  a)<< 左移(左移几位,后面用0补齐)

    3<<2 = 3*2*2=12

    0000 0000 0000 0011  = 3

    0000 0000 0000 1100  = 2的3次方 + 2的2次方 = 12

  b)>> 右移(右移几位,前面需要看第一位是0还是1,如果是1就用1补齐,如果是0就用0补齐)

    31>>2 = 7

  c) >>> 无符号右移(右移几位,前面不管第一位是0还是1,全部用0补齐)

    31>>>2 = 7

  d)&是与运算。

  e)|是异或算

  f)^异或

    在讲到变量的类型转换,在不声明第三方变量的情况下互换一下a和b的值。用异或方法绝对是完美的。

    int a = 10;

    int b = 15;

    答案:

    a = a ^ b;

    b = a ^ b;

    a = a ^ b;

6、三元运算符(? :)

  用来完成简单的选择逻辑,即根据条件判断,从两个选择中选择一种执行。

  (条件表达式)?表达式1:表达式2

  如果表达式1和表达式2必须为同种类型的数据类型

跟着刚哥梳理java知识点——运算符(五)