美文网首页
java基础-2-运算符-学习笔记

java基础-2-运算符-学习笔记

作者: 外星派来拯救coder的鼓励师 | 来源:发表于2019-03-18 16:56 被阅读0次

    运算符

    java提供丰富运算符,大概分为算术数运算符关系运算符位运算符逻辑运算符赋值运算符

    算术运算符

    该运算符就在数学上的应用一样

    操作符 描述 例子
    + 加法 A+B
    - 减法 A-B
    * 乘法 A*B
    / 除法,取商 A/B
    % 取余数 A%2
    ++ 自增 A++,++A
    -- 自减 C--,--C

    注意: A++,++A的区别

    例子:

    int a =3;
    int b = a++; //实际打印b=3
    //第一次打印a=4
    int c = ++a; //实际打印c=4
    //第二次打印a=5
    

    解析:
    运算拆分

    int a =3
    int b =a++;
    a = a+1 =4
    b = 4;
    a = 4;
    

    ++a,--a,先进行自增(自减)运算,在进行表达式运算

    a++,a--,先进行表达式运算,再进行自增(自减)运算

    关系运算符

    操作符 描述 例子
    == 检查两个值是否相等,是返回true,反之返回false A==B
    != 检查两个值,不相等则返回true,反之返回false A!= B
    > 检查左边值是否大于右边值,是的返回为true,反之返回false A>B
    < 检查左边值是否小于右边值,是的话返回为true,反之返回false A<B
    >= 检查左边值是否大于等于右边值,是返回为true,反之返回false A>=B
    <= 检查左边值是否小于等于右边值,是返回为true,反之返回false A<=B

    位运算符

    java定义的位运算符,适用于byte,short,char,int,long等类型
    位运算符在所有的位上,并且按位运算
    举例:A=60,B=13,以下用二进制表示

    A = 0 0 1 1 1 1 0 0 
    B = 0 0 0 0 1 1 0 1 
    
    A&B = 0 0 0 0 1 1 0 0 
    A|B = 0 0 1 1 1 1 0 1 
    A^B = 0 0 1 1 0 0 0 1 
    ~A  = 1 1 0 0 0 0 1 1 
    A<<2= 1 1 1 1 0 0 0 0 
    A>>2=         1 1 1 1 
    A>>>2=0 0 0 0 1 1 1 1 
    
    操作符 描述 例子
    & 相对应位均为1的话,则为1,反之为0 A&B
    | 相对应位均为0的话,则为0,反之为1 A|B
    ^ 相对应位均相等的话,则为0,反之为1 A^B
    ~ 取反运算符,1变0,0变1 ~a
    << 2 左边的值的位向左移动2位 A<<2
    >>2 左边的值的位向右移动2位 A>>2
    >>>2 左边的值的位向右移动2位,移动均以0补充 A>>>2

    逻辑运算符

    操作符 描述
    && 与运算符,两者为真,才返回true,反之false
    | | 或运算符,两者其一为真,即返回true,反之为false
    ! 非运算符,将操作值的逻辑状态反转,true变false,false变true

    赋值运算符

    操作符 描述 例子
    = 将右边值赋给左边值 C=A+B
    += 将左值加上右值重新赋给左边值 C+=A C=C+A
    -= 将左值减去右值重新赋给左边值 C-=A C=C-A
    *= 将左值乘于右值重新赋给左边值 C*=A C=C*A
    /= 将左值除于右值得到商重新赋给左边值 C/=A C=C/A
    %= 将左值除于右值得到余数重新赋给左边值 C%=A C=C%A
    <<= 将左值的位向左移右操作值位数重新赋给左边值 C<<=2 C=C<<2
    >>= 将左值的位向右移右操作值位数重新赋给左边值 C>>=2 C=C>>2
    &= 按照按位与赋值 C&=2 C=C&2
    ^= 按照按位异或赋值 C^=2 C=C^2
    | = 按照按位或赋值 C | =2 C=C | 2

    三目运算符

    该运算符有三个操作数,并需要判断布尔型的值,来确定讲那个数赋值给变量
    真返回?后面的值来赋值,反之拿:后面值来赋值

    int a = 0;
    int b = 3;
    
    //这处a=20,由于3小于5,取:后的值赋值给a
    int a = (b>5)?10:20 
    
    //这处a=10,由于3大于0,取?后的值赋值给a
    int a = (b>0)?10:20
    
    

    instanceof运算符

    该运算符用于操作对象实例,检查该对象是否指定对象(类或者接口),满足则返回true,反之为false
    如:

    String name ="Stuart";
    
    //此处这里是返回 true
    boolean result = name instanceof String 
    

    运算符优先级

    优先级 类型 操作符 关联性
    1 符号 () [] . 从左到右
    2 一元 +(正) -(负) ! ~ 从右到左
    3 乘除 * / % 从左到右
    4 加减性 + - 从左到右
    5 移位 >> >>> << 从左到右
    6 关系 > >= < <= instanceof 从左到右
    7 相等 == != 从左到右
    8 按位与 & 从左到右
    9 按位异或 ^ 从左到右
    10 按位或 | 从左到右
    11 逻辑与 && 从左到右
    12 逻辑或 || 从左到右
    13 三目运算 ?: 从右到左
    14 赋值 = += -= ^= %= /= ~= >>= <<= >>>= 从右到左
    • 优先级按照从高到低的顺序书写,也就是优先级为1的优先级最高,优先级14的优先级最低

    • 结合性是指运算符结合的顺序,通常都是从左到右。从右向左的运算符最典型的就是负号,例如3+-4,则意义为3加-4,符号首先和运算符右侧的内容结合。

    • 注意区分正负号和加减号,以及按位与和逻辑与的区别

    相关文章

      网友评论

          本文标题:java基础-2-运算符-学习笔记

          本文链接:https://www.haomeiwen.com/subject/wfjbmqtx.html