java虛擬機(jī)是做什么用的
為了能夠在不同的平臺支持java的語言,我們需要一種輔助機(jī)制進(jìn)行翻譯,所以java虛擬機(jī)就誕生了,也就是平時(shí)所說的JVM。能夠?qū)ava語言進(jìn)行翻譯,然后適應(yīng)于其他的平臺。下面窩們就JVM的概念,與其他機(jī)制的關(guān)系、設(shè)置參數(shù)帶來介紹,然后講解其中的一個(gè)重點(diǎn)知識點(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)系
3.設(shè)置JVM內(nèi)存的參數(shù)有四個(gè)
-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 每個(gè)線程的Stack大小,不熟悉最好保留默認(rèn)值
4.常用知識點(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)平臺相關(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ī)的仿真,提供一個(gè)可運(yùn)行完整操作系統(tǒng)的軟件平臺。而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都被甲骨文公司收入旗下,大有整合的趨勢。
到此這篇關(guān)于java虛擬機(jī)是做什么用的的文章就介紹到這了,更多相關(guān)java虛擬機(jī)是什么內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Java虛擬機(jī)之類加載
- java虛擬機(jī)之JVM調(diào)優(yōu)詳解
- Java虛擬機(jī)內(nèi)存區(qū)域劃分詳解
- 概述java虛擬機(jī)中類的加載器及類加載過程
- 深入了解Java虛擬機(jī)棧以及內(nèi)存模型
- 淺析Java虛擬機(jī)詳解之概述、對象生存法則
- Java跨平臺原理與虛擬機(jī)相關(guān)簡介
- java虛擬機(jī)jvm方法區(qū)實(shí)例講解
- java虛擬機(jī)鉤子關(guān)閉函數(shù)addShutdownHook的操作
- 詳解Java 虛擬機(jī)垃圾收集機(jī)制
- Java虛擬機(jī)使用jvisualvm工具遠(yuǎn)程監(jiān)控tomcat內(nèi)存
- Java虛擬機(jī)常見內(nèi)存溢出錯(cuò)誤匯總
- Java虛擬機(jī)執(zhí)行引擎知識總結(jié)
- Java啟用Azure Linux虛擬機(jī)診斷設(shè)置
- Java虛擬機(jī)內(nèi)存溢出與內(nèi)存泄漏
- java虛擬機(jī)創(chuàng)建失敗的原因整理
- Java內(nèi)存模型中的虛擬機(jī)棧原理分析
- Java基礎(chǔ)之創(chuàng)建虛擬機(jī)對象的過程詳細(xì)總結(jié)
相關(guān)文章
SpringBoot切面實(shí)現(xiàn)token權(quán)限校驗(yàn)詳解
這篇文章主要介紹了SpringBoot切面實(shí)現(xiàn)token權(quán)限校驗(yàn)詳解,要實(shí)現(xiàn)權(quán)限校驗(yàn),首先數(shù)據(jù)表和實(shí)體類上需要有權(quán)限字段,我的表中permission和gender是通過外鍵約束permission表和gender表實(shí)現(xiàn)枚舉的,因?yàn)榭赏卣剐愿?需要的朋友可以參考下2024-01-01基于FlashPaper實(shí)現(xiàn)JSP在線閱讀代碼示例
這篇文章主要介紹了基于FlashPaper實(shí)現(xiàn)JSP在線閱讀代碼示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10Java8 LocalDateTime極簡時(shí)間日期操作小結(jié)
這篇文章主要介紹了Java8-LocalDateTime極簡時(shí)間日期操作整理,通過實(shí)例代碼給大家介紹了java8 LocalDateTime 格式化問題,需要的朋友可以參考下2020-04-04springboot實(shí)現(xiàn)圖片大小壓縮功能
這篇文章主要為大家詳細(xì)介紹了springboot實(shí)現(xiàn)圖片大小壓縮功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04MybatisPlus使用Mybatis的XML的動(dòng)態(tài)SQL的功能實(shí)現(xiàn)多表查詢
本文主要介紹了MybatisPlus使用Mybatis的XML的動(dòng)態(tài)SQL的功能實(shí)現(xiàn)多表查詢,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-11-11SpringBoot @ConfigurationProperties注解的簡單使用
即便現(xiàn)在簡化了配置,但是一個(gè)獨(dú)立的配置文件總是易于理解而且使人安心的。Spring在構(gòu)建完項(xiàng)目后,會默認(rèn)在resources文件夾下創(chuàng)建一個(gè)application.properties文件,application.yml也是一樣的效果。@ConfigurationProperties可以獲取配置文件中的數(shù)據(jù),將其注入類。2021-05-05