Java 虛擬機(jī)(JVM)之基本概念詳解
1、類加載子系統(tǒng):負(fù)責(zé)從文件系統(tǒng)或者網(wǎng)絡(luò)中加載Class信息,加載的信息存放在一塊稱之為方法區(qū)的內(nèi)存空間。
2、方法區(qū):就是存放類信息、常量信息、常量池信息、包括字符串字面量和數(shù)字常量等。方法區(qū)是輔助堆棧的塊永久區(qū),解決堆棧信息的產(chǎn)生,是先決條件。
3、Java堆:再java虛擬機(jī)啟動(dòng)的時(shí)候建立Java堆,它是java程序最主要的內(nèi)存工作區(qū)域,幾乎所有的對(duì)象實(shí)例都存放到Java堆中,堆空間是所有線程共享的。堆解決的是數(shù)據(jù)存儲(chǔ)問(wèn)題,即數(shù)據(jù)怎么放、放在哪兒。
4、直接內(nèi)存:Java的NIO庫(kù)允許Java程序使用直接內(nèi)存,從而提高性能,通常直接內(nèi)存速度會(huì)優(yōu)于Java堆。讀寫頻繁的場(chǎng)合可能會(huì)考慮使用。
5、每個(gè)虛擬機(jī)線程都有一個(gè)私有的棧,一個(gè)線程的Java棧在線程創(chuàng)建的時(shí)候被創(chuàng)建,Java棧中保存著局部變量、方法參數(shù)、同時(shí)Java的方法調(diào)用、返回值等。棧解決程序的運(yùn)行問(wèn)題,即程序如何執(zhí)行,或者說(shuō)如何處理數(shù)據(jù)。
6、本地方法棧:和Java棧非常類似,最大不同為本地方法棧用于本地方法調(diào)用,Java虛擬機(jī)允許Java直接調(diào)用本地方法。
7、垃圾收集系統(tǒng):是Java的核心,也是必不可少的,Java有一套自己進(jìn)行垃圾清理的機(jī)制,開(kāi)發(fā)人員無(wú)需手工清理。
8、PC寄存器:每個(gè)線程私有的空間,Java虛擬機(jī)會(huì)為每個(gè)線程創(chuàng)建PC寄存器,在任意時(shí)刻,一個(gè)Java線程總是在執(zhí)行一個(gè)方法,這個(gè)方法被稱為當(dāng)前方法,如果當(dāng)前方法不是本地方法,PC寄存器就會(huì)執(zhí)行當(dāng)前正在被執(zhí)行的指令,如果是本地方法,則PC寄存器值為undefined,寄存器存放如當(dāng)前執(zhí)行環(huán)境指針、程序計(jì)數(shù)器、操作棧指針、計(jì)算的變量指針等信息。
9、虛擬機(jī)最核心的組件就是執(zhí)行引擎了,它負(fù)責(zé)執(zhí)行虛擬機(jī)的字節(jié)碼,一般用戶先進(jìn)行編譯成機(jī)器碼后執(zhí)行。
以上這篇Java 虛擬機(jī)(JVM)之基本概念詳解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Spring Boot集成MyBatis訪問(wèn)數(shù)據(jù)庫(kù)的方法
這篇文章主要介紹了Spring Boot集成MyBatis訪問(wèn)數(shù)據(jù)庫(kù)的方法,需要的朋友可以參考下2017-04-04Java關(guān)鍵字volatile知識(shí)點(diǎn)總結(jié)
在本篇文章里小編給大家整理的是一篇關(guān)于Java關(guān)鍵字volatile知識(shí)點(diǎn)總結(jié)內(nèi)容,有興趣的朋友們可以學(xué)習(xí)參考下。2021-01-01RocketMQ生產(chǎn)者如何規(guī)避故障Broker方式詳解
這篇文章主要為大家介紹了RocketMQ生產(chǎn)者如何規(guī)避故障Broker方式詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11WebSocket整合SSM(Spring,Struts2,Maven)的實(shí)現(xiàn)示例
這篇文章主要介紹了WebSocket整合SSM(Spring,Struts2,Maven)的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-01-01使用Feign調(diào)用注解組件(實(shí)現(xiàn)字段賦值功能)
這篇文章主要介紹了使用Feign調(diào)用注解組件(實(shí)現(xiàn)字段賦值功能),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03詳解spring boot jpa整合QueryDSL來(lái)簡(jiǎn)化復(fù)雜操作
這篇文章主要介紹了詳解spring boot jpa整合QueryDSL來(lái)簡(jiǎn)化復(fù)雜操作,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-04-04Java如何利用狀態(tài)模式(state pattern)替代if else
這篇文章主要給大家介紹了關(guān)于Java如何利用狀態(tài)模式(state pattern)替代if else的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11