美文网首页
Java基础之运算符

Java基础之运算符

作者: sexyhair | 来源:发表于2018-04-18 16:24 被阅读0次

    六、运算符

    6.1 概述:

    6.2 分类:

    6.2.1 算术运算符

    加(+)减(-)乘(*)除(/)取余(%)前自增(++a)后自增(a++)前自减(--a)后自减(a--)字符串拼接(+)。

    整数相除只能得到整数,如果还想要得到小数,那么则把操作数据*1.0,使得int类型默认转化为float类型;

    自增自减:
    1) 放在操作数据的前面,先自增或自减,然后再运算

    2) 放在操作数据的后面,先参与运算,再自增或自减
    6.2.2 赋值运算符

    基本赋值运算符=:把=右边的数据赋值给左边

    扩展赋值运算符:+=,-+,*=,/=,%=

    +=:把左边和右边做加法,再赋值给左边;其内在隐含个一个类型提升; 扩展赋值运算符内隐含了强制转换
    6.2.3 比较运算符(关系运算符)

    相等于(==)、不等于(!=)、小于(<)、小于等于(<=)、大于(>)、大于等于(>=)、检查是否是类的对象(instance of)
    注意:比较运算符的值都是boolean类型的;

    6.2.4 逻辑运算符

    逻辑运算符是用来连接布尔型表达式的,逻辑与(&)、 逻辑或(|)、 逻辑非(!)、 逻辑双与(&&)、 逻辑双或(||)、逻辑异或(^)

    逻辑& 与逻辑&& :有false则false
    逻辑|与逻辑|| :有true则true
    逻辑^ :相同为false,不同为true;
    逻辑!:非false则true,非true则false;


    6.2.5 位运运算(最接近计算机底层的)

    位与运算(&)、位或运算(|)、位反码(~)、位异或运算(^)<<(左移)、>>(右移)、>>>(无符号右移)

    & :有0则0(与逻辑运算符中&很像呀,有false则false)


    位与(&)运算的过程

    | :有1则1(与逻辑运算符中|很像呀,有true则true)


    位或(|)运算过程

    ^ :相同为0,不同为1(与逻辑运算符中^很像呀,相同为false,不同为true)


    位异或(^)运算过程
    特点:一个数据对另一个数据位异或(^)两次,则值是此该数本身;

    ~:非0则1,非1则0(与逻辑运算符中!很像呀,非false则true,非true则false)


    位反码(~)运算过程

    <<(左移):左移n位,空位补0,高位移除

    左移的运算过程
    (左移的结果 = 左移的数据2的移位数次幂)即12=32(二进制)^2

    “>>(右移)”:左移n位,二进制的高位是0,则空缺位补0,二进制的高位是1则空缺位补1。


    右移的运算过程

    (左移的结果 = 左移的数据/2的移位数次幂)即12=3/2(二进制)^2


    负数的右移运算过程

    ">>>(无符号右移)":右移n位,空缺位总是补0


    无符号右移的运算过程
    位运运算练习:
    请实现2个整数变量的交换?

    请写出最有效的28的结果?
    其实就是2
    8的底层写法:8 = 2的3次幂,即2左移3个位置,2*2^3

    6.2.6 三目运算符

    格式:比较表达式 ?表达式1 :表达式2;
    比较表达式得到的一定是boolean类型
    true : 则整条语句的值等于表达式1
    false:则整条语句的值是表达式2;

    练习:3个数之中最大的数;

    参考书籍视频:
    -学习视频:黑马程序员_Java基础视频-深入浅出精华版
    -阅读书籍:Java核心技术 卷I(机械工业出版社)
              API1.8

    相关文章

      网友评论

          本文标题:Java基础之运算符

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