java虛擬機(jī)是做什么用的
為了能夠在不同的平臺支持java的語言,我們需要一種輔助機(jī)制進(jìn)行翻譯,所以java虛擬機(jī)就誕生了,也就是平時所說的JVM。能夠?qū)ava語言進(jìn)行翻譯,然后適應(yīng)于其他的平臺。下面窩們就JVM的概念,與其他機(jī)制的關(guān)系、設(shè)置參數(shù)帶來介紹,然后講解其中的一個重點(diǎn)知識點(diǎn)。
1.概念JVM是java上的一個虛構(gòu)出來的計(jì)算機(jī),是一個位于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ā)測試機(jī)JVM可以保留默認(rèn)值;
-Xmn Java Heap Young區(qū)大小,不熟悉最好保留默認(rèn)值;
-Xss 每個線程的Stack大小,不熟悉最好保留默認(rèn)值
4.常用知識點(diǎn)堆(heap)與棧(stack)
堆和棧是程序運(yùn)行的關(guān)鍵,很有必要它他們的關(guān)系說清楚。
在java中,Main函數(shù)就是棧的起始點(diǎn),也是程序的起始點(diǎn)。程序要運(yùn)行總是有一個起點(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)平臺相關(guān)的信息,使得Java程序只需生成在Java虛擬機(jī)上運(yùn)行的目標(biāo)代碼(字節(jié)碼),就可以在多種平臺上不加修改地運(yùn)行。
所謂的java虛擬機(jī),就是一臺虛擬的機(jī)器。它是一款軟件,用來執(zhí)行一系列虛擬計(jì)算機(jī)指令,大體上虛擬機(jī)可以分為系統(tǒng)虛擬機(jī)和程序虛擬機(jī)。visual Box、VMare就屬于系統(tǒng)虛擬機(jī)。他們完全是對物理計(jì)算機(jī)的仿真,提供一個可運(yùn)行完整操作系統(tǒng)的軟件平臺。而java虛擬機(jī)就是典型程序虛擬機(jī),它專門為執(zhí)行單個計(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都被甲骨文公司收入旗下,大有整合的趨勢。
到此這篇關(guān)于java虛擬機(jī)是做什么用的的文章就介紹到這了,更多相關(guān)java虛擬機(jī)是什么內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. phpstudy apache開啟ssi使用詳解2. vue3+ts+elementPLus實(shí)現(xiàn)v-preview指令3. Xml簡介_動力節(jié)點(diǎn)Java學(xué)院整理4. JSP之表單提交get和post的區(qū)別詳解及實(shí)例5. 詳解瀏覽器的緩存機(jī)制6. xml中的空格之完全解說7. jsp實(shí)現(xiàn)登錄驗(yàn)證的過濾器8. jsp文件下載功能實(shí)現(xiàn)代碼9. 使用Hangfire+.NET 6實(shí)現(xiàn)定時任務(wù)管理(推薦)10. 如何在jsp界面中插入圖片
