大多数Java开发人员除了使用与项目中Java平台相关的各种高确定技术外,对Java技术的核心Java虚拟机几乎没有任何了解。
一些具有一定工作经验的开发人员内心深处感到SSM,微服务和其他上层技术是重点。基本技术并不重要。这实际上是一个“病态状态”。
如果我们将核心库的API与数学公式进行比较,那么Java虚拟机的知识就像公式的派生过程一样。
计算机系统对我们来说越来越越来越远。在不了解基本实现方法的前提下,可以通过高级语言编写程序代码很容易。但实际上,计算机不知道高级语言。
我们通常会发展,而反手是班车,凝乳,就像流水一样快。但是,在调整或出门使用现有系统时,基础JVM相关的知识涉及的知识很少。
我们以访谈的形式对JVM进行简单的理解
0.什么是JVM?指的是一个完整的计算机系统,该系统模拟完整的硬件系统功能并在完整的隔离环境中运行,该系统是物理机器的软件实现。常用的虚拟机包括VMware,可VMWare,Visual Box,Java Virtual机器(Java虚拟机,称为JVM)
1.您能说多少个JVM?JDK1.0第一台商业虚拟机。您只能使用纯解释器来运行Java代码。
JDK1.2仅发布在Solaris .exact内存管理准确的内存管理上,也就是说,虚拟机可以知道内存中某个位置中哪种类型的数据。
Java程序员熟悉JVM,这是带有Sun JDK和OpenJDK的虚拟机。它也是使用最广泛的Java虚拟机。
Kilobyte VM,简单,轻巧,高度移植,运行速度缓慢,是一种嵌入式虚拟机。通常在移动平台上运行。
BEA(2008年由Oracle收购)。世界上最快的虚拟机,重点关注服务器 - 侧面应用程序。因为它不太在乎程序的启动速度,因此内部不包括解释器的实现,并且所有代码均通过即时编译器编译执行,因此性能很高。
Java虚拟机的IBM技术(IT4J)
达尔维克(Dalvik)是冰岛一个小型渔村的名称。它不是Java虚拟机,因为它不遵循Java虚拟机的规格。它不能直接执行编译**。class **文件。使用寄存器体系结构,而不是Java vm.it执行.dex(Dalvik可执行)文件的堆栈体系结构。
您只能在Windows平台上运行。在1997年,Sun指责Microsoft在违反商标方面的成功,Microsoft损失了很多钱,Microsoft在Windows XP SP.中擦拭了其VM。
Bea.More功能的产物,它不需要操作系统的支持,它是一个操作系统本身。说Java很慢,因为它经过Java VM的一层,然后是虚拟机呼叫OS步骤。液体VM本身不需要操作系统支持。它已经达到了必要的功能,例如文件系统,网络支持等,它们本身是相当强大的,因此性能和速度非常强大。
TAOBAO是由热点深入定制的。
GRAALVM是一种高性能嵌入式多语言虚拟机,可以运行不同的编程语言。GRAALVM的核心是Graal Compiler.graal。graal可以用作JIT编译器,也可以用作预先将其用作静态编译器。
2.如何理解Java是一种跨平台语言,JVM是一个交叉语言平台?Java是跨平台语言
Java是一种跨平台语言。这里提到的跨平台是指编译文件是否可以跨平台交叉,而不是源程序是否可以越过平台。例如,在写作时,在平台上编译和执行C语言,而Java语言被解释和执行,由字节码文件(.CLASS文件)编译为中间产品,最终不依赖于平台在Java Virtual Machine(JVM)上运行,并且它正在运行。只要机器上有JVM,就可以解释执行程序。
JVM是一个跨语言平台
JVM是一个跨语言平台,许多语言都可以编译为规范字节码。这些字节可以在Java Virtual Machine.java虚拟机上运行,不在乎此字节代码是否来自Java程序。它只需要在每种语言中提供自己的编译器。字节代码遵循字节代码规范。
3.您可以谈谈JVM的整体结构吗?
该体系结构可以分为三层:
提示:以下是更详细的插图
4.谈论JVM生命周期虚拟机的Java虚拟机的启动。它由Bootstrap类Loader.of完成。
虚拟机的退出具有以下情况: