導(dǎo)讀讓我們從下面的陳述開始:1.這句話到底是什么意思?想想變量是什么,值是什么。一個常見的比喻是,變量類似于一個盒子。就像你可以用盒子來存儲東西一樣,你也可以用變量
讓我們從下面的陳述開始:
1.這句話到底是什么意思?
想想變量是什么,值是什么。
一個常見的比喻是,變量類似于一個盒子。
就像你可以用盒子來存儲東西一樣,你也可以用變量來存儲值。
當(dāng)聲明一個變量時,我們需要設(shè)置它的類型。
Java中有兩種類型:原語類型和引用類型。
聲明以存儲基元類型變量的值;引用類型聲明的變量存儲引用。
在這種情況下,初始化語句聲明一個變量“x”。
“x”存儲一個字符串引用。
這里是零。
下面的可視化將更好地理解這個概念。
如果x =“ABC”,則如下:
2.內(nèi)存中到底什么是null?
內(nèi)存中到底什么是null?或者Java里的空值是什么?
首先,null不是一個有效的對象實(shí)例,所以沒有為它分配內(nèi)存。
它只是一個值,指示對象引用當(dāng)前沒有引用該對象。
來自JVM規(guī)范:
Java虛擬機(jī)規(guī)范不要求特定值編碼為空。
我假設(shè)和其他C語言一樣都是0。
3.內(nèi)存中的X到底是什么?
現(xiàn)在我們知道零是什么了。
我們知道變量是一個存儲位置和一個關(guān)聯(lián)的符號名(標(biāo)識符),它包含一些值。
X在內(nèi)存中的確切位置?
從JVM運(yùn)行時數(shù)據(jù)區(qū)的圖中,我們知道由于每個方法在線程堆棧中都有一個私有的堆??蚣埽跃植孔兞课挥谶@個框架中。