• 面试题一


    package com.foreign;
    public class Inc { 
        public static void main(String[] args) { 
           Inc inc = new Inc(); 
           int i = 0; 
           inc.fermin(i); 
           i= i ++; 
           System.out.println(i);
        
        
        void fermin(int i){ 
           i++; 
        
    }
     
    sout 输出是多少?
    ---------------------------------------------------------------------------------摘自牛客网------------------------------------------------------------------------------
    i++      先赋值在计算结果;
    ++i      先计算结果再赋值。
    int i = 0;  
           i = i ++;  // 左边这个i其实是障眼法,就是一个中间变量,可以和下行的i合并;
           System.out.println(i);   这里等价于:
      int i = 0;
           System.out.println(i++);   这下再看,先赋值(先将i传给println函数打印出来,在计算表达式结果)
    所以打印出来的是0,实际上整个表达式的结果已经是1了,只是没有打印出整个表达式的结果。
    所以我们知道如下结论:
    1、无论怎么变,i++和++i的整个表达式的结果都是1.
    2、有时我们打印的是表达式的结果(System.out.println(++i)),
          有时我们打印的只是一个中间变量(System.out.println(i++))。
    Ps:
    int i = 0;  
    i++;
    System.out.println(i);  //值为1    打印的是表达式的结果

    int i = 0;  
    ++i;
    System.out.println(i);  //值为1     打印的是表达式的结果 

    int i = 0;  
    i = i++;
    System.out.println(i);  //值为0      打印的是中间变量(JVM中间缓存变量机制)

    int i = 0;  
    i = ++i;
    System.out.println(i);  //值为1    打印的是表达式的结果
  • 相关阅读:
    打开XX.etl文件
    ubuntu 安装 openssh-server,xinetd,vmware tools
    ESXi时间同步
    常用正则表达式字符说明
    RPC 服务器不可用
    linux 常用命令
    解决RDP连接不上
    python数据持久存储-pickle模块
    lambda表达式/对象引用计数
    关闭网络打开远程文件时防火墙安全弹窗
  • 原文地址:https://www.cnblogs.com/fangke/p/9317235.html
Copyright © 2020-2023  润新知