平顶山做网站的公司,网站美工,数控机床网站建设,建网站的公司赚钱吗文章目录 JVMJVM 垮平台执行其他语言的代码JDK、JRE、JVM各种 Java 虚拟机查看我们本地的虚拟机版本HotSpot 的整体架构 JVM
JVM #xff08;Java Virtual Machine#xff09;#xff0c;Java 虚拟机#xff0c;我们的 Java 代码需编译为 .class 字节码文件#xff0c;经… 文章目录 JVMJVM 垮平台执行其他语言的代码JDK、JRE、JVM各种 Java 虚拟机查看我们本地的虚拟机版本HotSpot 的整体架构 JVM
JVM Java Virtual MachineJava 虚拟机我们的 Java 代码需编译为 .class 字节码文件经过 JVM 来执行。JVM 是 JAVA 语言的运行环境。
JVM 垮平台
Java 的垮平台其实是 JVM 的跨平台。 Java 之所以可以垮平台执行其实是因为在不同的平台上都有对应版本的 JVM 可以执行 Java 编译之后的字节码 执行其他语言的代码
如今的 JVM 其实可以不止执行 Java 代码任何语言只要编译为 JVM 支持的字节码就可以使用 JVM 来执行。 每种语言的编译器可能不一样但只要编译成 JVM 支持的字节码文件即可使用 JVM 。 JDK、JRE、JVM 上图为 Java 8 的官方文档中的图片其清晰的表达了JDK、JRE、JVM 之间的包含关系。 各种 Java 虚拟机
HotSpot目前 Java 虚拟机中绝对的老大。我们安装的 Jdk 应该都是默认使用 HotSpot VM。最初为一个小公司开发被 sun 收购sun 又被 Oracle 收购。从 Jdk 1.3 就开始称霸武林。BEA JRockitJRockit 虚拟机是 BEA 公司于 2002 年从 Appeal Virtual Machines 收购获得的虚拟机IBM J9J9 虚拟机是 IBM 公司单独开发的高性能虚拟机它并不独立出售而是作为 IBM 公司各种产品的执行平台IBM 把它定义为一个可以适应从嵌入式设备到大型企业级应用的、高可移植性的Java运行平台。其他其他还有很多如Sun ClassicJdk 1.0 时代的虚拟机、Sun Exact HotSpot 的孪生兄弟Jdk 1.2 被短暂使用
查看我们本地的虚拟机版本 HotSpot 的整体架构 类的加载子系统Class Loader Subsystem类加载器子系统负责从文件系统或者网络加载 class 文件class 文件在文件开头有特定的文件标识。ClassLoader 只负责class 文件的加载至于它是否可以运行则由执行引擎决定。运行时数据区Runtime Data Area运行时数据区包括程序计数器(PC寄存器)、Java虚拟机栈、堆、方法区、本地方法栈等等。其中方法区和堆是多线程共享的其余程序计数器、本地方法栈、Java 虚拟机栈是每个线程独有的。执行引擎Execution Engine执行引擎包含解释器Interpreter、JIT 即时编译器 (JUST IN TIME Complier)、垃圾回收器本地方法接口Native Method Interface用于调用非 Java 代码的接囗如 Java 调用 C 语言函数。在 Java API 中有很多 native 关键字修饰的方法其没有实现其就是本地方法。