上一篇文章我们已经讨论了JVM在运行Java应用程序中的作用,但是它是如何执行其功能的呢?为了运行Java应用程序,JVM依赖于Java类加载器和Java执行引擎。对java感兴趣的同学可以参加java培训,可以获得快速有效的学习。
Java类加载器
Java中的一切都是类,所有的Java应用都是从类构建的。一个应用程序可以包含一个类或数千个类。为了运行Java应用程序,JVM必须加载编译的。类文件放入可以访问它们的上下文中,如服务器。JVM依赖它的类装入器来执行这个功能。
当你打字的时候java classfile,你是说:启动一个JVM并将命名的类装入其中。
Java类加载器是JVM的一部分,它将类加载到内存中,并使它们可供执行。类加载器使用像延迟加载和缓存这样的技术来尽可能高效地加载类。也就是说,类加载并不像(比如)可移植运行时内存管理那样令人头疼,所以技术相对简单。
每个Java虚拟机都包括一个类加载器。JVM规范描述了在运行时查询和操作类加载器的标准方法,但是JVM实现负责实现这些功能。从开发人员的角度来看,底层的类加载器机制是一个黑匣子。在java培训中,有很多关于JVM的培训课程,在专业老师的教学指导下,可以很全面地掌握网络安全的相关知识和技能。
执行引擎
一旦类加载器完成了加载类的工作,JVM就开始在每个类中执行代码。执行引擎是处理此功能的JVM组件。执行引擎对正在运行的JVM至关重要。实际上,对于所有实际用途,它都是JVM实例。
执行代码涉及管理对系统资源的访问。JVM执行引擎介于运行的程序和提供这些资源的操作系统之间,运行的程序需要文件、网络和内存资源。
系统资源可以分为两大类:内存和其他所有资源。回想一下,JVM负责处理未使用的内存,而垃圾收集是进行这种处理的机制。JVM还负责分配和维护开发人员认为理所当然的引用结构。例如,JVM的执行引擎负责接受类似Java中的new关键字的内容,并将其转换为特定于操作系统的内存分配请求。想学习java技术的同学,不妨报个Java培训班,有明确清晰的学习路线,理论知识+实战操作,可以获得快速提升。
除了内存之外,执行引擎还管理用于文件系统访问和网络I/O的资源。由于JVM可以跨操作系统进行互操作,所以这不是一项普通的任务。除了每个应用程序的资源需求之外,执行引擎还必须对每个操作系统环境做出响应。这就是JVM能够处理各种需求的方式。
JVM演变:过去、现在、未来
因为JVM是一个众所周知的运行时,具有标准化的配置、监控和管理,所以它自然适合使用Docker和Kubernetes等技术进行容器化开发。它也适用于平台即服务(PaaS),并且有多种无服务器方法。由于所有这些因素,JVM非常适合微服务架构。
另一个即将推出的重要特性是Project Loom,它希望将虚拟线程引入JVM。虚拟线程能够在操作系统进程之上以更高的抽象度并发。虚拟线程能够在它们之间共享内存,从而对编码习惯用法和性能进行潜在的巨大改进。参加java培训,学习最新java技能,可以让你的实力一直保持领先水平,提升行业竞争力。