當我們利用編程說話進行編程時,一個必需要考慮的問題就是內存的分派和辦理,只有為特心猿意馬的對象分派新的存儲空間,才能把新的數據添加進去,因為計較機的內存是有限的,所以需要在利用完響應的資本后將對應的空間進行釋放,才能使得系統的內存讓我們的Java虛擬機輪回利用
我們起首啟動Java的IDE,這里以常用的Eclipse軟件為例,在一個建立好了的Java工程中,點擊File-New-Class,即可新建一個通俗類
在彈出來的“New Class”中,可以對欲添加的通俗類的類名和實現的接口進行界說,注重要合適Java標識符的定名法則,可以就定名為“MemoryTest”,可以選擇勾選上本家兒方式“public static void main(String[] args)”
點擊“Finish”按鈕后,可以看到我們已經建立了一個空白的內存辦理測試類,只包含了包名和類名,還包含了主動生當作的本家兒方式,具體的實現過程還要我們添加具體內容
不異內容的對象在Java里是否指標的目的統一份內存空間呢?我們用new語句建立兩個字符串對象別離為s1和s2,并賦以不異的初值“abc”,此中變量名和初始值可以自行界說
在泛泛環境下,我們可以挪用Object類的Hashcode()方式來獲取對象的散列碼來區分在內存中的存儲位置,可是對于字符串對象而言不成以,因為計較方式是按照字符進行計較的
所以需要挪用System.identityHashCode()這個當地方式,可以返回無不同的內存空間,這里可以看到打印出來的兩個地址值是分歧的,表白此時Java已經為這兩個同名的字符串對象分派了分歧的內存空間
當要釋放內存的空間時,只需要將當前對象的值賦值為null(空),即可將它的引用從內存中刪除,可以再次挪用散列碼方式來獲得它在內存中的地址,可以發現此時地址已經為0了,表白此時已經被垃圾收集器gc給清理了
0 篇文章
如果覺得我的文章對您有用,請隨意打賞。你的支持將鼓勵我繼續創作!