java虛擬機(jī)是做什么用的
為了能夠在不同的平臺(tái)支持java的語言,我們需要一種輔助機(jī)制進(jìn)行翻譯,所以java虛擬機(jī)就誕生了,也就是平時(shí)所說的JVM。能夠?qū)ava語言進(jìn)行翻譯,然后適應(yīng)于其他的平臺(tái)。下面窩們就JVM的概念,與其他機(jī)制的關(guān)系、設(shè)置參數(shù)帶來介紹,然后講解其中的一個(gè)重點(diǎn)知識(shí)點(diǎn)。
1.概念JVM是java上的一個(gè)虛構(gòu)出來的計(jì)算機(jī),是一個(gè)位于Java與操作系統(tǒng)之間的中間態(tài)。有自己完善的硬件結(jié)構(gòu),如處理器、堆棧、寄存器等,還具有相應(yīng)的指令系統(tǒng)。
2.JVM、JRE和JDK的關(guān)系-Xmx Java Heap最大值,默認(rèn)值為物理內(nèi)存的1/4,最佳設(shè)值應(yīng)該視物理內(nèi)存大小及計(jì)算機(jī)內(nèi)其他內(nèi)存開銷而定;
-Xms Java Heap初始值,Server端JVM最好將-Xms和-Xmx設(shè)為相同值,開發(fā)測(cè)試機(jī)JVM可以保留默認(rèn)值;
-Xmn Java Heap Young區(qū)大小,不熟悉最好保留默認(rèn)值;
-Xss 每個(gè)線程的Stack大小,不熟悉最好保留默認(rèn)值
4.常用知識(shí)點(diǎn)堆(heap)與棧(stack)
堆和棧是程序運(yùn)行的關(guān)鍵,很有必要它他們的關(guān)系說清楚。
在java中,Main函數(shù)就是棧的起始點(diǎn),也是程序的起始點(diǎn)。程序要運(yùn)行總是有一個(gè)起點(diǎn)的(程序執(zhí)行的入口)。
棧幀相關(guān)
int i=0;i=i++; sout(i);//為什么i還等于0?
java虛擬機(jī)定義:
虛擬機(jī)是一種抽象化的計(jì)算機(jī),通過在實(shí)際的計(jì)算機(jī)上仿真模擬各種計(jì)算機(jī)功能來實(shí)現(xiàn)的。Java虛擬機(jī)有自己完善的硬體架構(gòu),如處理器、堆棧、寄存器等,還具有相應(yīng)的指令系統(tǒng)。Java虛擬機(jī)屏蔽了與具體操作系統(tǒng)平臺(tái)相關(guān)的信息,使得Java程序只需生成在Java虛擬機(jī)上運(yùn)行的目標(biāo)代碼(字節(jié)碼),就可以在多種平臺(tái)上不加修改地運(yùn)行。
所謂的java虛擬機(jī),就是一臺(tái)虛擬的機(jī)器。它是一款軟件,用來執(zhí)行一系列虛擬計(jì)算機(jī)指令,大體上虛擬機(jī)可以分為系統(tǒng)虛擬機(jī)和程序虛擬機(jī)。visual Box、VMare就屬于系統(tǒng)虛擬機(jī)。他們完全是對(duì)物理計(jì)算機(jī)的仿真,提供一個(gè)可運(yùn)行完整操作系統(tǒng)的軟件平臺(tái)。而java虛擬機(jī)就是典型程序虛擬機(jī),它專門為執(zhí)行單個(gè)計(jì)算機(jī)程序而設(shè)計(jì),在java虛擬機(jī)中執(zhí)行的指令我們稱之為java字節(jié)碼指令。java發(fā)展到今天,出現(xiàn)了很多虛擬機(jī),最初sun使用的叫Classic的java虛擬機(jī),到現(xiàn)在使用最廣泛的是HotSpot虛擬機(jī),除了sun以外還有BEA的JRockit,目前JRockit和HotSpot都被甲骨文公司收入旗下,大有整合的趨勢(shì)。
到此這篇關(guān)于java虛擬機(jī)是做什么用的的文章就介紹到這了,更多相關(guān)java虛擬機(jī)是什么內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. Python實(shí)現(xiàn)迪杰斯特拉算法過程解析2. Python 如何將integer轉(zhuǎn)化為羅馬數(shù)(3999以內(nèi))3. 詳解Python模塊化編程與裝飾器4. Python下使用Trackbar實(shí)現(xiàn)繪圖板5. html小技巧之td,div標(biāo)簽里內(nèi)容不換行6. Python通過format函數(shù)格式化顯示值7. python web框架的總結(jié)8. 以PHP代碼為實(shí)例詳解RabbitMQ消息隊(duì)列中間件的6種模式9. python使用ctypes庫調(diào)用DLL動(dòng)態(tài)鏈接庫10. Python性能測(cè)試工具Locust安裝及使用
