运算符 (Java)

发布于 2022年 05月 19日 13:05

基本介绍

  1. 算术运算符:+,-,*,/,%,++,--
  2. 赋值运算符:=
  3. 关系运算符:<,>,>=,<=,==,!=,instanceof
  4. 逻辑运算符:&&,||,!
  5. 位运算符:&,|,^,~,>>,<<,>>>
  6. 条件运算符:? :
  7. 扩展赋值运算符:+=,-=,*=,/=

实例展示

public class Operator {
    //base.Operator 运算符
    public static void main(String[] args) {
        //二元运算符
        //Ctrl+D:复制当前行到下一行
        int a=10;
        int b=20;
        System.out.println(a+b);
        System.out.println(a-b);
        System.out.println(a*b);
        System.out.println(a/b);//返回值:0
        System.out.println(a/(double)b);//返回值:0.5

        //强制转换
        long c=1234566788995L;
        int d=123;
        short e=10;
        byte f=8;
        System.out.println(c+d+e+f);//返回值为:Long类型
        System.out.println(d+e+f);//返回值为:Int类型
        System.out.println(e+f);//返回值为:Int类型
        System.out.println((double)e+f);//返回值为:double类型

        //关系运算符返回值的结果:正确or错误    值为布尔值
        int x=10;
        int y=20;
        int z=21;
        System.out.println(x>y);//flase
        System.out.println(x<y);//true
        System.out.println(x==y);//flase
        System.out.println(x!=y);//true
        //取余,模运算
        System.out.println(z%x);//意义等于:21/10=2...1  结果为:1

        //++ -- 自增,自减 一元运算符
        int n=3;
        int m=n++;//执行完这行代码后,先给m赋值,然后在自增
        //n=n+1
        System.out.println(n);//返回值:4
        //n=n+1
        int h=++n;//执行完这行代码后,先自增,然后在给h赋值
        System.out.println(n);//返回值:5
        System.out.println(m);//返回值:3
        System.out.println(h);//返回值:5

        //幂运算 数学中的表示:2^3=2*2*2=8    很多运算,我们会使用一些根据类来操作!
        double pow = Math.pow(2, 3);
        System.out.println(pow);//返回值:8

        //逻辑运算符
        //与:&&    或:||    非(取反):!
        boolean t=true;
        boolean r=false;
        System.out.println("a&&b"+(t&&r));//逻辑与运算:两个变量都为真,结果才为true
        System.out.println("a||b"+(t||r));//逻辑或运算:两个变量有一个为真,则结果为真;两个都为假结果才是假
        System.out.println("!(a&&b)"+(!(t&&r)));//逻辑非运算:如果是真则变为假,如果是假则变为真

        //短路运算  &&
        int q=5;
        boolean w=(q<4)&&(q++<4);//前面(q<4)为假,所以(q++<4)不执行,被直接短路
        System.out.println(w);//返回值:false
        System.out.println(q);//返回值:5,未进行q++运算

        /*位运算
        A=0011 1100
        B=0000 1101
        --------------------
        A&B=0000 1100   //位对位,两个都是1,则输出1,其他输出0
        A|B=0011 1101   //位对位,两个都是0,则输出0,其他输出1
        A^B=0011 0001   //位对位,两个相同,则输出0,不相同输出1
        ~B=1111 0010    //位对位,取反

        面试题:2*8=16  2*2*2*2
        使用位运算   理由:效率极高!!!
        左移<<    *2
        右移>>    /2
         0000 0000  0
         0000 0001  1
         0000 0010  2
         0000 0011  3
         0000 0100  4
         0000 0101  5
         0000 0110  6
         0000 0111  7
         0000 1000  8
         0001 0000  16
         */
        System.out.println(2<<3);//2^3=16

        //字符串连接符:+  (面试题:下面两个输出有啥区别)
        int i=10;
        int j=20;
        System.out.println(""+i+j);//输出结果:1020;     理由:字符串后面的也会以字符串的形式输出
        System.out.println(i+j+"");//输出结果:30;       理由:字符串前面的不会以字符串的形式输出

        //三元运算符:? :
        //x?y:Z     如果x==true,则结果为y,否则结果为z
        int score=50;
        String type=score<60?"及格":"不及格";
        System.out.println(type);//输出结果为:不及格
    }
}

推荐文章