基本运算符

运算符

  • 算数运算符 +、-、*、/、%(取余(模))、++、--、

  • 赋值运算符 = (A=10)把10赋值给10

  • 关系运算符 >, <, >= ,<=, ==(java中的等于是用双等于), !=instanceof !=(不等于)

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


  • 位运算符 &,|, ^, ~, >>, <<, >>> (了解!!!)

  • 条件运算符 ?:

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

    优先级用()作为隔离

    +-*/运算符

    package operator;
    
    public class Demo01 {
        public static void main(String[] args) {
            //二元运算符
            int a = 10;
            int b = 20;
            int c = 25;
            int d = 25;
            System.out.println(a+b);
            System.out.println(a-b);
            System.out.println(a*b);
            System.out.println(a/(double)b);   //要把int转成double  否则int自动舍去小数
        }
    }
    

    参数运算结果转换

    package operator;
    
    public class Demo02 {
        public static void main(String[] args) {
            long a = 123123123;
            int  b = 123;
            short c= 10;
            byte d = 8;
            System.out.println(a+b+c+d); //long
            System.out.println(b+c+d);//int
            System.out.println(c+d);//int
            //运算中多个参数中,有一个参数为long ,那么结果也为long,如果没有long时 ,结果也为int类型
        }
    }
    
    

    关系运算符

    package operator;
    
    public class Demo03 {
        public static void main(String[] args) {
            int a =10;
            int b =20;
            int c =21;
            System.out.println(a>b);
            System.out.println(a<b);
            System.out.println(a==b);
            System.out.println(a!=b);
            System.out.println(c%a);//c除以a  21除以10   =2   余1   //取余  也就是模运算
        }
        //关系运算符返回的结果  :正确  ,错误   ,布尔值
    
    

}

## 自增自减

```java
package operator;

public class Demo04 {
    public static void main(String[] args) {
        //++ 自增  --自减      一元运算符
        int a = 3;
        System.out.println(a);
        int b = a++;//执行完这行代码后,先给b赋值,赋完之后在自增
        // a++  a=a+1
        System.out.println(a);
        int c = ++a;//执行完这行代码前,先自增,再给b赋值
        // ++a
        System.out.println(c);

        //幂运算  2^3  2*2*2  =8   很多运算 ,我们会使用一些工具类来操作
        double pow = Math.pow(2, 3);
        System.out.println(pow);
        double pow1 = Math.pow(3, 9);
        System.out.println(pow1);

    }
}

逻辑运算与短路运算

package operator;
//逻辑运算符
public class Demo05 {
    public static void main(String[] args) {
        //与(and) 或(or) 非(取反)
        boolean a = true;
        boolean b = false;
        System.out.println("a && b:"+(a && b));//逻辑与运算:两个变量都为真,结果才为true
        System.out.println("a || b:"+(a || b));//逻辑或运算:两个变量有一个为真,则结果才为true
        System.out.println("!(a && b):"+!(a && b));//如果是真,则变为假,如果是假则变为真
        //短路运算
        int c = 5;
        boolean d = (c<4)&&(c++<4);
        System.out.println(d);      //短路运算,C<4只会计算到这里,前面如果为假,则后面的C自增则不会计算所以最后C的结果还是5
        System.out.println(c);
    }
}

位运算符

package operator;

public class Demo06 {
    public static void main(String[] args) {
        /*
        A= 0011 1100
        B= 0000 1101
        ---------------------------------------------------------------
        A&B =0011 1100  A或B  00相同则取0    10 则取1   11取1    或
        A|B =0011 1101  A与B  00取0  10取1   11取1   01取1      与
        A^B =0011 0001  A亦或B  00取0  10取1  11取0  01取1      亦或
        ~B  =1111 0010  非B  取反即可  1取0  0取1               非
       -----------------------------------------------------------------
       拓展题目
       2*8如何运算最快
       不是直接2*8  而是 2*2*2*2  这样会直接使用位运算,更加快速,效率极高。
       -----------------------------------------------------------------
        <<左移    >>右移        左移相当于把数字乘以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 operator;

public class Dome07 {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        a+=b;  //a =  a+b
        System.out.println(a);
        a-=b;  //a =  a-b
        System.out.println(a);

        //字符串连接符     +
        // 在+号运算符两侧如果有String(字符串类型)则会把其他操作数都转换成String再进行 连接
        System.out.println(""+a+b);
        System.out.println(a+b+"");//与上面的区别 ,如歌+号在字符串后面则会进行运算
    }
}

条件运算符

package operator;

public class Demo {
    public static void main(String[] args) {
        // X ?  Y:Z
        //如果X == true   则结果为Y  否则结果为Z
        int score = 80;
        String type = score < 60 ?"不及":"及格";
        System.out.println(type);
        //必须掌握

    }
}
posted on 2021-08-05 19:04  云朵落满枝丫  阅读(82)  评论(0编辑  收藏  举报