1. 面試官:i = i++和 i = ++i 的有什么區(qū)別?

        共 1444字,需瀏覽 3分鐘

         ·

        2020-08-14 13:15

        點擊“開發(fā)者技術(shù)前線”,選擇“星標?”

        在看|星標|留言,? 真愛


        出處:blog.csdn.net/qq_44377709/article/details/106643703

        寫在前面:前些天看完了JVM的內(nèi)存結(jié)構(gòu),自以為自己是懂了,心里想想不就是分線程共享和線程私有嘛,然后又怎么怎么分怎么怎么的嘛…

        直到遇到了這道題目。說句實話,曾經(jīng)自己做這種運算題目,完全是靠腦子空想,然后拿上筆顫抖的寫下一個自己都不知道正不正確的答案。不過過了今天,我終于能確定它的答案了。

        為此,我也專門寫一篇博客,記錄我的學習?。?!

        1、題目

        package?pers.mobian.questions01;

        public?class?test01?{
        ????public?static?void?main(String[]?args)?{
        ????????int?i?=?1;
        ????????i?=?i++;
        ????????int?j?=?i++;
        ????????int?k?=?i?+?++i?*?i++;
        ????????System.out.println("i="+i);
        ????????System.out.println("j="+j);
        ????????System.out.println("k="+k);
        ????}
        }

        你能肯定并且準確的說出你的答案嗎?

        2、分析

        在做這道題時我們的腦中要有對應(yīng)的JVM內(nèi)存結(jié)構(gòu)。其中一個方法對應(yīng)一個棧幀

        此題目我們只需要用到棧幀里面的局部變量表和操作數(shù)棧

        2.1、第一步

        int i = 1

        只是一個簡單的賦值操作

        2.2、第二步

        i = i++

        結(jié)果:i還是等于1

        2.3、第三步

        int j = i++

        結(jié)果:i在局部變量表中變成了2,操作數(shù)棧中的 i 值為1,并且將 i 的值返回給 j,即此條語句以后,i = 2,j = 1

        2.4、第四步

        int k = i + ++i * i++

        結(jié)果:局部變量表中的i = 4,k = 11

        2.5、結(jié)果

        3、i = ++i

        按理說根據(jù)上面的分析過程,再來分析?i = ++i,就很簡單了。

        我們的 i 變量先在局部變量表中進行自增,然后再將 i 進棧,然后再把棧中的數(shù)據(jù)返回給我們的變量 i 。

        public?class?test02?{
        ????public?static?void?main(String[]?args)?{
        ????????int?i?=?1;
        ????????i?=?++i;
        ????????System.out.println(i);?//?結(jié)果:i = 2
        ????}
        }


        一點小福利,需要的讀者請自取。



        END


        前線推出學習交流群,加群一定要備注:研究/工作方向+地點+學校/公司+昵稱(如大數(shù)據(jù)+上海+上交+可可),根據(jù)格式備注,可更快被通過且邀請進群,領(lǐng)取一份專屬學習禮包

        掃碼加我微信進群,內(nèi)推和技術(shù)交流,大佬們零距離

        「在看」大家一起看


        瀏覽 50
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
          
          

            1. 色网址在线视频 | 超碰9 | 厨房脱岳裙子在后面挺视频 | 伊人偷拍视频 | 亚洲AV无码专区在线观看成人9 |