Java 运算符

运算符

  • 算术运算符 + - * / %(模) ++ --

  • 赋值运算符 =

  • 关系运算符 > < >= <= ==(等于) !=instanceof(不等于)

  • 逻辑运算符 && || !

  • 位(二进制01)运算符 & | ^ ~ >> << >>>(了解!!!)

  • 条件运算符 : ?

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

算术运算符

//算术运算符
        long a = 1231235234523L;
        int b = 123;
        short c = 10;
        byte d =7;
        double e= 123525124.0d;

        System.out.println(a+b+c+d);        //Long,只要有一个long类型就是long
        System.out.println(b+c+d);          //Int,没有long 都为int
        System.out.println(c+d);            //Int

        System.out.println((double)c+d);    //有double 类型就是double
        System.out.println(d+e);
        System.out.println(b*e);

        System.out.println(a/c);            //四舍五入  int
        System.out.println(b/c);            //四舍五入  int

        System.out.println(c%d);            //模   取余数

// ++ 自增      一元运算符
        int a = 3;
        int b = a++;    //执行完这行代码后,先给b赋值,再自增
        //a++  a = a + 1
        //System.out.println(a);
        //++a   a = a + 1;
        int c = ++a;      //执行这行代码前,先自增,在赋值
        //System.out.println(c);

        System.out.println(a);
        System.out.println(b);
        System.out.println(c);

// -- 自减
        int d = 10 ;
        int e = d--;
        // d-- = d - 1 ,先赋值,在自减
        //System.out.println(e);
        int f = --d;    // --d = d - 1 ,先自减,在赋值
        //System.out.println(f);

        System.out.println(d);
        System.out.println(e);
        System.out.println(f);

//幂运算   很多运算,使用一些工具类去操作
        double pow = Math.pow(2,3);
        System.out.println(pow);

关系运算符

  //关系运算符 返回的结果:正确,错误   布尔值
        int a = 10;
        int b = 20;
        int c = 21;

        //取余 模运算
        System.out.println(c%a);    // c/a 21/10=2...1

        System.out.println(a>b);
        System.out.println(a<b);
        System.out.println(a==b);
        System.out.println(a!=b);

逻辑运算符

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

        //短路运算,    与  两个都为真,返回true,但是第一个就是假,就不执行后面的代码了
        int c = 5 ;
        boolean d = (c<4)&&(c++<4);
        System.out.println(d);
        System.out.println(c);

位运算

 /*
        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       ~ 非 取反    与B对应位完全相反


        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 1000   8
        0001 0000   16
        0010 0000
         */
        System.out.println(2<<3);
        System.out.println(32>>3);

条件运算符

//三元运算符
        //条件运算符  ? :
        // x ? y : z
        // 如果x==true,则结果为y,否则结果为z

        //int score = 80;
        int score = 50;
        String type = score <60 ?"不及格":"及格";
        System.out.println(type);

扩展运算符

int a = 10;
        int b = 20;

        a+=b;   //a = a+b
        System.out.println(a);
        a-=b;   //a = a-b
        System.out.println(a);
		a*=b;   //a = a*b
        System.out.println(a);
        a/=b;   //a = a/b
        System.out.println(a);

        //字符串连接符  + , String
        System.out.println(a+b);
        System.out.println(""+a+b);   //字符串在前面,会拼接
        System.out.println(a+b+"");   // 字符串在后面,会运算
posted @ 2021-10-13 18:08  简单易  阅读(27)  评论(0)    收藏  举报