文章目录
一、算术运算符
| 算术运算符 | 意义 | 
|---|---|
| + | 相加 | 
| – | 相减 | 
| * | 乘积 | 
| / | 商 | 
| % | 求余数(求模) | 
| ++ | 自加1 | 
| -- | 自减1 | 
public class Test1 {
    public static void main(String[] args) {
        int a = 11;
        int b = 2;
        System.out.println(a + b);
        System.out.println(a - b);
        System.out.println(a * b);
        System.out.println(a / b);
        System.out.println(a % b);
        System.out.println(++a);
        System.out.println(b--);
        System.out.println(b);
        System.out.println(10.2 % 2.0);
    }
}
其结果如下:
 
二、关系运算符
| 关系运算符 | 意义 | 
|---|---|
| > | 大于 | 
| >= | 大于等于 | 
| < | 小于 | 
| <= | 小于等于 | 
| == | 等于 | 
| != | 不等于 | 
public class Test2 {
    public static void main(String[] args) {
        int a = 10;
        int b = 10;
        System.out.println(a > b);
        System.out.println(a >= b);
        System.out.println(a < b);
        System.out.println(a <= b);
        System.out.println(a == b);
        System.out.println(a != b);
    }
}
注意:所有关系运算符的运算得到的结果都是布尔类型,为 true 或 false。
以上结果为:
 
 
 
三、逻辑运算符
注意:所有逻辑运算符两边要求都为布尔类型,并且最终结果也为布尔类型,当然 & 与 | 两边跟整数时执行的是位运算,到位运算再讲解。
| 逻辑运算符 | 意义 | 
|---|---|
| & | 逻辑与(并且) | 
| | | 逻辑或(或者) | 
| ! | 逻辑非(取反) | 
| && | 短路与 | 
| || | 短路或 | 
1. 逻辑与 &
public class Test3 {
    public static void main(String[] args) {
        int a = 20;
        int b = 10;
        int c = 5;
        System.out.println(a > b & b > c);
        System.out.println(a < b & a > c);
        System.out.println(a ==b & a <= c);
    }
}
其结果为:
 
2. 逻辑或 |
public class Test3 {
    public static void main(String[] args) {
        int a = 20;
        int b = 10;
        int c = 5;
        System.out.println(a > b | b > c); //true | true
        System.out.println(a < b | a > c); //false | true
        System.out.println(a == b | a <= c); // false | false 
    }
}
其结果为:
 
3. 逻辑非 !
public class Test3 {
    public static void main(String[] args) {
        int a = 20;
        int b = 10;
        System.out.println(!true);
        System.out.println(!(a < b));
    }
}
其结果为:
 
4. 短路与 &&
public class Test3 {
    public static void main(String[] args) {
        int a = 20;
        int b = 10;
        int c = 5;
        System.out.println(++a < b && (b + 10) > c); //false && true
        System.out.println(a);
        System.out.println(b);
    }
}
我们来看看结果:
  从 a 和 b 的结果可以看到,当 表达式1 为false时,表达式2 就不执行了。当表达式1 为true 时,表达式2 才会执行。
从 a 和 b 的结果可以看到,当 表达式1 为false时,表达式2 就不执行了。当表达式1 为true 时,表达式2 才会执行。
 
5. 短路或 ||
public class Test3 {
    public static void main(String[] args) {
        int a = 20;
        int b = 10;
        int c = 5;
        System.out.println(++a > b || (b + 10) < c); //true && false
        System.out.println(a);
        System.out.println(b);
    }
}
其结果为:
 
 
四、位运算符
1. 按位与 &
这里我们直接上例题。
public class Test4 {
    public static void main(String[] args) {
        byte a = 6;
        byte b = 3;
        System.out.println(a & b);
    }
}
 我们来看看结果:
我们来看看结果:
 
2. 按位或 |
例:
public class Test4 {
    public static void main(String[] args) {
        byte a = 6;
        byte b = 1;
        System.out.println(a | b);
    }
}

 
3. 按位取反 ~
例:
public class Test4 {
    public static void main(String[] args) {
        int a = 0x00000005;
        System.out.printf("%x\n", ~a);
    }
}

 
4. 按位异或 ^
- 整数1 ^ 整数2,对两个二进制数进行异或,不同为1, 相同为0。
public class Test4 {
    public static void main(String[] args) {
        byte a = 10;
        byte b = 5;
        System.out.println(a ^ b);
    }
}

 
五、赋值运算符

 这里我们可以看到错误了,因为a + 1为 int 类型,那我们再使用 += 看看
 当使用 += 时并没有报错,因为使用 += 其含有强转转换类型,a += 1,其因为 a = (int)(a+1)。所以也就说其类型不会发生改变(上面第2规则),但可能会损失精度。
当使用 += 时并没有报错,因为使用 += 其含有强转转换类型,a += 1,其因为 a = (int)(a+1)。所以也就说其类型不会发生改变(上面第2规则),但可能会损失精度。
其他类型都是一样的,可以安装 += 推出,这里博主就不多叙述了。
 
六、条件运算符(三目运算符)
例:
public class Test5 {
    public static void main(String[] args) {
        int a = 10;
        int b = 5;
        int ret = a > b ? a : b;
        System.out.println(ret);
    }
}
ret的结果为:
 
七、移位运算符
1. 左移<<
public class Test6 {
    public static void main(String[] args) {
        int a = 1;
        a = a << 1;
        System.out.println(a);
    }
}

2. 右移 >>
例:
public class Test6 {
    public static void main(String[] args) {
        int a = 2;
        a = a >> 1;
        System.out.println(a);
    }
}
根据左移可知右移的结果为1
 负数进行右移:
负数进行右移:
public class Test6 {
    public static void main(String[] args) {
        int a = -2;
        a = a >> 1;
        System.out.println(a);
    }
}


3. 无符号右移 >>>
- 最右侧位不要了, 最左侧补0,与右移 >>不同的是无符号右移不考虑符号位,都是补0。
例:
public class Test6 {
    public static void main(String[] args) {
        int a = -2;
        a = a >>> 1;
        System.out.println(a);
    }
}

 
好了,Java的运算符就讲到这里了,喜欢的可以点个赞哦。如有发现错可以私聊博主进行修改,多谢各位大佬 ^ _ ^.









