zoukankan      html  css  js  c++  java
  • Java运算符优先级

    关于Java运算符优先级内容,单独记录一下,以前虽然有概念但是比较模糊,具体使用过程中可能还是不太清楚,只会常用的几种优先级。

    常见运算符分类

    常见运算符根据参与运算的变量个数,可以粗略分为一元运算、二元运算和三元运算,此外还包括'( )',和'='号赋值运算。

    (1)一元运算:!、++、--、~,即 非、自增、自减和取反

    (2)二元运算:+、-、*、/、%、位运算(>>、<<、>>>)、关系运算(比较)、逻辑运算(&、|、^)

    (3)三元运算:三元运算也叫三目运算

    常见运算符优先级

    大体上来说优先级顺序是()→一元运算→二元运算→三元运算→=,即()的优先级最高,=号赋值的优先级最低,具体参考代码。

     1 public class OperatorPriority{
     2     public static void main(String[] args){
     3         //运算符优先级测试
     4         //算术运算比关系运算优先级高
     5         System.out.println(3>1+4);//false
     6         System.out.println(3>2*5);//false
     7         //关系运算优先级大于逻辑运算
     8         System.out.println(3>1&true);//true
     9         System.out.println(3>1^true);//false
    10         //算术运算比位运算优先级高
    11         System.out.println(1+5<<2);//24
    12         System.out.println(1+5>>1);//3
    13         //位运算比关系运算优先级高
    14         System.out.println(5>1>>2);//true
    15         System.out.println(5>(1&1));//true
    16         System.out.println(5>-6>>>1);//false
    17         //取反优先级大于算术
    18         System.out.println(~5+1);//-5,不是-7
    19         System.out.println(~5*2);//-12
    20 
    21         //三元运算符
    22         //算术比三元高
    23         System.out.println(3>2?1:20+20);//1,不是21
    24         //三元比关系运算低
    25         Object r=3>2?1:9<3;//r=3>2?1:false 
    26         System.out.println(r);//如果三元比关系高,返回false,否则返回1
    27         //三元比逻辑低 结果为true
    28         System.out.println(3>2?true:false&&false);//如果三元运算符优先,结果为false
    29         //三元比位(& | ^)低,结果是5
    30         System.out.println(3>2?5:8&1);//三元大于位,结果是1,三元小于位,结果是5    
    31     }    
    32 }

    测试结果

    总结

    总体来说,需要参与运算元素越多的运算符,优先级最低,如三目运算符比取反优先级更低,但是实际开发中估计无需刻意背诵优先级,不确定的使用括号一并解决并且好阅读。

    参考博文:

    (1)https://www.cnblogs.com/gavin-yao/p/10595835.html

  • 相关阅读:
    iOS SpriteKit 字体设置无效问题
    2021又来到了!
    其他人员优点
    自己缺点记录
    领导优点分析-于总
    领导优点分析-黄总
    Linux CentOS 7 安装字体库 & 中文字体
    mysql备份数据库
    MySQL mysqldump 导入/导出 结构&数据&存储过程&函数&事件&触发器
    mysql 导入导出数据库以及函数、存储过程的介绍
  • 原文地址:https://www.cnblogs.com/youngchaolin/p/11294056.html
Copyright © 2011-2022 走看看