對(duì)象內(nèi)存圖

多個(gè)對(duì)象指向相同

new 出來(lái)的 s1 就是一個(gè)地址值

1. 首先,main()方法被加載到棧內(nèi)存。(圖1)

圖 1

2.創(chuàng)建第一個(gè)對(duì)象。在mian方法中出現(xiàn) s1;new Student() 就會(huì)在堆內(nèi)存中出現(xiàn),name 和 age 對(duì)應(yīng)的默認(rèn)值分別為 null 和 0;它的地址值是001,賦值給 s1,s1 通過(guò) 001 就指向堆內(nèi)存這塊地址。(圖2)

圖 2

3.? ?s1.name = "林青霞";
這里修改了 s1 對(duì)應(yīng)的name值為:林青霞同理, s1.age = 30;? 把a(bǔ)ge 對(duì)應(yīng)的值修改為30? ? ? ?(圖 3)

圖 3

4. 第一次輸出的時(shí)候。
s1 通過(guò) 棧內(nèi)存的 001 指向 堆內(nèi)存的 001.
name 和 age 的值分別是:林青霞 和 30
做一個(gè)拼接,在控制臺(tái)輸出? ? (圖 4)

圖 4

5.? Student s2 = s1;
左邊 Student s2 會(huì)出現(xiàn)在 main方法中,把s1的值賦值給s2,s2和s1的值是相同的? 001? ,都指向 堆內(nèi)存 001 這塊內(nèi)存空間(圖 5)

圖 5

6. 通過(guò) s2 修改name 的值為 張曼玉,s2 通過(guò)001指向堆內(nèi)存的001 ,修改 name 的值? (圖 6)
?通過(guò) s2 修改 age 的值為 28,s2 通過(guò)001指向堆內(nèi)存的001 ,修改 age 的值(圖 7)

圖 6
圖 7

7. 最后輸出 s1和s2 時(shí),s1、s2都是001 指向相同的堆內(nèi)存地址,他們的數(shù)據(jù)內(nèi)容是相同的(圖 8),所以在控制臺(tái)看到,輸出通過(guò) s1、s2 訪(fǎng)問(wèn)結(jié)果 是相同的(圖 9)

圖 8
圖 9

當(dāng)兩個(gè)對(duì)象指向相同,也就是它的地址值相同時(shí),其中一個(gè)對(duì)象修改了堆內(nèi)存的內(nèi)容,另一個(gè)對(duì)象去訪(fǎng)問(wèn)時(shí),內(nèi)容也是修改過(guò)的

8. 接著往下執(zhí)行, main方法就從棧內(nèi)存消失了

圖 9



成員變量和局部變量

1. 什么是成員變量和局部變量

成員變量:類(lèi)中方法外的變量

局部變量:方法中的變量 (方法形參位置的變量也是局部變量)

2. 成員變量和局部變量區(qū)別

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容