• JAVA运算符


    1)

    1 public class Operator {
    2 
    3     public static void main(String[] args) {
    4         int a=4,b=3;
    5         a += b ;            //a + b 的值存放到a中
    6         a *= b++ ;         //a * b的值存放到a中,b加1
    7         a *=++ b;         //b+1后,再将a*b的值存放到a中
    8     }
    9 }

     2)java的中间缓存变量

     1 public class Inc { 
     2     public static void main(String[] args) { 
     3        Inc inc = new Inc(); 
     4        int i = 0; 
     5        inc.fermin(i); 
     6        i= i ++; 
     7        System.out.println(i);
     8     
     9     } 
    10     void fermin(int i){ 
    11        i++; 
    12     } 
    13 }

    输出结果为:0

    分析:

    Java使用了中间缓存变量机制:
      i=i++;等同于:i++是先将i赋值,然后再自增
      temp=i; (等号右边的i)
      i=i+1;      (等号右边的i)
      i=temp;   (等号左边的i)
      而i=++i;则等同于:
      i=i+1;
      temp=i;
      i=temp;

    故调用fermin函数不会影响i的值,所以i=0,然后公式i=i++;i的值依然是0,所以程序运行的结果是0。

    另外:fermin()方法中,隐含重新定义了一个新的int类型的i,如果要返回此方法的处理结果,必须使用return,这也许就是return存在的必要性。

     此处涉及参数的传递,且没有全局变量,还有一种情况是不涉及参数传递但有全局变量,参考本人博客http://www.cnblogs.com/XuGuobao/p/7227535.html

  • 相关阅读:
    Maven的生命周期
    Spring Framework: @RestController vs @Controller
    HTMl5的sessionStorage和localStorage
    Gradle下载类库源码
    Spring Boot, Java Config
    NodeJS简记
    8 commands to check cpu information on Linux
    守护进程之守护进程的惯例
    守护进程之单实例守护进程
    守护进程之出错记录
  • 原文地址:https://www.cnblogs.com/XuGuobao/p/7227131.html
Copyright © 2020-2023  润新知