• 有关于i++,i=i++等符号的笔记


    最近在看一些基础知识,发现自己以前忽略掉了很多东西,而这些东西恰恰是面试笔试中最常考到的

    1.i=i+1

    这个是最简单,最明了的一个表达式 

    2.有关于i++和++i的区别

    i++和++i都是代表i=i+1的意思; 

    i++指的是i++所在的语句运行后,i再自增1;

    ++i指的是++i所在的语句运行前,i先自增1;

    其实这个大家都懂,就不在阐述;

    同时加一道题目,大家看看

    int i=0; 

    i=++i + i++ + i++ + i++;

    结果i等于多少?

    首先,“++i” 后此时i= 1;然后第一个“i++” 后,i 依然等于1;但是第二个“i++”的时候,由于第一个“i++”的滞后自增,此时i=2;

    到了第三个“i++”的时候,由于第二个滞后自增,此时i=3;所以i=1 + 1 + 2 + 3 = 7

    3. i=i++;

    如果基础不好的人,很容易和前面的表达式混淆,以为上面表达的意思是i=i++和i=i+1等价,其实差别很大的,

    原因是java中有中间缓存变量的机制,所以i=i++等价于:

    temp=i;

    i=i+1;

    i=temp;

    所以如果有使用到i的值的时候,其实i的值是不变的

    下面给一道面试题

        public static void main(String[] args) {
            int j =0;
            for (int i=0 ; i<100; i++){
                j = j++;
                //java使用了中间缓存变量
                
    //j= j ++;相当于
                
    //temp = j;
                
    //j = j + 1;
                
    //j = temp;
            }
            System.out.println(j);

        } 

    其实最后j还是等于0,而不是想象中的100。

    希望能帮助到大家。。。 

  • 相关阅读:
    命名mangling(压榨)
    Redis的源代码分析
    开源数据库 Sharding 技术 (Share Nothing)
    Python中time模块详解
    关于海量数据的数据模型
    字符数组,字符指针,Sizeof总结
    ConfigParser模块的使用
    分享懒人张RDLC报表(七、八)
    VS中提示:未能启用约束。一行或多行中包含违反非空、唯一或外键约束的值。
    VS用正则表达式统计代码行数
  • 原文地址:https://www.cnblogs.com/kgrdomore/p/4223780.html
Copyright © 2020-2023  润新知