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