• 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

  • 相关阅读:
    044 文件和数据格式化
    040 字典类型及操作
    042 实例10-文本词频统计
    Java中PreparedStatement和Statement的用法区别(转)
    java连接oracle的简单实例
    javamail发送邮件的简单实例(转)
    JAVA IO之管道流总结大全(转)
    缓冲流和转换流(转)
    使用缓冲流来读写文件(转)
    JAVA向文件中追加内容(转)
  • 原文地址:https://www.cnblogs.com/youngchaolin/p/11294056.html
Copyright © 2020-2023  润新知