java07_java运算符:

java运算符:

1,基本运算符:加减乘除自加自减,+-*/,++,--

public class Day1 {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        int c = 30;
        int d = 40;
        //加减乘除,对两个变量进行操作的运算符称为  二元运算符。
        System.out.println(a+b);//30
        System.out.println(a-b);//-10
        System.out.println(a*b);//200
        System.out.println(a/b);//0
        System.out.println(a/(double)b);//0.5

        System.out.println("**************");
        int num1 = 1;
        int num2 = num1++;
        int num3 = ++num1;
        System.out.println(num1);//3
        System.out.println(num2);
        //1  ++在变量num1的后面,先执行num2 = num1 ,然后再执行num1 = num1+1,num2 = 1,num1 = 2;
        System.out.println(num3);
        //3  ++在变量num1的前面,先执行num1 = num1+1,num1 = 3 ,然后再执行num3 = num1 = 3;
        System.out.println("**************");
        int num4 = 3;
        int num5 = num4--;
        int num6 = --num4;
        System.out.println(num4);//1
        System.out.println(num5);//3
        System.out.println(num6);//1
        System.out.println("**************");
                                            //数学工具类
        System.out.println(Math.pow(2,3));  // 返回的数字为double类型。
    }
}

2,逻辑运算符:与或非 ,&&, ||, !

public class Day3 {
    public static void main(String[] args) {
        //与(and),或(or),非(取反)
        //&&,      ||,     !
        boolean a = true;
        boolean b = false;

        System.out.println(a&&b);//false
        System.out.println(a||b);//true
        System.out.println(!(a&&b));//true
        System.out.println("#########");

        //短路运算
        int c = 5;
        System.out.println((c>10)&&(c++<4));//false
        System.out.println(c );//5

        // 这里就是一个短路运算,
        // 在&&与运算里面,在确定第一个条件为假的时候,忽略第二个条件,直接得出false结果,
        // 后面的运算不予执行,因此c++被忽略,c依然是5。
        System.out.println("#########");
    }
}

3,位运算

public class Day4 {
    public static void main(String[] args) {
        //位运算
        int A = 0b00111100;//60
        int B = 0b00001101;//13

        System.out.println(A&B);
        //A   = 0b00111100
        //B   = 0b00001101   ,& 指的是二进制位上,当两个数都为1的时候,结果在这一位上才取1.
        //A&B = 0b00001100   , 12

        System.out.println(A|B);
        //A   = 0b00111100
        //B   = 0b00001101   ,| 指的是二进制位上,当两个数有一个为1的时候,结果在这一位上就取1.
        //A&B = 0b00111101   ,61

        System.out.println(A^B);
        //A   = 0b00111100
        //B   = 0b00001101   ,^ 指的是二进制位上,当两个数相同的时候,结果取0,当两个数结果不相同的时候,结果取1.
        //A&B = 0b00110001   ,49

        System.out.println(~B);
        //B   = 0b00001101   ,~ 指的是二进制位上, 对后面的数取反。
        //A&B = 0b11110010   ,-14

        //对2*8进行快速运算         (<<,>>)左移,右移。
        System.out.println(2<<3);//16
        //0b0000 0010 左移三位,得到0b0001 0000.
        System.out.println(2>>1);//1
        //0b0000 0010 右移一位,得到0b0000 0001.

        //位运算是与底层二进制打交道的,速度快,效率高。
        
    }
}

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

public class Day5 {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        System.out.println(a+=b);
        // a+=b;
        // a = a+b;
        System.out.println(a-=b);
        // a-=b;
        // a = a-b;
        System.out.println("************");
        //字符串连接符 +
        System.out.println(a+b);             //30
        System.out.println(""+a+b);          //1020,加法里出现字符串的时候,同化后面各项。
        System.out.println( a+b+""+a+b);     //301020,字符串+前面的还是正常运算,字符串+后面的被同化为字符串。
        System.out.println((a+b)+"*"+(a+b)); //30*30,()可以提高运算的优先级。
    }
}

5,条件运算符:三元运算符 ?:

public class Day6 {
    public static void main(String[] args) {
        int score = 80;
        String type =  score <60 ?"不及格":"及格";
        //x?y:z
        //如果x为true,结果为y,否则为z。
        System.out.println(type);
    }
}

重点:

  1. 搞清楚++,--因位置的前后导致的计算顺序的不同。
  2. 了解Math工具类的一些功能。
  3. 理解短路运算。
  4. 适当的使用位运算,可以提高效率。
  5. 当输出结果里面进行加法运算,并且存在字符串的时候,分清规律。

参考资料:狂神说JavaJava零基础学习视频通俗易懂

posted @ 2021-02-27 21:52  猪无名  阅读(47)  评论(0编辑  收藏  举报