java运算符

本文详细介绍了Java中的各种运算符,包括算术运算符、赋值运算符、关系运算符、逻辑运算符、位运算符以及条件运算符。特别强调了自增运算符(++a与a++)的区别,以及位运算在实际问题中的应用,例如快速计算2的幂。还提到了逻辑运算符的短路特性,并通过示例解释了其工作原理。此外,还探讨了扩展赋值运算符的使用,以及字符串连接时的优先级规则。最后,文章总结了运算符的优先级顺序。
摘要由CSDN通过智能技术生成

java支持如下运算符

  • 算术运算符:+,-,*,/,%,++(自增),–(自减)

  • 赋值运算符:=

  • 关系运算符:>,<,>=,<=,==,!=,instanceof

  • 逻辑运算符:&&(逻辑与运算),||(逻辑或运算),!(非)

  • 位运算符:&,|,^(异或),~(非),>>(二进制右移),<<(二进制左移).>>>

  • 条件运算符(eg:x ? y : z,若x为真,输出y,为假,输出z)

  • 扩展赋值运算:+=,-=,*=,/=

++a与a++

  1. a++:先执行本行代码,在给a+1
public class Test {
    public static void main(String[] args) {
       int a = 3;
       int b = a++;
       //a=a+1
       //a=a+1
       int c = ++a;
       System.out.println(a);
       System.out.println(b);
       System.out.println(c);
    }
}

运行结果

请添加图片描述

​ 分析:a++是先执行b=a后在进行a=a+1.就相当与执行了注释之中的内容;++a是先执行a=a+1在执行c=a。

幂运算(使用math工具类)

public class Test {
    public static void main(String[] args) {
       double pow = Math.pow(2,3);//表示2的3次方
        System.out.println(pow);
    }
}

运行结果:

请添加图片描述

逻辑运算符

public class Test {
    public static void main(String[] args) {
        boolean a = true;
        boolean b = false;
        System.out.println(a&&b);//逻辑与运算,全真则真,有假为假
        System.out.println(a||b);//逻辑或运算,有真则真,全假为假
        System.out.println(!(a&&b));//非运算,取反
    }
}

请添加图片描述

  1. 注意短路运算
public class Test {
    public static void main(String[] args) {
        int c = 5;
        boolean d = (c<4) && (c++<4);
        System.out.println(d);
        System.out.println(c);
    }
}

请添加图片描述

​ &&运算规则是,若前者为假,则无需判断后者,直接输出假。如上面代码(c<4)&&(c++<4),先进行c<4的判断,c<4结果为假,所以d的值为false,并没有进行c++<4的判断,所以c=5,并没有变成6。

位运算

public class Test {
    public static void main(String[] args) {
        /*
        A = 0011 1100
        B = 0000 1101
      A&B = 0000 1100  每一位进行与运算
      A|B = 0011 1101  每一位进行或运算
      A^B = 0011 0001  异或:相同为0,相异为1
       ~B = 1111 0010  非:每一位取反
         */
    }
}
  1. 经典题型:如何快速算出2*8?
public class Test {
    public static void main(String[] args) {
        //<<左移  >>右移
        /*
         二进制       十进制
        0000 0000       0
        0000 0001       1
        0000 0010       2
        0000 0100       4
        0000 1000       8
         */
        System.out.println(2<<2);//将二进制0010的1左移2位变成二进制1000,转为十进制为8.
    }
}

扩展赋值运算

public class Test {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        a+=b; //a = a + b
        a-=b; //a = a - b
        System.out.println(a);
        //字符串连接符
        System.out.println("ab"+a+b);
        System.out.println(a+b+"ab");
    }
}

运行结果

请添加图片描述

​ 注意:字符串连接符,连接两个字符串时,若前者是字符串,则按字符串进行连接;若前者是运算,则先进行运算,运算结果与后者进行拼接。

优先级

​ 一元运算符>加减乘除>与或,相等,按位与或

请添加图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值