Java基础语法5-运算符

运算符

  1. 算数运算符

+、-、*、/、%、++、--

  1. 赋值运算符

=

  1. 关系运算符

>、<、>=、<=、==、!=、instanceof

  1. 逻辑运算符

&&、||、!

  1. 位运算符

&、|、^、~、>>、<<、>>>
了解Java中的byte

  1. 条件运算符

?:

  1. 扩展运算符

+=、-=、*=、/=

运算符的优先级,优先使用()

优先级 运算符 结合性
1 ()、[]、{} 从左到右
2 !、+、-、~、++、-- 从右到左
3 *、/、% 从左到右
4 +、- 从左到右
5 <<、>>、>>> 从左到右
6 <、<=、>、>=、instanceof 从左到右
7 !==、!= 从左到右
8 & 从左到右
9 ^ 从左到右
10 | 从左到右
11 && 从左到右
12 || 从左到右
13 ?: 从右到做
14 =、+=、-=、*=、/=、&=、 =、^=、~=、<<=、>>=、>>>=
package operator;

public class Demo01 {
    public static void main(String[] args) {
        // 二元运算符
        int a = 10;
        int b = 20;
        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计算即为long,有double计算即为double,否则都为int
        long h = 2311434132L;
        int i = 30;
        char j = 'A';
        byte k = 28;
        System.out.println(h+i+j+k);  // 2311434255
        System.out.println(i+j+k);  // 123
        System.out.println(j+k);  // 93

        // 关系运算符,与if搭配
        int aa = 10;
        int bb = 20;
        System.out.println(aa>bb);  // false
        System.out.println(aa<bb);  // true
        System.out.println(aa==bb);  // false
        System.out.println(aa!=bb);  // true

        // 取余,也叫模运算
        System.out.println(aa%bb);  // 10

        // ++ -- 自增,自减,一元运算符
        int x = 3;
        int y = x++;  // 先把3赋值给y,然后自加1,此时x=4
        int z = ++x;  // 先自加1,此时x=5,然后把5复制给z
        System.out.println(x);  // 5
        System.out.println(y);  // 3
        System.out.println(z);  // 5

        // 幂运算 2^3 2*2*2=8,使用工具类Math来计算
        double pow = Math.pow(2, 8);
        System.out.println(pow);  // 256.0

        // 逻辑运算符
        boolean b1 = true;
        boolean b2 = false;
        System.out.println(b1&& b2);  // false
        System.out.println(b1||b2);  // true
        System.out.println(!b1);  // false

        // 短路运算,如果&&左边已是false,则右侧不会执行,如果||左边已是true,右侧不会执行
        int m = 5;
        boolean kk = (m<4) && (m++<4);
        System.out.println(kk);  // false
        System.out.println(m);  // 5

        int p = 7;
        boolean gg = (p>3)||(p++>3);
        System.out.println(gg);  // true
        System.out.println(p);  // 7

        // 如何最快的计算2的3次方.左移乘2,右移除2
        int mr = 2 << 3;
        System.out.println(mr);  // 16

        // 扩展运算符
        int a1 = 10;
        int a2 = 12;
        a1 += a2;
        System.out.println(a1);  // 22
        a1 -= a2;
        System.out.println(a1);  // 10

        // 字符串连接符 +
        System.out.println(""+a1+a2);  // 1012
        System.out.println(a1+a2+"");  // 22
        System.out.println(a1+""+a2);  // 1012

        // 三元运算符
        // x ? y : z,如果x==true,则结果为y,否则为z
        boolean xl = 30 < 12;
        int bbx = xl ? 12 : 15;
        System.out.println(bbx);  // 15
    }
}

posted @ 2022-05-06 19:24  浅浅水声  阅读(58)  评论(0编辑  收藏  举报