--运算符

目录

概述

Java语言支持如下运算符

算数运算符

算数运算符之自增 自减

关系运算符

逻辑运算符

位运算符

扩展赋值运算符

条件运算符(三元运算符)

运算符速查表

优先级控制


概述

运算符 用于连接 表达式 的 操作数,并对操作数执行运算。 例如,表达式num1+num2,其操作数是num1和num2,运算符是”+”

Java语言支持如下运算符

在java语言中,运算符可分为5种类型:

  1. 算数运算符: +,-,*,/,%,++,--

  2. 赋值运算符: =

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

  4. 逻辑运算符:&&, ||, !

  5. 位运算符:&, |, ^, ~, >>, <<, >>>

扩展:

  1. 条件运算符: ?, :

  2. 扩展赋值运算符:+=,-=,*=,/=

  • 根据操作数的不同,运算符又分为3种

    • 单目(元)运算符:单目运算符只有一个操作数

    • 双目(元)运算符:双目运算符有两个操作数

    • 三目(元)运算符:三目运算符则有三个操作数(条件运算符)

  • 位运算符涉及到二进制位的运算,在java 程序中运用不是很多。

算数运算符

package poerator;
​
public class Basics07 {
    public static void main(String[] args) {
        //二元运算符
        int a = 10;
        int b = 20;
        int c = 21;
        System.out.println(a+b);// 30   + 相加
        System.out.println(a-b);// -20  - 相减
        System.out.println(a*b);// 200  * 相乘
        System.out.println(a/b);//0  因为a/b 内存溢出了 所以为0
        System.out.println(a/(double)b);//0.5   / 相除
        System.out.println(c%a);//1     % 取余,模运算    c%a c/a=2.....1
    }
}

算数运算符之自增 自减

  • 一元运算符: ++ 自增 -- 自减

    a++     等价于:    a=a+1;  
package poerator;
public class Basics08 {
    public static void main(String[] args) {
        //  a++     a=a+1;
        //输出结果不同是因为时机不同
        int a =1;
        int b = a++;//执行完这行代码:
        //先给b赋值
        //b=a;//b=1;
        //再自增
        //a=a+1;//a=2
        System.out.println(a);//2
        System.out.println(b);//1
        //a=a+1;
        int c = ++a;//执行完这行代码
        //先自增
        //a=a+1;//3
        //再给c赋值
        //c=a;//3
        System.out.println(a);//3
        System.out.println(b);//1
        System.out.println(c);//3
//幂运算   2^3=8
        double pow=Math.pow(3,3);//幂运算
        System.out.println(pow);
        double w =Math.abs(-2);//绝对值
        System.out.println(w);
    }
}

关系运算符

关系运算符返回结果: 正确 错误 布尔型 同常跟if一起使用

package poerator;
​
public class Basics0703 {
    public static void main(String[] args) {
        // 关系运算符返回结果: 正确    错误  布尔型
        // 同常跟if一起使用
        int a =10;
        int b =20;
        System.out.println(a>b);//false     a不大于b
        System.out.println(a<b);//true      a小于b
        System.out.println(a==b);//false    a不等于b
        System.out.println(a!=b);//true     a不等于b
        int c =21;
    }
}

逻辑运算符

&&(与)           ||(或)            !(非)
  • a&&b : 两个变量都为真,结果才为真;

  • a||b : 两个变量有一个为真,则结果为真

  • !(a&&b): 如果为真,则为假。如果为假,则为真

package poerator;
public class Basics09 {
    public static void main(String[] args) {
        boolean a = true;
        boolean b = false;
        System.out.println("a&&b:"+(a&&b));//false
        System.out.println("a||b:"+(a||b));//true
        System.out.println("!(a&&b):"+!(a&&b));//true

短路运算:

package poerator;
​
public class Basics09 {
    public static void main(String[] args) {
        int c =5;
        boolean d = (c<4)&&(c++<4);// 因为逻辑与运算,只要有一个假就会输出结果:假 而当它得到c<4是假的,就不会去运行c++<4
        System.out.println(d);//false
        System.out.println(c);//5
        int e = 5;
        boolean f = (e>4)||(e--<4);// 因为逻辑或运算,只要有一个真就会输出结果:真 而当它得到c>4是真的,就不会去运行c--<4
        System.out.println(e);//true      // 俗称短路运算
        System.out.println(f);//5
    }
​
}

位运算符

& (与) |(或) ^(异或) ~(取反) <<(左移) >>(右移)

package poerator;
​
public class Basics0902 {
    public static void main(String[] args) {
    /*  位运算符    效率极高
    & (与)   |(或)  ^(异或)    ~(取反)  <<(左移)   >>(右移)
        A = 0011 1100
        B = 0000 1101
-----------------------------------------------------------------------------
        A&B = 0000 1100     任何二进制和0进行&运算,结果为0;和1进行&运算,结果是原值
        A|B = 0011 1101     任何二进制和0进行|运算,结果是原值;和1进行|运算,结果为1
        A^B = 0011 0001     任何相同二进制进行^运算,结果为0;不相同进行^运算,结果为1
         ~B = 1111 0010
------------------------------------------------------------------------------
        <<  >>  引出面试题
        面试题:2*8怎么运算最快   2*8=16  2*2*2*2=16
        <<  数字 *2
        >>  数字 /2
        0000 0000   0
        0000 0001   1
        0000 0010   2
        0000 0011   3
        0000 0100   4
        0000 1000   8
        0001 0000   16
     */
        System.out.println(2<<3);//左移三位
    }
}

扩展赋值运算符

package poerator;

public class Basics10 {
    public static void main(String[] args) {
        int a = 20;
        int b = 10;
        int c = a+=b;// a+=b    a=a+b
        int d = a-=b;// a-=b    a=a-b
        int e = a*=b;// a*=b    a=a*b
        int f = a/=b;// a/=b    a=a/b
        System.out.println(c);//30
        System.out.println(d);//10
        System.out.println(e);//200
        System.out.println(f);//2
        // 字符串连接符   +   当+两侧有String类型 这个+就会变成连接符,并且会把后面的+也变成连接符
        System.out.println(""+a+b);
        System.out.println(a+b+" "+a+b+":");
    }
}

条件运算符(三元运算符)

package poerator;

public class Basics1002 {
    public static void main(String[] args) {
        // 三元运算符
        // x ? y :z
        //如果x==true,则结果为y,否则结果为z
        int score =80;
        String type = score >60 ? "及格" : "不及格";//必须掌握
        System.out.println(type);//及格
    }
}

运算符速查表

优先级控制

当一个表达式包含多个运算符时,就需要考虑运算符的优先级,优先级高的运算符先参与运算,优先级低的运算符后参与运算。在实际的开发中,不需要特别去记忆运算符的优先级别,也不要刻意的使用运算符的优先级别,对于不清楚优先级的地方使用小括号辅助进行优先级管理

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值