今天給大家分析一下變量在內(nèi)存中的分配情況,這也是變量的基本工作原理,我們求職時(shí)面試官就喜歡考察這一塊的內(nèi)容哦。
回想一下,我們之前定義變量的基本過(guò)程,比如int x=100;:
1. 首先需要指明該變量的數(shù)據(jù)類型,比如本文中說(shuō)到的int整型;
2. 然后要給該變量設(shè)置一個(gè)變量名,比如變量名稱x;
3. 接著我們還要給變量賦值,比如 x=100。
在以上定義變量并賦值的過(guò)程中,x是變量名。JVM虛擬機(jī)會(huì)給該變量在內(nèi)存中分配一個(gè)位置0x002(這個(gè)地址值是我隨便寫(xiě)的,計(jì)算機(jī)底層會(huì)按自己的規(guī)律生成),然后計(jì)算機(jī)底層就會(huì)根據(jù)該位置來(lái)找到x變量的真實(shí)存儲(chǔ)位置。這個(gè)內(nèi)存中的地址值,相當(dāng)于是x變量的”門(mén)牌號(hào)“,別人可以根據(jù)這個(gè)地址值找到x變量。對(duì)于基本類型的x變量來(lái)說(shuō),它的整型值100會(huì)存儲(chǔ)在一個(gè)叫做”棧“的結(jié)構(gòu)里,關(guān)于”棧“的詳細(xì)內(nèi)容,壹哥會(huì)在后面的文章中再單獨(dú)說(shuō)明。一句話,創(chuàng)建變量時(shí),需要在內(nèi)存中申請(qǐng)一塊空間。內(nèi)存管理系統(tǒng)會(huì)根據(jù)變量的類型來(lái)為變量分配存儲(chǔ)空間,分配的空間只能用來(lái)儲(chǔ)存該類型數(shù)據(jù)。大家可以參考壹哥繪制的示意圖來(lái)理解整型變量x的內(nèi)存結(jié)構(gòu):