課程
/后端開發(fā)
/Java
/Java入門第二季 升級(jí)版
引用值為什么是地址
2016-08-11
源自:Java入門第二季 升級(jí)版 9-9
正在回答
在java的邏輯內(nèi)存中分棧內(nèi)存和堆內(nèi)存。其中像是int,short,long,char,double等基本數(shù)據(jù)類型所需要的空間是固定的,在運(yùn)算時(shí)數(shù)據(jù)是存儲(chǔ)在棧內(nèi)存中。而對(duì)于一個(gè)引用類型的變量,如String,或者一個(gè)對(duì)象,系統(tǒng)并不知道它們所占的空間具體值。在創(chuàng)建時(shí),首先為了保證系統(tǒng)能夠找到它,先在棧內(nèi)存中存一個(gè)標(biāo)識(shí)和基本空間(如創(chuàng)建person類的man對(duì)象: “person man”的意思就是在棧內(nèi)存中創(chuàng)建man的空間 ,接下來通過new關(guān)鍵字在堆內(nèi)存中創(chuàng)建一塊空間,在將地址值返回給棧內(nèi)存中)。對(duì)于一次性使用的對(duì)象可以直接用”new 類名()”的形式創(chuàng)建一個(gè)匿名對(duì)象(如匿名person對(duì)象調(diào)用talk方法:new person.talk()),因?yàn)橄到y(tǒng)無法再次找到它,所以在執(zhí)行一次后將會(huì)被java虛擬機(jī)當(dāng)做垃圾進(jìn)行回收。在執(zhí)行如運(yùn)算符"=="的過程中其實(shí)都是直接在棧中就行操作,從而比較的其實(shí)是指向的地址,而不是內(nèi)容。
yuhq 提問者
引用值是在程序設(shè)計(jì)中,對(duì)于函數(shù)調(diào)用的一種方法,把值傳遞到新的變量,修改新的變量,不會(huì)修改原來的參數(shù)
隔壁諸葛村夫
舉報(bào)
課程升級(jí)!以終為始告別枯燥,在開發(fā)和重構(gòu)中體會(huì)Java面向?qū)ο缶幊痰膴W妙
4 回答引用是什么
5 回答什么是引用?
4 回答引用是什么意思??
1 回答什么是對(duì)象的引用?
2 回答對(duì)象的值和對(duì)象引用的值是不一樣的么?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購(gòu)課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2016-08-11
在java的邏輯內(nèi)存中分棧內(nèi)存和堆內(nèi)存。其中像是int,short,long,char,double等基本數(shù)據(jù)類型所需要的空間是固定的,在運(yùn)算時(shí)數(shù)據(jù)是存儲(chǔ)在棧內(nèi)存中。而對(duì)于一個(gè)引用類型的變量,如String,或者一個(gè)對(duì)象,系統(tǒng)并不知道它們所占的空間具體值。在創(chuàng)建時(shí),首先為了保證系統(tǒng)能夠找到它,先在棧內(nèi)存中存一個(gè)標(biāo)識(shí)和基本空間(如創(chuàng)建person類的man對(duì)象: “person man”的意思就是在棧內(nèi)存中創(chuàng)建man的空間 ,接下來通過new關(guān)鍵字在堆內(nèi)存中創(chuàng)建一塊空間,在將地址值返回給棧內(nèi)存中)。對(duì)于一次性使用的對(duì)象可以直接用”new 類名()”的形式創(chuàng)建一個(gè)匿名對(duì)象(如匿名person對(duì)象調(diào)用talk方法:new person.talk()),因?yàn)橄到y(tǒng)無法再次找到它,所以在執(zhí)行一次后將會(huì)被java虛擬機(jī)當(dāng)做垃圾進(jìn)行回收。在執(zhí)行如運(yùn)算符"=="的過程中其實(shí)都是直接在棧中就行操作,從而比較的其實(shí)是指向的地址,而不是內(nèi)容。
2016-08-11
引用值是在程序設(shè)計(jì)中,對(duì)于函數(shù)調(diào)用的一種方法,把值傳遞到新的變量,修改新的變量,不會(huì)修改原來的參數(shù)