美文网首页
Java 从入门到放弃 入门篇(控制程序流程一)

Java 从入门到放弃 入门篇(控制程序流程一)

作者: Cocoonshu粽子 | 来源:发表于2017-10-14 15:44 被阅读18次

    Java 运算符

    1. 优先级;运算符的优先级决定存在多个运算符时一个表达式的计算顺序,最简单的规则就是乘法和除法在加减法之前完成,为避免因优先级问题导致运算顺序的错误,建议用括号明确规定计算顺序~
    备注:
    Ulcer(溃疡) Unary:一元 + - + + - [[ 其余的 ]]
    Addicts(患者) Arithmetic(shift);算术(和移位) * / % + - << >> Really(特别) Relational:关系 > < >= <= == !=
    Like(喜欢) Logical(bitwise):逻辑(和按位) && || & | ^
    C Conditional(ternary):条件(三元) A>B ? X:Y
    A Lot Assignment:赋值 =(以及复合赋值,如*=)
    
    1. 赋值 = ;取右边的值,把它复制到左边;
    2. 算数运算符 包括加号(+)、减号(-)、除号(/)、乘号(*)、模数(%);
      (1) 备注:整数除法会直接砍掉小数,不是进位;
      (2) 简写形式,同时进行赋值操作,等号前的一个运算符标记,例如:x+=4;
    3. 自动递增和递减 ++ --;
      (1) 前缀形式表示运算符位于变量或者表达式的前面;后缀形式表示运算符位于变量或者表达式的后面;
      (2) 前缀形式会前执行运算,在生成值,例如 ++A或--A;后缀形式会先生成值,在执行运算,例如A++或A--
    4. 关系运算符 小于(<)、大于(>)、小于等于(<=)、大于等于(>=)、等于(==)、不等于(!=);
      (1) 关于等于(==)和不等于(!=),基本类型比较的值,对象比较的是内存地址;
      (2) 对象的比较使用equals()方法;
    5. 逻辑运算符 AND(&&)、OR(||)以及NOT(!)
      (1)短路问题; &&只要当前项为假,它就不往后判断了,直接认为表达式为假;||只要当前项为真,它也不往后判断了,直接认为表达式为真。
    6. 按位运算符
    7. 移位运算符 左移位运算符(<<)、有符合右移位运算符(>>)、无符号右移运算符(>>>);
      (1) << 将运算符左边的运算对象向左移动运算符右侧指定的位数(在低位补0);
      (2) >> 将运算符左边的运算对象向右移动运算符右侧指定的位数,若值为正,则高位插入0;若值为负,则高位插入1。
      (3) >>> 无论正负,都在高位插入0。
      (4)对char,byte或者short的移位处理,在移位之前,先自动转换成一个int。只有右侧的 5 个低位才会用到。这样可防止我们在一个 int 数里移动不切实际的位数。
      (5)对一个 long 值进行处理,最后 得到的结果也是long。此时只会用到右侧的6个低位,防止移动超过long值里现成的位数。
      (6)在进行“无 符号”右移位时,也可能遇到一个问题。若对 byte 或 short 值进行右移位运算,得到的可能不是正确的结果 (Java 1.0 和Java 1.1 特别突出)。它们会自动转换成int 类型,并进行右移位。但“零扩展”不会发 生,所以在那些情况下会得到-1 的结果。
    8. 三元if-else 运算符 布尔表达式?值0:值1,若布尔表达式的结果为true,就计算“值0”,否则计算“值1”;
    9. 逗号运算符 唯一场所死for循环中使用;
    10. 字符串运算符+ 连接不用的字符串;
      备注:连接的结果值会重新生成一个String 对象~

    相关文章

      网友评论

          本文标题:Java 从入门到放弃 入门篇(控制程序流程一)

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