java运算符顺序



优先级运算符分类结合顺序运算符

分隔符左结合.    []     ( )     ;      ,
一元运算符右结合!  ++     --     -   ~

算术运算符

移位运算符

左结合*     /      %    +     -      <<   >>   >>>
关系运算符左结合<     >     <=   >=   instanceof(Java 特有)   = =  !=
逻辑运算符左结合! &&  ||  ~  &  |  ^ 
三目运算符右结合布尔表达式?表达式1:表达式2
赋值运算符右结合=  *=     /=  %=   +=   -=    <<= >>= >>>=  &=  *=  |=

 

一、一元运算符

    因操作数是一个,故称为一元运算符。

运算符含义例子
-改变数值的符号,取反-x(-1*x)
~逐位取反,属于位运算符~x
++自加1x++
--自减1x--

++x 因为++在前,所以先加后用。
x++ 因为++在后,所以先用后加。

二、算术运算符

    所谓算术运算符,就是数学中的加、减、乘、除等运算。因算术运算符是运算两个操作符,故又称为二元运算符。

运算符含义例子
+加法运算x+y
-减法运算x-y
*乘法运算x*y
/除法运算x/y
%取模运算(求余运算)x%y

    这些操作可以对不同类型的数字进行混合运算,为了保证操作的精度,系统在运算过程中会做相应的转化。数字精度的问题,我们在这里不再讨论。下图中展示了运算过程中,数据自动向上造型的原则。

 

 

    注:1、实线箭头表示没有信息丢失的转换,也就是安全性的转换,虚线的箭头表示有精度损失的转化,也就是不安全的。
      2、当两个操作数类型不相同时,操作数在运算前会子松向上造型成相同的类型,再进行运算。

示例如下:


三、移位运算符

   移位运算符操作的对象就是二进制的位,可以单独用移位运算符来处理int型整数。

运算符含义例子
<<左移运算符,将运算符左边的对象向左移动运算符右边指定的位数(在低位补0)x<<3
>>"有符号"右移运算 符,将运算符左边的对象向右移动运算符右边指定的位数。使用符号扩展机制,也就是说,如果值为正,则在高位补0,如果值为负,则在高位补1.x>>3
>>>"无符号"右移运算 符,将运算符左边的对象向右移动运算符右边指定的位数。采用0扩展机制,也就是说,无论值的正负,都在高位补0.x>>>3

 

四、关系运算符

Java具有完备的关系运算符,这些关系运算符同数学中的关系运算符是一致的。具体说明如下:

运算符含义例子
<小于x<y
>大于x>y
<=小于等于x<=y
>=大于等于x>=y
==等于x==y
!=不等于x!=y

instanceof操作符用于判断一个引用类型所引用的对象是否是一个类的实例。操作符左边的操作元是一个引用类型,右边的操作元是一个类名或者接口,形式如下:

obj instanceof ClassName      或者    obj instanceof InterfaceName

关系运算符产生的结果都是布尔型的值,一般情况下,在逻辑与控制中会经常使用关系运算符,用于选择控制的分支,实现逻辑要求。

需要注意的是:关系运算符中的"=="和"!="既可以操作基本数据类型,也可以操作引用数据类型。操作引用数据类型时,比较的是引用的内存地址。所以在比较非基本数据类型时,应该使用equals方法。


七、赋值运算符

赋值运算符是程序中最常用的运算符了,示例如下:

运算符例子含义
+=x+=yx=x+y
-=x-=yx=x-y
*=x*=yx=x*y
/=x/=yx=x/y
%=x%=yx=x%y
>>=x>>=yx=x>>y
>>>=a>>>=yx=x>>>y
<<=a<<=yx=x<<y
&=x&=yx=x&y
|=x|=yx=x|y
^=x^=yx=x^y
优先级运算符分类结合顺序运算符

分隔符左结合.    []     ( )     ;      ,
一元运算符右结合!  ++     --     -   ~

算术运算符

移位运算符

左结合*     /      %    +     -      <<   >>   >>>
关系运算符左结合<     >     <=   >=   instanceof(Java 特有)   = =  !=
逻辑运算符左结合! &&  ||  ~  &  |  ^ 
三目运算符右结合布尔表达式?表达式1:表达式2
赋值运算符右结合=  *=     /=  %=   +=   -=    <<= >>= >>>=  &=  *=  |=

 

一、一元运算符

    因操作数是一个,故称为一元运算符。

运算符含义例子
-改变数值的符号,取反-x(-1*x)
~逐位取反,属于位运算符~x
++自加1x++
--自减1x--

++x 因为++在前,所以先加后用。
x++ 因为++在后,所以先用后加。

二、算术运算符

    所谓算术运算符,就是数学中的加、减、乘、除等运算。因算术运算符是运算两个操作符,故又称为二元运算符。

运算符含义例子
+加法运算x+y
-减法运算x-y
*乘法运算x*y
/除法运算x/y
%取模运算(求余运算)x%y

    这些操作可以对不同类型的数字进行混合运算,为了保证操作的精度,系统在运算过程中会做相应的转化。数字精度的问题,我们在这里不再讨论。下图中展示了运算过程中,数据自动向上造型的原则。

 

 

    注:1、实线箭头表示没有信息丢失的转换,也就是安全性的转换,虚线的箭头表示有精度损失的转化,也就是不安全的。
      2、当两个操作数类型不相同时,操作数在运算前会子松向上造型成相同的类型,再进行运算。

示例如下:


三、移位运算符

   移位运算符操作的对象就是二进制的位,可以单独用移位运算符来处理int型整数。

运算符含义例子
<<左移运算符,将运算符左边的对象向左移动运算符右边指定的位数(在低位补0)x<<3
>>"有符号"右移运算 符,将运算符左边的对象向右移动运算符右边指定的位数。使用符号扩展机制,也就是说,如果值为正,则在高位补0,如果值为负,则在高位补1.x>>3
>>>"无符号"右移运算 符,将运算符左边的对象向右移动运算符右边指定的位数。采用0扩展机制,也就是说,无论值的正负,都在高位补0.x>>>3

 

四、关系运算符

Java具有完备的关系运算符,这些关系运算符同数学中的关系运算符是一致的。具体说明如下:

运算符含义例子
<小于x<y
>大于x>y
<=小于等于x<=y
>=大于等于x>=y
==等于x==y
!=不等于x!=y

instanceof操作符用于判断一个引用类型所引用的对象是否是一个类的实例。操作符左边的操作元是一个引用类型,右边的操作元是一个类名或者接口,形式如下:

obj instanceof ClassName      或者    obj instanceof InterfaceName

关系运算符产生的结果都是布尔型的值,一般情况下,在逻辑与控制中会经常使用关系运算符,用于选择控制的分支,实现逻辑要求。

需要注意的是:关系运算符中的"=="和"!="既可以操作基本数据类型,也可以操作引用数据类型。操作引用数据类型时,比较的是引用的内存地址。所以在比较非基本数据类型时,应该使用equals方法。


七、赋值运算符

赋值运算符是程序中最常用的运算符了,示例如下:

运算符例子含义
+=x+=yx=x+y
-=x-=yx=x-y
*=x*=yx=x*y
/=x/=yx=x/y
%=x%=yx=x%y
>>=x>>=yx=x>>y
>>>=a>>>=yx=x>>>y
<<=a<<=yx=x<<y
&=x&=yx=x&y
|=x|=yx=x|y
^=x^=yx=x^y
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值