Java基础语法5-运算符

运算符

基本运算符(算术、赋值、关系、逻辑等)不再赘述

位运算符


位运算符&|^~<<>>

&

|

~

^异或

<<左移

>>右移

package main.java.operator;

public class Test1 {

    public static void main(String[] args) {
        /*
        A = 0011 1100
        B = 0000 1101
        -------------------
        A&B = 0000 1100
        A|B = 0011 1101
        A^B = 0011 0001
        ~B  = 1111 0010

        2*8怎样运算最快?
        2*8 = 16  2*2*2*2
        左移<<  相当于“*2”
        右移>>  相当于“/2”

         */
        System.out.println(2<<3);
    }
}

结果如图:

Java基础语法5-运算符_第1张图片

扩展运算符


+=-=/=*=

package main.java.operator;

public class Test2 {

    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);
    }
}

结果为:

Java基础语法5-运算符_第2张图片

其他类比。

字符串连接符 +

package main.java.operator;

public class Test3 {

    public static void main(String[] args) {

        int a = 10;
        int b = 20;

        System.out.println("" + a + b);//比较这两种方式的不同
        System.out.println(a + b + "");
    }
}

结果为:

Java基础语法5-运算符_第3张图片

如果字符串在前面,后面的自动转化为字符串类型,然后拼接在一起。

如果字符串在后面,前面的运算保持,再拼接字符串。

条件运算符

?:

package main.java.operator;

public class Test4 {

    public static void main(String[] args) {

        /*
        x ? y : z
        如果x == true,则结果为y,否则为z
         */

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

结果为:

Java基础语法5-运算符_第4张图片

运算符的优先级

Java基础语法5-运算符_第5张图片

补充:

//有long时,运算自动转换为long,没有long时所有非int类型都转为int类型进行计算,double同理
public static void main(String[]args){
    
    long a = 123123123123123123L;
    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
}

结果:

Java基础语法5-运算符_第6张图片

你可能感兴趣的:(Java基础语法5-运算符)