<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 17,  comments - 14,  trackbacks - 0

          首先,寫一段程序,分析程序執(zhí)行的過程中,堆棧空間的開辟、空間內(nèi)數(shù)據(jù)的寫入和垃圾空間的回收。

        上代碼

    Person

    Demo01

    程序運行結(jié)果為:

    01

    分析程序執(zhí)行過程:

    創(chuàng)建Person類,屬性有name和age,構(gòu)建一個say方法:打印姓名和年齡。

    然后逐句分析Demo01運行過程,及運行過程中堆棧內(nèi)存的開辟、寫入數(shù)據(jù)和回收。

    Person p1 = new Person(); //在棧內(nèi)存中開辟p1,然后用new關(guān)鍵字創(chuàng)建對象,

                                           //也就是在對內(nèi)存中開辟p1所指向的堆內(nèi)存空間。

    Person p2 = new Person(); //在棧內(nèi)存中開辟p2,然后用new關(guān)鍵字創(chuàng)建對象,

                                           //也就是在對內(nèi)存中開辟p2所指向的堆內(nèi)存空間。

    此時的堆棧內(nèi)存:

    02

    接下來的四句話為:

    p1.name = "張三";

    p1.age = 20;

    p2.name = "李四";

    p2.age = 30;

    此時的堆棧內(nèi)存為:

    04

    最后對p1、p2執(zhí)行say方法,結(jié)果為:

    01

    若把程序改一下,加上一句話:p2 = p1;

    程序變?yōu)椋?/p>

    Demo01

    再執(zhí)行:

    執(zhí)行加入的語句之前不變,堆棧空間也和加之前相同,當(dāng)執(zhí)行加入的語句之后,

    堆棧內(nèi)存為:

    05

    此時棧內(nèi)存p2指向p1所指向的堆內(nèi)存空間,而p2之前指向的堆內(nèi)存空間已經(jīng)沒有了棧內(nèi)存的指向,

    因此成為垃圾,就會被回收掉,堆棧內(nèi)存變?yōu)椋?/p>

    07

    再執(zhí)行下面兩句,為p1指向的堆內(nèi)存空間賦值,由于p1、p2指向同一塊堆內(nèi)存,也就相當(dāng)于為p2

    指向的堆內(nèi)存空間賦值,堆棧內(nèi)存變?yōu)椋?/p>

    06

    再執(zhí)行下面兩句,為p2指向的堆內(nèi)存空間賦值,由于p1、p2指向同一塊堆內(nèi)存,也就相當(dāng)于為

    p1指向的堆棧內(nèi)存空間重新賦值,堆棧內(nèi)存變?yōu)椋?/p>

    08

    我們可以看到,棧內(nèi)存p1、p2所指向的同一塊堆內(nèi)存中的數(shù)據(jù)改變了,然后執(zhí)行下面的say方法,

    執(zhí)行結(jié)果為:

    09

    為什么兩句結(jié)果相同呢?因為是程序按語句的順序執(zhí)行,先改變堆內(nèi)存的數(shù)據(jù),后執(zhí)行的say方法,

    所以兩句結(jié)果相同。

    若把程序再改一下,把 p1.say(); 提前

    程序變?yōu)椋?/p>

    Demo01

    執(zhí)行語句 p1.say();  之前,堆棧內(nèi)存為:

    06

    執(zhí)行 p1.say(); 對堆棧內(nèi)存沒有影響,只是輸出此時p1所指向的堆內(nèi)存中的數(shù)據(jù):

    輸出:10 ,然后繼續(xù)執(zhí)行下面的語句。

    執(zhí)行p2.name = "李四"; p2.age = 30;

    為p2指向的堆內(nèi)存空間賦值,由于p1、p2指向同一塊堆內(nèi)存,也就相當(dāng)于為

    p1指向的堆棧內(nèi)存空間重新賦值,堆棧內(nèi)存變?yōu)椋?/p>

    08

    然后執(zhí)行  2.say();  輸出棧內(nèi)存 p2 指向的對內(nèi)存中的數(shù)據(jù):“姓名:李四, 年齡:30”

    完整的程序執(zhí)行完后,輸出結(jié)果為:

    11

    總結(jié):

          語句的排列順序不同,程序執(zhí)行的結(jié)果也不同。

    posted on 2010-10-12 02:55 Mineralwasser 閱讀(246) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿(1)

    文章檔案(21)

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲中文字幕无码中文字| 久久久久一级精品亚洲国产成人综合AV区| 亚洲成a人片在线观看无码| 免费观看四虎精品成人| 亚洲不卡AV影片在线播放| 老子影院午夜伦不卡亚洲| 国产又黄又爽又刺激的免费网址 | 亚洲人成免费电影| 亚洲高清在线mv| 久久久久久国产a免费观看黄色大片 | 男人天堂2018亚洲男人天堂| 青青青国产在线观看免费网站| 亚洲欧洲精品国产区| 四虎在线视频免费观看视频| 亚洲人成在线中文字幕| 免费人成在线视频| 美女视频黄频a免费观看| 亚洲一区二区三区免费| a级毛片免费高清毛片视频| 亚洲AV日韩AV永久无码绿巨人| 114级毛片免费观看| 亚洲国产欧美日韩精品一区二区三区 | 国产福利在线观看免费第一福利| 国产精品亚洲自在线播放页码| 午夜男人一级毛片免费| 男男黄GAY片免费网站WWW| 亚洲尤码不卡AV麻豆| 99久久免费精品视频| 亚洲乱理伦片在线观看中字| 久久精品国产亚洲AV不卡| 精品无码AV无码免费专区 | 亚洲日韩激情无码一区| 在线a免费观看最新网站| 亚洲精品无播放器在线播放| 亚洲精品视频久久久| 6080午夜一级毛片免费看6080夜福利 | 新最免费影视大全在线播放| 亚洲av激情无码专区在线播放| A在线观看免费网站大全| 国产精品免费久久久久影院 | 最近2019免费中文字幕视频三|