运算符(operator)

重要的

  • 算术运算符:+ – * / % ++ —
    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   }}
     
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
//关系运算符返回的结果:正确,错误   布尔值        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类型  
//与 或 非        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  
   /*        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);  
//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,字符串在后面,会运算
     
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,字符串在后面,会运算

优先级

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

————————

important

  • 算术运算符:+ – * / % ++ —
    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   }}
     
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    }}
  • Assignment operator:=
  • 关系运算符:> < >= <= == != instanceof(面向对象时会讲) //关系运算符返回的结果:正确,错误   布尔值        int a = 10;        int b = 20;        int c = 21;        System.out.println(a>b);//false        System.out.println(a
//关系运算符返回的结果:正确,错误   布尔值        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类型  
//与 或 非        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类型

Unimportant

  • Bitwise operators: & ^ ~ > < < > > (understand!!!)
    / * a = 0011 1100; b = 0000 1101; a & B 0000 1100 / / if the upper and lower parts are the same as 1, it will be 1, and the rest will be 0. A|b 0011 1101 / / if the upper and lower parts are the same as 0, it will be 0, and the rest will be 1. A ^ B 0011 0001 / / the same 0 but different 1 ~ B 1111 0010 / / reverse 2 * 8 = 16 2 * 2 * 2 * 2. High efficiency!!! < < > > move left move right < < move left * 2 > > move right / 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);// sixteen
   /*        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
  • Conditional operator:?: (for laziness)
    //x ? Y: Z / / if x is true, the result is y; otherwise, the result is Z} int score = 20;        String type = score < 60 ? "Fail": "pass"// You must master / / or use the if statement to create system out. println(type);
//x ? y : z        //如果x为真,则结果为y,否则结果为z        int score = 20;        String type = score < 60 ?"不及格":"及格";//必须掌握        //也可以用if语句        System.out.println(type);
  • Extended assignment operator: + = = = * = / = (lazy)
    int a = 10;        int b = 20;        //a += b;// a = a + b;        //a -= b;// a = a – b;        System. out. println(a); / / string connector + system out. println(a+b);// 30        System. out. println(“”+a+b);// 1020, the string is in the front and will be spliced into system out. println(a+b+””);// 30. The string is in the back and can operate
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,字符串在后面,会运算

priority

Add parentheses (), be sure to mark clearly!!!