java進階:【java內存結構】
前言

1.每一個方法執(zhí)行時,都有一個獨立的內存空間,給內存空間在方法執(zhí)行完畢之后,隨之被回收。這個入地的內存空間稱之為棧幀。
2.堆存放的是當前Java程序執(zhí)行時共享數(shù)據(jù)。在堆中,如果一個對象沒有被變量指向,該變量就符合垃圾回收機制的條件。
正文
簡單的Java內存結構圖
1.方法區(qū):用來存儲代碼。將.class文件加載到內存中,并存儲在方法區(qū)
2.棧:用來存儲局部變量,形參,方法的返回值,中間運算結果
3.堆:成員變量,數(shù)組對象,方法的引用
4.本地方法區(qū):存儲鏈接本地方法相關的代碼
5.執(zhí)行過程:
執(zhí)行了java命令之后,classloader將.class文件,加載到內存中并存儲在方法區(qū)。
然后JVM調用main方法,順次執(zhí)行代碼。
將局部變量存儲在棧區(qū)中,將引用變量是指向內容存儲在堆區(qū)中。
引用變量所指向的空間,用來存儲hashcode碼,順次執(zhí)行到mian方法完畢。
再通過classLoader將.class文件內容在JVM所占用的空間全部卸載。
Java JVM
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。