操作符

作者: WhiteSpace123 | 来源:发表于2017-10-23 23:37 被阅读0次

    优先级:

    能用括号包住就用括号包住,代码应该以易理解的方向编写

    赋值操作符:

    =

    算术操作符:

    + - * / %
    += /= -= *= %=等同于

    a = a+b;
    a = a/b;
    a = a-b;
    a = a*b;
    a = a%b;
    

    JAVA+号没有重载

    7 % 2==1;  //true
    (2\*3)+1==7;  //true
    

    一元操作符:

    - + 等同于-1 +1

    自动递增/递减操作符:

    ++ --

    关系运算符:

    > < >= <= == != 返回值为boolean类型的值
    对象使用关系操作符比较的是对象的地址值,Object类的equals方法默认比较地址值

    逻辑操作符:

    && || !

    短路:

    当逻辑操作符的||的前一方为true则||后的一方不运算,当&&的前一方为false则&&后的一方不运算

    (3>1)||(1>2)    //(1>2)不运算
    (1>3)&&(1>2)    //(1>2)不运
    

    使用直接常量的时候,应该给予类型:
    byte b = 1B;
    long l = 1L;
    float f = 1.0F;
    double d = 1.0D;
    int x = 0X2f; //16进制表示法
    尽量使用大写字母防止混淆

    指数计数法:

    e代表10的次方

    double d = 1e-34;    //代表10的-34次方
    

    移位操作符:

    将数值变为2进制位数,左边为高位,右边为低位
    <<:去高补低,将35转换为2进制,去3个高位补3个低位0
    long l = 35 << 3; //35乘上2的3次
    >>:去低补高,将35转换为2进制,去3个低位补3个高位0
    long l = 35 >> 3; //35除以2的3次
    >>>:去低补高,将35转换为2进制,第一个高位补1,其他2个高位补0,去3个低位(有正负符号)
    long l = 35 >>> 3; //8

    按位操作符:& | ~ ^

    int x = 2 & 1; //0,将值转换为二进制数位与位进行比较,&为*,|为+,2&1就是2进制(10)*(01)

    三元运算符:

    (布尔表达式)?值1:值2;

    基本数据类型转换:

    扩展转换:小转大
    窄化转换:大转小(可能丢失精度)
    截尾:浮点类型转换时,会截去小数点部分
    自动类型提升:小类型和大类型运算时结果会提升至大类型,+=等操作符会根据类型自动转换

    = == !=能操作对象,+ +=能操作字符串,其他的只能操作基本数据类型

    相关文章

      网友评论

          本文标题:操作符

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