千家信息网

Java运算符优先级详解

发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,本篇内容介绍了"Java运算符优先级详解"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.Java运
千家信息网最后更新 2025年11月08日Java运算符优先级详解

本篇内容介绍了"Java运算符优先级详解"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

1.Java运算符优先级详解

 优先级是指同一式子中多个运算符被执行和次序,同一级里的操作符具有相同的优先级,相同优先级得操作符号相遇是,根据结合性决定运算次序,下面从高到低的优先级列出了运算符。同一行中的运算符优先级相同。


  .  []  ()   结合性从左到右
  ++  --  !  ~   结合性从左到右
  *  /  %   结合性从左到右
  +  -   结合性从左到右
  <<  >>  >>>   结合性从左到右
  <  >  <=>=   结合性从左到右
  ==  !=   结合性从左到右
  &   结合性从左到右
  ^   结合性从左到右
  &&   结合性从左到右
  ||   结合性从左到右
  ?:   结合性从右到左
  =   结合性从右到左

  例如对于表达式:a=b+c*d/(c^d),因为括号优先级最高,所以先计算c^d,接着是c*d,然后除以c^d,最后,把上述结果与b的和存储到变量a中。

2:整型运算符

  整型运算符按操作数的多少可分为一元和二元两类,一元运算符一次对一个变量进行操作,二元运算符一次对两个变量进行操作。对于运算来说,如果有一个变量或操作数是长整型的,那么结果就肯定是长整型的,否则即使操作数还没有确定是字节型、短整型或字符型,运算结果都是整型,下表是一元运算符。

运算符 实际操作 例子
  -   改变整型数符号   -i
  ~   位运算:非   ~i
  ++   加1   i++
  --   减1   i--

注:一元取反运算符(-)用来改变整数的正负号,逐位求反把所变量所有是1的位变成0,是0的位变成1,加加和减减(++,--)把变量的值加1或减1。
  以下是一个具体例子:

  int i=0;
  int j=1;
  for (i=1;i<10;i++)
  {
  j--;
  System.out.println(i+""+j+"");
  }

  一元运算符执行的方式是改变它们所作用的变量的值,对一元取反和逐位求反来说,变量的值并不改变,而对加和减运算(++,--)来说,就量的值被改变了,例如:

    int i=10,j=10,k=10,l=10;
    System.out.println(i+""+j+""+k+""+l+"");
    j++;
    i--;
    ~k;
    -l;
    System.out.println(i+""+j+""+k+""+l+"");

  注意:j和i被改变并打印出它们的新值,可是k和l仍然为原来的数值,当在复合表达式中使用一元取反和逐位求余运算时,你实际上是在用一个临时存贮操作数的新值。

  ++和--既是前置运算符也是后置运算符,这就是说,它们既可以放在操作数前面(++x),也可以放在后面(x++),如果它们被用在复合语句中如:

    i=x++; 或 i=++x;
  那么第一个语句中x把值赋给i以后再加1,而第二个语句先把x加1,再把新的x值赋给i。
  整型运算符的第二种类型是二元运算符,这种运算并不改变操作数的值,而是返回一个必须赋给变量的值,下表列出了二元运算符。

运算符 实际操作 例子
  +   加运算   a+b
  -   减运算   a-b
  *   乘运算   a*b
  /   除运算   a/b
  %   取模运算   a%b
  &   与运算   a&b
  |   或运算   a|b
  ^   异或运算   a^b
  <<   左移   a<   >>   右移   a>>b
  >>>   右移   a>>>b


注意:>>与>>>的基本功能都是右移,但>>是用符号位来填充右移后所留下的空位,而>>>则是用零来填充右移后所留下的空位。

  还有一类运算,它们形如:j-=i,这里-=是二元运算-和赋值运算=的复合运算,它等价于j=j-i,这种复合方式适用于所有的二元运算符。

  这里有几点关于整型运算进一步说明,首先,整数除法向靠近0的方向取整;其次,如果你除以0或者对0取模,程序就会在运行时被强行中止,如果你的运算结果超出最小极限,或者说是下溢,结果将为0,如果超出了最大极限,就将会导致结果的回绕。

3:布尔运算符

  另外还有一些运算符能产生布尔类型的结果,我们把它们称为布尔运算符,下表列出了这些运算符。

运算符 实际操作 例子
< 小于 a
> 大于 a>b
<= 小于等于 a<=b
> 大于等于 a>=b
== 等于 a==b
!= 不等于 a!=b

  在这里要指出的是相等运算符==可能会给你带来许多麻烦,很多人在比较两个值时往往错用了等号=,以致于变成了赋值操作,所以在编程中一定要注意你在比较数值时用的是==。布尔类型本身还有几个逻辑运算符,它们可以对布尔类型的数据进行运算:!,&&,//

  其实如果你把布尔类型的值true等效地看成1,false看成0,那么对于相同的运算符,整型运算的法则对布尔类型也是适用的。

  布尔运算符中还有一种三元运算符,它的格式如下:

  Operand ? Statement1:Statement2
  在这个式子中,先计算Operand的真假,若为真,则执行Statement1,若为假,则执行Statement2。下面的代码给出了这种运算的一个例子:

  (a>b)?a:b;
  这个表达式将返回a和b中较大的那个数值。

4:浮点型运算符

  传统的浮点型二元运算除了赋值运算符(+=,-=.*=./)取模(%)和取模赋值(%=0)使浮点数值等价于整数除法,同样,++和--使变量的值增加或减小1。

  同整型变量相似,结果被放在最大长度的类型里,如果运算包括两个浮点类型,结果也是个浮点类型,如果有一个或几个是双精度浮点型,结果就是双精度浮点型,当你使用关系运算符:>、<、>=、<=、==和!=时,注意浮点变量与整型的不同,只有a==b成立并不能说明 ab不成立,这是因为浮点类型数值次序同整型不同,当你写程序,对浮点型数值进行假设时要小心,浮点型数值也包括inf,代表无穷大,溢出产生无穷大inf,下溢产生0。

5:字符串运算符

  +运算符可以把字符串并置起来,如果哪一个操作数不是字符串,在并置之前它会被转换成字符串,另外,+=运算符把两个字符串并置的结果放进第一个字符串里,在前面的例子里,当你想把几项打印在同一行里时使用的是+运算符,试着在解释器里用System.out.println和+运算符来造成不同的组合输出。

undefined

"Java运算符优先级详解"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

运算 运算符 变量 浮点 结果 类型 优先级 布尔 字符 操作数 数值 例子 字符串 实际 相同 两个 不同 整数 次序 符号 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络安全周报怎么写 软件开发试用期导师总结评价 网络安全法数据分类 服务器cpu频率低核数高 csgo个人服务器开启vac 微信老显示无法连接服务器怎么办 数据库查询最大连接数 服务器剩余流量 网安周网络安全科技馆 诚通信达网络技术有限公司 学生软件开发计划书 新华三服务器管理登录 山西党员教育软件开发公司 抓包软件怎么能看到服务器跳转 广西公安局DNA数据库样本 电脑服务器维护管理制度 网络安全风险指的是什么 软件开发所需要的软件有哪些 互联网科技工作委员会毛军 u8现金流量项目对应数据库表 科技互联网公司用的什么手机 web数据库整站 学校电脑网络安全要求 网易空岛服务器介绍 ccia网络安全50强 数据库系统中的实体是什么 销售软件开发能退几点税 小马bi连接本地数据库 河南服务器硬盘质保期 360服务器安全防护在设置
0