以上就是整個編譯的過程了小編接下來介紹類加載:編譯將程序編譯成字節碼之后下一步就是類加載到內存的過程。

滿洲網站制作公司哪家好,找
成都創新互聯公司!從網頁設計、網站建設、微信開發、APP開發、
響應式網站設計等網站項目制作,到程序開發,運營維護。
成都創新互聯公司于2013年開始到現在10年的時間,我們擁有了豐富的建站經驗和運維經驗,來保證我們的工作的順利進行。專注于網站建設就選
成都創新互聯公司。
類加載的過程是在虛擬機內存的方法區進行這地方涉及到虛擬機內存。虛擬機內存區域劃分為:程序計數器、棧、本地方法棧、堆、方法區(部分區域為運行時常量池)、直接內存。
程序計數器
程序計數器是一塊較小的內存空間它可以看做是當前線程所執行的字節碼的行號指示器。在JVM概念模型中字節碼解釋器工作時就是通過改變這個計數器的值來選取下一條需要執行的字節碼指令。
棧
棧用于存儲局部變量表、操作數棧、動態鏈接、方法出口等信息其中局部變量表存放了編譯期克制的各種基本數據類型、對象引用它與程序計數器一樣都是線程私有的。
本地方法棧
本地方法棧與上面介紹的虛擬機棧作用相似它們的區別不過是虛擬機棧為虛擬機執行Java方法(字節碼)服務,而本地方法棧則為虛擬機使用的Native方法服務甚至有的虛擬機會把這兩塊合二為一。
堆
堆是JVM管理內存的一塊它是被所有線程共享的一塊區域,它的唯一目的是存放對象實例幾乎所有的對象實例都在這里分配內存這地方也是垃圾收集管理的主要區域,從內存回收角度看現在垃圾收集器都采用分代收集算法,所以Java堆還可以進一步細分:新生代和老年代、而新生代進一步細分:Eden空間、FromSurvivor空間、To Survivor空間。為了效率考慮堆還可能劃分為多個線程私有的分配緩沖區(TLAB)無論如何劃分,都與存放內容無關無論哪個區域存放的依然是對象實例它們存在的目的只是為了更好的回收和分配內存而已。
文章名稱:Java虛擬機--一段Java程序的生命史(三)
鏈接分享:http://vcdvsql.cn/article44/chcghe.html
成都網站建設公司_創新互聯,為您提供網站設計、網站收錄、定制網站、網站制作、搜索引擎優化、小程序開發
廣告
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源:
創新互聯