Java_运算符

一、算术运算符

加 减 乘 除 取余 自增 自减(+ - * / % ++ --)

前缀自增自减 ++a, --a 先进行自增或者自减运算,再进行表达式运算。
后缀自增自减 a++, a--先进行表达式运算,再进行自增或者自减运算。

public class AddSub {
    public static void main(String [] args){
        int i =5, j = 8;
        int a = i++; //  a=i=5 ; i= i+1. 结果为 a=5; i=6
        int b = --j; //  j =j-1; b=j=6. 结果为 b=7; j=7

        System.out.println("a:" + a + " , b:" +b);
        System.out.println("i:" + i + " , j:" +j);

        /*结果:
           a:5 , b:7
           i:6 , j:7
        */
    }
}

二、关系运算符

大于 小于 大于等于 小于等于 恒等于 非等于 (> < >= <= == !=)

三、位运算符

int i =5, j = 8; // 二进制 i = 0101 ; j = 1000
System.out.println(i & j); // 同位都为 1 则 1, 否为0 . 结果:0000 -> 0
System.out.println(i | j); // 同位都为 0 则 0, 否为1 . 结果:1101 -> 8+4+1=13
System.out.println(i ^ j); // 同位相同   则 0, 否为1 . 结果:1101 -> 8+4+1=13
System.out.println(  ~ i); // 按位取反,0变为1, 1变0 . 结果:-1010 -> -8-(-2)=-6 (默认为+ 取反为-)
System.out.println(i >>2); // 按位右移 2 位            结果:0001 -> 1
System.out.println(i <<2); // 按位左移 2 位            结果:0001 0100 -> 16+4=20

实例

用最有效的方法算出2的3次方的结果

// 左移多少位就相当于乘以2的多少次方, 右移则是除以2的多少次方
System.out.println(1<<3); // 相当于 1*2^3 = 8
System.out.println(2<<3); // 相当于 2*2^3 = 16
System.out.println(5<<1); // 相当于 5*2^1 = 10
System.out.println(89>>1); // 相当于 89/2^1 = 44 (向下取整)
System.out.println(-3>>1); // 相当于 -3/2^1 = -2  
System.out.println(-3>>3); // 相当于 -3/2^3 = -1 

四、赋值运算符

基本是算术运算符、位运算符与等于号的组合。-= += *= /= ......

五、条件运算符

也称三目运算符(?:)
语法格式:variable x = (expression) ? value if true : value if false

六、instanceof 运算符

用于操作对象实例,检查该对象是否是一个特定类型(类类型或接口类型)。
语法格式:( Object reference variable ) instanceof (class/interface type)

七、逻辑运算符

短路与,短路或 && ||

a && b 当a和b同时都为真时,则结果为真。(只要a不满足条件,则不判断b)
a || b 当a或b有一为真时,则结果为真。(只要a满足条件,则不判断b)

扩充: a & ba | b 会对所有条件都进行判断

原文地址:https://www.cnblogs.com/zeo-to-one/p/9332453.html