Java学习:运算符及优先级

Posted LeeAaron

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java学习:运算符及优先级相关的知识,希望对你有一定的参考价值。

运算符

  • 分割符:  ,  ;  []  ()
  • 算数运算符:  +  -  *  /  %  ++  --
  • 关系运算符:  >  <  >=  <=  ==  !=
  • 逻辑运算符:  !  &  |  ^  &&  ||
  • 赋值运算符:  =
  • 扩展赋值运算符:  +=  -=  *=  /=
  • 三目运算符:  ? :
  • 字符串连接运算符:  +

“+” 和 “-” 运算符还可以作为数据的正负符号。

 

&&:短路与,只要其中一个表达式或方法的值为false,那么结果就为false,且不执行之后的操作。

||:短路或,只要其中一个表达式或方法的值为true,那么结果就为true,且不执行之后的操作。

 

short s = 10;
//错误,s为short,1默认为int,先把右边s转换为int再相加,结果为int
//s = s + 1;    //错误
s = (short)(s + 1);    //正确
s += 1;        //正确,等同于 s = (short)(s + 1);

三目运算符:

  x ? y : z  x为boolean类型,若x为true,则表达式结果为y,否则为z

字符串连接符:只要“+”任意一边出现字符串,“+”就表示字符串连接符

  • 运算符“+”用于数值类型数据,是加法运算符

    例:"abd" + "de" 结果:"abcde"

  • 用于字符串李类型(String),是连接符
  • 字符串+数值,Java会自动将数值转换成字符串,然后连接成新字符串

    例:"12" + 34 结果:"1234"

System.out.println(12+34+"");    //"46"
System.out.println(""+12+34);    //"1234"

运算符的优先级

  • 除了单目运算符、赋值运算符和条件运算符,其他的运算符都是从左到右结合的。
  • 运算符优先级口诀:非、算、关、与或、赋
  • 下表为优先级顺序,优先级高的在上部,同一行优先级相同
运算符优先升级

运算符说明

Java运算符

分割符

.  []  ()  ,  ;

单目运算符

+  -  ~  !  ++  --

创建或类型转换

new  (type)

乘法/除法

*  /  %

加法/减法

+  -

关系

<  <=  >=  >  instanceof
等价

==  !=

按位与

&
按位异或

^

按位或

|

条件与

&&

条件或

||

条件

? :
赋值

=

 

以上是关于Java学习:运算符及优先级的主要内容,如果未能解决你的问题,请参考以下文章

运算符及优先级

Java入门到架构师教程之JavaScript运算符及运算符优先级

Java运算符及优先级(全)

STM32学习及应用笔记二:一次运算符优先级造成的错误

Java运算符优先级和表达式及数据类型转换

Java运算符优先级和表达式及数据类型转换