java运算符总结

运算符的优先级及注意事项:

1. []、.、() []用于数组 .方法调用 ()复合运算时可以改变既定的优先级

2. !、~、++、– !逻辑非,只能用于boolean型值取反的意思 ~按位非,输入0返回1,输入1返回0 ++自增操作,如果++前置,则先进行自增,然后执行赋值等操作,如果++后置,则先执行赋值等操作,然后进行自增。 –自减操作,如果–前置,则先进行自减,然后执行赋值等操作,如果–后置,则先执行赋值等操作,然后进行自减。 注意以下情况:`public class 运算符 {

public static void main(String[] args) {
    // TODO 自动生成的方法存根
       int a=5;
       a++;
       System.out.println(a);
       int b=5;
      ++b;
       System.out.println(b);
       int c=5;
       c--;
       System.out.println(c);
       int d=5;
       --d;
       System.out.println(d);

}

}
其结果为:
java运算符总结_第1张图片
所以可以将这种情况看为前置++和前置–
而稍微将代码改变一下后:

public class 运算符 {

    public static void main(String[] args) {
        // TODO 自动生成的方法存根
           int a=5;
           a=a++;
           System.out.println(a);
           int b=5;
           b=++b;
           System.out.println(b);
           int c=5;
           c=c--;
           System.out.println(c);
           int d=5;
           d=--d;
           System.out.println(d);

    }

}

此时结果为:
java运算符总结_第2张图片

3. /、 、% 乘号 /除号 注意以下几个的区别:float a=5/2(结果为2,后面5/2计算时默认为5、2都为int型,其结果舍去小数部分) ;float a= float5/2 float a=5/float2 float a=float5/float2(这三个的结果都为2.5,因为这三个或分母或分子或分子分母被强转成了float型,计算过程有小数,计算结果为float型) %取余 注意以下问题:计算以下几个数的余数:int a=10%3 int a=-10%3 int a=10%-3 int a=-10/%-3(结果分别是1、-1、1、-1)

public class 余数 {

    public static void main(String[] args) {
        // TODO 自动生成的方法存根
          int a=10%3;
          System.out.println(a);
          int b=-10%3;
          System.out.println(b);
          int c=10%-3;
          System.out.println(c);
          int d=-10%-3;
          System.out.println(d);
    }

}

java运算符总结_第3张图片

4. +、- 一般的加减运算符号

5. << 、>>、>>> <<左位移 >>右位移 >>>无符号右移(位移运算符移的是二进制数的补码,左移相当于乘法,左移补0,且左移过程中正数可能会变成负数,所以注意二进制补码符号位的变化,右移相当于除法,右移补0还是补1看符号位是什么,符号位是1补1,是0补0,无符号右移最高位只补0)

6. <,<=,>,>=,instansof <,<=,>,>=为关系运算符 instansof判断左边对象是否与右边对象是同一类型

7. ==、!= ==两个值是否相等 !=两个值是否不相等

8. & 按位与运算,其功能是参与运算的各对应的二进制数的补码相与;且各二进制数的补码都为1是结果为1,否者为0(如9&5,9的二进制数补码0000 1001,5的二进制数补码0000 0101,按位与后得到0000 0001,即为1,则9&5=1)

9. ^ 按位异或,功能是参与运算的各对应的二进制数补码相异或,各二进制数的补码不同时为1,相同时为0,(如9^5,可写为0000 1001^0000 0101,结果为0000 1100 ,即12,则9^5=12)

10. | 按位或,功能是参与运算的各对应的二进制数补码相或,各二进制数的补码有一个为1时为1,(如9|5,可写为0000 1001|0000 0101,结果为0000 1101 ,即13,则9^5=13)

11.&& 短路与,前面有一个false,则结果为false,不在进行其他

12. || 短路或,前面有一个true,则结果为true,不在进行其他的,

13. ? 条件运算符,前面的表达式为true,则取冒号前的值,前面的为false,则取冒号后面的值,

14. = 、+=、-=、*=、/=、&=、|=、^=、<、<=、>、>=、>>= 复合赋值运算符,对于=,如果是基本数据类型,则赋值是值本身,如果是引用类型,则赋值是引用而非对象,

你可能感兴趣的:(java基础)