Java虚拟机是一个旨在执行其他程序的程序。这是一个简单的想法,也是我们编码功夫的最好例子之一。JVM打破了当时的现状,今天继续支持编程创新。想学习java虚拟机相关知识,建议考虑报名参加Java培训,有明确的学习路线和全面系统的课程,能获得较快提升。
JVM做什么?
JVM有两个主要功能:允许Java程序在任何设备或操作系统上运行(称为“一次写入,随时随地运行”原则),以及管理和优化程序内存。当Java于1995年发布时,所有计算机程序都被写入特定的操作系统,程序内存由软件开发人员管理。JVM是一个启示。
对JVM进行技术定义是很有用的,而且软件开发人员每天都在思考它。让我们来分析一下:
技术定义:JVM是执行代码并为该代码提供运行时环境的软件程序的规范。
日常定义:JVM是我们运行Java程序的方式。我们配置设置,然后依靠JVM在执行期间管理程序资源。
当开发人员谈论JVM时,我们通常指的是在机器上运行的进程,特别是服务器,它表示并控制Java应用程序的资源使用。与JVM规范相比,JVM规范描述了构建执行这些任务的程序的要求。在Java培训学习中,会有很多JVM的学习课程,会有实操项目的训练,让你学会在项目使用开发工具,大大提高你的开发技能。
JVM语言
虽然JVM曾经只适用于Java,但它足够灵活和强大,足以支持今天的许多其他语言。其中最流行的是用于实时并发应用程序的Scala,以及动态类型脚本语言Groovy。另一个突出的例子是Kotlin,它提供了面向对象和功能风格的混合。所有这些都被认为是JVM语言,这意味着,即使它们不是用Java编写的,程序员仍然可以访问庞大的Java库生态系统。
垃圾收集
与正在运行的JVM最常见的交互是检查堆和堆栈中的内存使用情况。最常见的调整是调整JVM的内存设置。
在Java之前,所有程序内存都由程序员管理。在Java中,程序内存由JVM管理。JVM通过一个称为垃圾收集的过程来管理内存,该过程持续地识别和消除Java程序中未使用的内存。垃圾收集发生在正在运行的JVM中。参加java培训,有理论知识+实践项目,双管齐下,学以致用,让你深入浅出地学习java。
JVM的三个部分
JVM规范
首先,JVM是一个软件规范。JVM规范以某种循环的方式强调了它的实现细节没有在规范中定义,以便在实现中发挥最大的创造力:
所以,JVM要做的就是正确运行Java程序。听起来很简单,甚至从外面看起来很简单,但是这是一项艰巨的任务,尤其是考虑到Java语言的强大和灵活性。
JVM实现
实现JVM规范会产生一个实际的软件程序,这是一个JVM实现。事实上,有许多JVM实现,包括开源和专有的。OpenJDK的HotSpot是JVM参考实现。它仍然是世界上测试最彻底的代码库之一。
HotSpot可能是最常用的JVM,但它绝不是唯一的JVM。另一个有趣且流行的实现是GraalVM,它具有高性能,并通过LLVM规范支持其他传统非JVM语言,如C++和Rust。还有一些特定领域的JVM,如嵌入式机器人JVM、LeJOS
通常,你下载并安装JVM作为Java运行时环境(JRE)的捆绑部分。JRE是Java的磁盘部分,它产生了一个正在运行的JVM。通过java培训的学习,你可以学到很多企业级项目经验和技能,找到工作后,可以立马上岗实操,大大提高开发效率。
JVM实例
JVM规范作为软件产品实现并发布后,你可以下载并将其作为程序运行。下载的程序是JVM的实例(或实例化版本)。
大多数时候,当开发人员谈论“JVM”时,我们指的是在软件开发或生产环境中运行的JVM实例。你可能会说:“该服务器上的JVM使用了多少内存?”或者,“我真不敢相信我创建了一个循环调用,堆栈溢出错误使我的JVM崩溃了,真是个新手错误!”
结论
1995年,JVM引入了两个革命性的概念,这两个概念已经成为现代软件开发的标准内容:“一次编写,随处运行”和自动内存管理。软件互操作性在当时是一个大胆的概念,但今天很少有开发人员会对此三思。
尽管Java虚拟机最初只是针对Java的,但今天它已经发展到支持许多脚本和编程语言,包括Scala、Groovy和Kotlin。展望未来,很难想象JVM不会成为开发领域的一个突出部分。想学习jvm的同学,建议参加java培训,在专业老师和系统课程的带领学习下,很快就能掌握了这部分的知识和技能。