text: (window.webpackJsonp=window.webpackJsonp||[]).push([[29],{756:function(a,t,v){"use strict";v.r(t);var s=v(105),e=Object(s.a)({},(function(){var a=this,t=a.$createElement,v=a._self._c||t;return v("ContentSlotsDistributor",{attrs:{"slot-key":a.$parent.slotKey}},[v("h1",{attrs:{id:"jvm-learning"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#jvm-learning"}},[a._v("#")]),a._v(" JVM learning")]),a._v(" "),v("h2",{attrs:{id:"基本概念"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#基本概念"}},[a._v("#")]),a._v(" 基本概念")]),a._v(" "),v("p",[a._v("JVM 是可运行 Java 代码的假想计算机，包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收、堆和一个存储方法域。JVM 是运行在操作系统之上的，它与硬件没有直接的交互。")]),a._v(" "),v("img",{attrs:{src:a.$withBase("/img/java/jvm/JVM.png"),alt:"jvm运行过程"}}),a._v(" "),v("h2",{attrs:{id:"运行过程"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#运行过程"}},[a._v("#")]),a._v(" 运行过程")]),a._v(" "),v("p",[a._v("我们都知道 Java 源文件，通过编译器，能够生产相应的 .class 文件，也就是字节码文件，而字节码文件又通过 Java 虚拟机中的解释器，编译成特定机器上的机器码。")]),a._v(" "),v("p",[a._v("也就是如下：")]),a._v(" "),v("ol",[v("li",[a._v("Java 源文件 --\x3e  编译器 --\x3e  字节码文件")]),a._v(" "),v("li",[a._v("字节码文件 --\x3e   JVM --\x3e  机器码")])]),a._v(" "),v("p",[a._v("每一种平台的解释器是不同的，但是实现的虚拟机是相同的，这也就是 Java 为什么能够跨平台的原因了，一个程序从开始运行时，虚拟机就开始实例化了，多个程序启动就会存在多个虚拟机实例；当程序退出或关闭，虚拟机实例消亡。多个虚拟机实例之间数据不能共享。")]),a._v(" "),v("img",{attrs:{src:a.$withBase("/img/java/jvm/jvm运行过程.png"),alt:"jvm运行过程"}})])}),[],!1,null,null,null);t.default=e.exports}}]);