zoukankan      html  css  js  c++  java
  • Java基础——运算符

    Java运算符

    算术运算符

    操作符 名称 描述
    + 加法 相加运算符两侧的值
    减法 左操作数减去右操作数
    * 乘法 相乘操作符两侧的值
    / 除法 左操作数除以右操作数
    % 取余 左操作数除以右操作数的余数
    ++ 自增 操作数的值增加1
    -- 自减 操作数的值减少1

    要点 :

    • 加号:当+两边是数值时,当作算术符号,当某一边是非数值时,当作字符串连接符号
    • 进行除法运算时,若两个操作数是整型的,结果也会是整型的,舍弃掉小数部分;如果有一个数是浮点数,结果将自动转型为浮点型
    • 进行取余运算时,若两个操作数是整型的,结果也会是整型的,如果有一个数是浮点数,结果将自动转型为浮点型
    • 自增和自减时,需要注意操作符的位置,如果不取自增运算的表达式的返回值, 则前置自增和后置自增没有区别,如果取表达式的返回值, 则前置自增的返回值是自增之后的值, 后置自增的返回值是自增之前的值
    • count = count++; count的值不变,Java 对自加处理的流程是先把 count 的值(不是引用)拷贝到一个临时变量区,然后对 count 变量加1,接着返回临时变量区的值

    关系运算符

    操作符 名称 描述
    > 大于 相加运算符两侧的值
    < 小于 左操作数减去右操作数
    == 等于 相乘操作符两侧的值
    >= 大于等于 左操作数除以右操作数
    <= 小于等于 左操作数除以右操作数的余数
    != 不等于 操作数的值增加1

    要点 :

    • 比较运算符“==”用来比较基本数据类型是比较的是值是否相等,比较引用数据类型是比较的是引用是否相等,引用数据类型用equals()来比较字面量是否相等
    • equals方法都是调用Object类的equals方法,而Object的equals方法主要用于判断对象的内存地址引用是不是同一个地址(是不是同一个对象),定义的equals与==是等效的
    • String类重写了equals方法,先判断是否为同一个对象,不是的话再判断长度,长度不同返回false,长度相同再转为char字符数字,判断每一个字符是否相同

    逻辑运算符

    操作符 名称 描述
    && 短路与 当且仅当两个操作数都为真时,条件才为真
    & 逻辑与 当且仅当两个操作数都为真时,条件才为真
    | | 短路或 当两个操作数中任何一个为真,条件为真
    | 逻辑或 当两个操作数中任何一个为真,条件为真
    ! 逻辑非 用来反转操作数的逻辑状态

    要点 :

    • 短路与:从左到右依次判断,遇到false则停止,不再进行后面的判断(比如对象先判空,再判断值)
    • 短路或:从左到右依次判断,遇到true则停止,不再进行后面的判断

    位运算符

    操作符 名称 描述
    & 按位& 如果相对应位都是1,则结果为1,否则为0
    | 按位或 如果相对应位都是0,则结果为0,否则为1
    ^ 异或 如果相对应位值相同,则结果为0,否则为1
    ~ 按位取反 翻转操作数的每一位,即0变成1,1变成0。结果为: -(X+1)
    << 按位左移 通常格式为:value << num,value按位左移num位
    >> 有符号按位右移 通常格式为:value >> num,value按位右移num位。
    >>> 无符号按位右移 通常格式为:value >> num,value按右移num位

    要点 :

    • 计算机中的数字运算是以补码形式进行的
    • 位移运算符使用的数据类型有char、byte、short、int和long
    • 一个数左移n位,就是将这个数乘以2的n次方
    • 一个数右移n位,就是将这个数除以2的n次方

    赋值运算符

    操作符 名称 描述
    = 赋值 右操作数的值赋给左侧操作数
    += 加和赋值 左操作数和右操作数相加赋值给左操作数
    -= 减和赋值 左操作数和右操作数相减赋值给左操作数
    *= 乘和赋值 左操作数和右操作数相乘赋值给左操作数
    /= 除和赋值 左操作数和右操作数相除赋值给左操作数
    %= 取模和赋值 左操作数和右操作数取模后赋值给左操作数
    <<= 左移位赋值 左移位赋值运算符
    >>= 右移和赋值 右移位赋值运算符
    &= 按位与赋值 按位与赋值运算符
    ^= 按位异或赋值 按位异或赋值操作符
    |= 按位或赋值 按位或赋值操作符

    要点 :

    • 上面这些赋值运算符都具有隐式强制类型转换功能

    条件运算符

    (条件) ? 结果一 : 结果二;
    

    如果条件成立,则执行结果一,否则,执行结果二

    要点 :

    jdk1.7的三目运算符,当第二、第三位操作数一个为基本类型,一个为包装类型时,会对象进行拆箱操作,如果该对象为null,就会在拆箱过程中调用null.***Value()的时候就报NPE

    instanceof运算符

    要点 :

    • 主要用来判断一个类是否实现了某个接口,或者判断一个实例对象是否属于一个类

    运算符优先级

    要点 :

    • 运算符优先级不要死记硬背
    • 记住常用的加减乘除
    • 其余的用括号,方便阅读
  • 相关阅读:
    Flink实例(十九):FLINK 异步IO (四)实例 (二) MySQL
    Flink实例(十八):FLINK 异步IO (三)实例 (一)
    Flink实例(十七):FLINK 异步IO (二)原理
    kata镜像
    golang no Go files
    docker命令
    golang 编译安装kata container (二)
    golang代理
    golang 安装依赖
    golang
  • 原文地址:https://www.cnblogs.com/yanghanwen/p/12158832.html
Copyright © 2011-2022 走看看