• java运算符的优先级和详解


    优先级

    符号

    名称

    结合性(与操作数)

    目数

    说明

    1

    .

    从左到右

    双目

     

    ( )

    圆括号

    从左到右

     

     

    [ ]

    方括号

    从左到右

     

     

    2

    +

    正号

    从右到左

    单目

     

    -

    负号

    从右到左

    单目

     

    ++

    自增

    从右到左

    单目

    前缀增,后缀增

    - -

    自减

    从右到左

    前缀减,后缀减

    ~

    按位非/取补运算

    从右到左

    单目

     

    逻辑非

    从右到左

    单目

    !”不可以与“=”联用

    3

    *

    从左到右

    双目

     

    /

    从左到右

    双目

    整数除法:取商的整数部分,小数部分去掉,不四舍五入

    %

    取余

    从左到右

    双目

     

    4

    +

    从左到右

    双目

     

    -

    从左到右

    双目

     

    5

    << 

    左移位运算符

    从左到右

    双目

     

    >> 

    带符号右移位运算符

    从左到右

    双目

     

    >>> 

    无符号右移

    从左到右

    双目

     

    6

    小于

    从左到右

    双目

    关系运算符“大于”说明

    <=

    小于或等于

    从左到右

    双目

     

    大于

    从左到右

    双目

     

    >=

    大于或等于

    从左到右

    双目

     

    instanceof

    确定某对象是否属于指定的类

    从左到右

    双目

     

    7

    ==

    等于

    从左到右

    双目

    关系运算符“==”说明

    !=

    不等于

    从左到右

    双目

     

    8

    &

    按位与

    从左到右

    双目

     

    9

    |

    按位或

    从左到右

    双目

     

    10

    ^

    按位异或

    从左到右

    双目

     

    11

    &&

    短路与

    从左到右

    双目

     

    12

    ||

    短路或

    从左到右

    双目

     

    13

    ? :

    条件运算符

    从右到左

    三目

     

    14

    =

    赋值运算符

    从右到左

    双目

     

    +=

    混合赋值运算符

     

    -=

     

    *=

     

    /=

     

    %=

     

    &=

     

    |=

     

    ^=

     

    <<=

     

    >>=

     

    >>>=

     

     

    说明:

    1. 算术运算符

    + :加法

    - :减法

    * :乘法

    / :除法

    % :取余运算

    1. 关系运算符

    < :只能比较基本类型数据之间的关系,不能比较对象之间的关系。

    > : (同关系运算符“<”)

    <=: (同关系运算符“<”)

    >=: (同关系运算符“<”)

    == :若使用该运算符比较两个对象的引用(变量),则实质上是比较两个变量是否引用了相同的对象。所谓相同的对象是指,是否是在堆栈(Heap)中开辟的同一块儿内存单元中存放的对象。

         若比较两个对象的引用(变量)所引用的对象的内容是否相同,则应该使用equals()方法,该方法的返回值类型是布尔值。需要注意的是:若用类库中的类创建对象,则对象的引用调用equals()方法比较的是对象的内容;若用自定义的类来创建对象,则对象的引用调用equals()方法比较的是两个引用是否引用了同一个对象,因为第二种情况equals()方法默认的是比较引用。

    != :(同关系运算符“==”)

    1. 逻辑运算符 (操作符只能是布尔类型的)

    &&

    ||

    !

    1. 位运算符

    &

    |

    ^

    ! :不可以与=联用,因为!是一元操作符;不可以对布尔类型的数据进行按位非运算

    1. 移位运算符(只能处理整数运算符)

    Char、byte、short类型,在进行移位之前,都将被转换成int类型,移位后的结果也是int类型;移位符号右边的操作数只截取其二进制的后5位(目的是防止因为移位操作而超出int类型的表示范围:2的5次方是32,int类型的最大范围是32位);对long类型进行移位,结果仍然是long类型,移位符号右边的操作符只截取其二进制的后6位。

    << :

    >> :若符号位为正,则在最高位插入0;若符号位为负,则在最高位插入1

    >>> :无论正负,都在最高位插入0

    收集自百度文库:http://wenku.baidu.com/view/61a4823b580216fc700afd22.html

  • 相关阅读:
    JDK问题--linux下java unrecognized class file version错误的解决
    XP oracle32位客户端安装找不到orandce11.dll.dbl
    Oracle的安装问题
    xhost和DISPLAY
    linux下访问windows的共享
    windows域与工作组概念
    当页面加载完成时,JQ触发添加页面的元素的事件触发不了。。
    工厂模式Assembly.Load(path).CreateInstance 反射出错解决办法
    MVC之联动学习
    SQL2008将服务器的数据库表数据插入到本地数据库
  • 原文地址:https://www.cnblogs.com/homg/p/3348650.html
Copyright © 2020-2023  润新知