java jvm虚拟机_Java虚拟机(JVM)简介
java jvm虛擬機(jī)
什么是JVM
Java虛擬機(jī)(JVM)是使計(jì)算機(jī)能夠運(yùn)行Java程序的抽象計(jì)算機(jī)。
JVM有三個(gè)概念:
1.規(guī)格
2.實(shí)施
3.實(shí)例。
該規(guī)范是正式描述JVM實(shí)現(xiàn)要求的文檔。 具有單一規(guī)范可確保所有實(shí)現(xiàn)都可互操作。 JVM實(shí)現(xiàn)是滿足JVM規(guī)范要求的計(jì)算機(jī)程序。 JVM的實(shí)例是在進(jìn)程中運(yùn)行的實(shí)現(xiàn),該進(jìn)程執(zhí)行編譯為Java字節(jié)碼的計(jì)算機(jī)程序。
Java運(yùn)行時(shí)環(huán)境(JRE)
Java Runtime Environment(JRE)是一個(gè)軟件包,其中包含運(yùn)行Java程序所需的軟件。 它包括Java虛擬機(jī)實(shí)現(xiàn)以及Java類庫的實(shí)現(xiàn)。 擁有Java商標(biāo)的Oracle公司通過其名為HotSpot的Java虛擬機(jī)分發(fā)Java運(yùn)行時(shí)環(huán)境。
Java開發(fā)套件(JDK)
Java Development Kit(JDK)是JRE的超集,包含Java程序員的工具,例如
javac編譯器。 Oracle開發(fā)公司直接提供免費(fèi)的Java開發(fā)工具包,或者由Oracle管理的OpenJDK開源項(xiàng)目免費(fèi)提供Java開發(fā)工具包。
JVM的作用
JVM執(zhí)行以下操作:
- 加載代碼
- 驗(yàn)證碼
- 執(zhí)行代碼
- 提供運(yùn)行時(shí)環(huán)境
JVM提供了以下定義:
- 記憶區(qū)
- 類文件格式
- 寄存器集
- 垃圾收集堆
- 致命錯(cuò)誤報(bào)告等
Java虛擬機(jī)架構(gòu)
1. Classloader: Classloader是JVM的子系統(tǒng),用于加載類文件。
2.類(方法)區(qū)域:類(方法)區(qū)域存儲(chǔ)每個(gè)類的結(jié)構(gòu),例如運(yùn)行時(shí)常量池,字段和方法數(shù)據(jù),方法代碼。
3.堆:這是在其中分配對(duì)象的運(yùn)行時(shí)數(shù)據(jù)區(qū)域。
4.堆棧: Java堆棧存儲(chǔ)框架。它保存局部變量和部分結(jié)果,并在方法調(diào)用和返回中起作用。
每個(gè)線程都有一個(gè)專用的JVM堆棧,與該線程同時(shí)創(chuàng)建。 每次調(diào)用方法時(shí)都會(huì)創(chuàng)建一個(gè)新框架。 當(dāng)框架的方法調(diào)用完成時(shí),該框架將被銷毀。
5.程序計(jì)數(shù)器寄存器: PC(程序計(jì)數(shù)器)寄存器。 它包含當(dāng)前正在執(zhí)行的Java虛擬機(jī)指令的地址。
6.本機(jī)方法堆棧:它包含應(yīng)用程序中使用的所有本機(jī)方法。
7.執(zhí)行引擎:它包含:
參考
:
https://zh.wikipedia.org/wiki/Java_virtual_machine
翻譯自: https://www.javacodegeeks.com/2017/10/introduction-java-virtual-machine-jvm.html
java jvm虛擬機(jī)
總結(jié)
以上是生活随笔為你收集整理的java jvm虚拟机_Java虚拟机(JVM)简介的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 华为荣耀7耳机设置(华为荣耀7耳机设置在
- 下一篇: java登录界面命令_Java命令行界面