<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

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

          共 1444字,需瀏覽 3分鐘

           ·

          2020-08-14 13:15

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

          在看|星標(biāo)|留言,? 真愛(ài)


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

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

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

          為此,我也專門寫一篇博客,記錄我的學(xué)習(xí)?。?!

          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);
          ????}
          }

          你能肯定并且準(zhǔn)確的說(shuō)出你的答案嗎?

          2、分析

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

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

          2.1、第一步

          int i = 1

          只是一個(gè)簡(jiǎn)單的賦值操作

          2.2、第二步

          i = i++

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

          2.3、第三步

          int j = i++

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

          2.4、第四步

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

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

          2.5、結(jié)果

          3、i = ++i

          按理說(shuō)根據(jù)上面的分析過(guò)程,再來(lái)分析?i = ++i,就很簡(jiǎn)單了。

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

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


          一點(diǎn)小福利,需要的讀者請(qǐng)自取。



          END


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

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

          「在看」大家一起看


          瀏覽 50
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产日产欧美一级A片 | 成人精品999 | 亚洲综合免费观看高清完整 | 五月天婷婷色亚洲丁香 | 亚洲成人娱乐 |