zoukankan      html  css  js  c++  java
  • java运算符优先级和结合性

    运算符                         结合性

    [ ] . ( ) (方法调用)                  从左向右

    ! ~ ++ -- +(一元运算) -(一元运算)           从右向左

    * / %                        从左向右

    + -                          从左向右

    << >> >>>                     从左向右

    < <= > >= instanceof                从左向右

    == !=                         从左向右

    &                             从左向右
    ^                              从左向右
    |                               从左向右
    &&                              从左向右
    ||                               从左向右
    ?:                               从右向左

    = += -= *= /= %= &= |= ^= <<= >>= >>=    从右向左
    =============================================
    出一个题目:
    int i=3;
    int number=-i++;
    System.out.printf("number=%d ",number);
    System.out.printf("i=%d ",i);
    答案显示number=-3  i=4
    问题:++的优先级不是高于-号吗?为啥不是 -(i++)呢?
    解答:首先向右结合指的是符号本身,而不是变量,所以++的右面没有变量,而-的右面有变量,
    而且,++和-的优先级相同。所以,这个时候变成-3,根据后置++的定义,变量是先使用后自增的原则,结果为-3
    最后i的值自增1变为4。
  • 相关阅读:
    合并两个排序的链表
    把数组排成最小的数
    maven下使用jstl标签(1.2)版本
    SpringMVC5中,@ModelAttribute注解详解
    JavaWeb项目中斜杠(/)表示web工程、webapps的场景
    JavaWeb中jsp路径斜杆(/)跟没斜杆的路径映射问题
    关于Java多线程-interrupt()、interrupted()、isInterrupted()解释
    常见的HTTP状态码
    Java中的String,StringBuilder,StringBuffer三者的区别
    解决/WEB-INF目录下的jsp页面引入webRoot下的Js、css和图片的问题
  • 原文地址:https://www.cnblogs.com/litifeng/p/6647021.html
Copyright © 2011-2022 走看看