运算符


重要的

  • 算术运算符:+ - * / % ++ --

    package operator;
    ?
    public class Demo03 {
       public static void main(String[] args) {
           //++   --   自增,自减   一元运算符
    ?
           int a = 3;
    ?
           int b = a++;//执行完这段代码后,先给b赋值,再自增
           //隐藏了a = a + 1;这一句代码
    ?
           System.out.println(a);//4
    ?
           //隐藏了a = a + 1;这一句代码
           int c = ++a;//执行完这段代码前,先自增,再给c赋值
    ?
           System.out.println(a);//5
           System.out.println(b);//3
           System.out.println(c);//5
    ?
    ?
           //幂运算 2^3 2*2*2 = 8
           double pow = Math.pow(2,3);
           System.out.println(pow);//8.0
      }
    }
    ?

     

  • 赋值运算符:=

  • 关系运算符:> < >= <= == != instanceof(面向对象时会讲)

    //关系运算符返回的结果:正确,错误   布尔值
    ?
           int a = 10;
           int b = 20;
           int c = 21;
    ?
           System.out.println(a>b);//false
           System.out.println(a<b);//true
           System.out.println(a==b);//false
           System.out.println(a!=b);//true
           System.out.println(c%a);//1(取余,也叫模运算)

     

  • 逻辑运算符:&& || !

    //与 或 非
           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
    ?
           //短路运算
           int c = 5;
           boolean d = (c<4)&&(c++<4);
           System.out.println(d);//false
           System.out.println(c);//5,不会输出6,(c<4已经是错误的,短路,不会往下执行)

     

    //二元运算符
           //ctrl + d:复制当前行到下一行
           int a = 10;
           int b = 20;
           int c = 25;
           int d = 25;
           System.out.println(a+b);//30
           System.out.println(a-b);//-10
           System.out.println(a*b);//200
           System.out.println(a/(double)b);//0.5
    long a = 12521512255L;
           int b = 234;
           short c = 10;
           byte d = 1;
           System.out.println(a+b+c+d);//12521512500   long类型
           System.out.println(b+c+d);//245             int类型
           System.out.println(c+d);//11               int类型

     

不重要的

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

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

     

  • 条件运算符:?:(偷懒用的)

    //x ? y : z
           //如果x为真,则结果为y,否则结果为z
    ?
           int score = 20;
           String type = score < 60 ?"不及格":"及格";//必须掌握
           //也可以用if语句
           System.out.println(type);

     

  • 扩展赋值运算符:+= == *= /=(偷懒用的)

    int a = 10;
           int b = 20;
    ?
           //a += b;//a = a + b;
           //a -= b;//a = a - b;
           System.out.println(a);
    ?
           //字符串连接符 +
           System.out.println(a+b);//30
           System.out.println(""+a+b);//1020,字符串在前面,会拼接
           System.out.println(a+b+"");//30,字符串在后面,会运算

     

优先级

加括号(),一定要标注的明明白白!!!