当前位置:首页 > 虚拟机 > 正文

jvm虚拟机基础原理总结


一、2022年完全最全JVM讲解(最新版2W字总结)


深入分析:2022通用环境中JVM内存管理和垃圾回收机制的总体定义。每个线程都有自己的程序计数器(用于跟踪当前正在执行的字节码)、虚拟机堆栈(存储方法调用上下文)和本地方法区(存储本地代码和常量)。共享空间主要由JAVA堆和方法空间组成。


元数据环境和垃圾收集算法

Java8之后,元数据环境取代了静态生成、存储类和元数据信息。垃圾收集器通过引用计数或根搜索算法来识别可重用对象。复制算法高效但不压缩内存,标记紧缩算法兼具效率和减少碎片。元数据环境的持久化可能会导致OOM(内存不足),因此需要谨慎处理。


HotSpotVM采用分代聚类方法,新生代使用反向算法,老年代可以使用mark-compact算法。强引用会导致内存流动,而软引用和弱引用则提供内存检索的灵活性。串行收集器因其简单和高效而常见于单线程。ParNew是多线程版本,在客户端模式下调整适合新生代的线程数量。


服务器模式下的垃圾收集器

服务器模式下,ParallelScavenge等垃圾收集器专注于程序输出,SerialOld在low处提供单线程清理,CMS和G1都有自己的垃圾收集器重点:CMSlow它可以减少停机时间,但会影响CPU,而G1具有动态堆区域分配和无碎片管理功能,可实现低停机时间和高吞吐量。


内存管理和类加载

内存泄漏源于对生命周期短的对象的长期引用。类加载过程加载、链接(验证、准备、解析)。并启动。类的初始化仅在第一次使用时进行。类加载器遵循父委托方法以确保类型安全,而线程上下文加载器则在特殊情况下提供灵活性。


了解线程上下文加载器(例如tthread().getContextClassLoader())可以帮助解决标准库和自定义实现之间的兼容性问题。


总结

JVM的内存管理和垃圾收集机制是理解Java性能基石的关键。通过深入了解各个环境的特点和回收机制,以及类加载和上下文加载的原理,开发人员可以更有效地优化内存使用,保证应用程序的稳定运行。



二、jvm原理是什么呢?

JVM原理是Java的核心和基础,是Java编译器和OS平台之间的虚拟处理器。它是一种用软件方法实现的抽象计算机,能够基于底层操作系统和硬件平台执行Java字节码程序。Java编译器只是生成JVM可以执行的代码或字节码文件。理解。。

jvm可执行程序流程

加载.class文件、内存管理和分配、执行垃圾回收、4步完成JVM环境、JVM加载环境和配置,加载,初始化并将其与JNI可调用接口(JNIENV)实例关联,并调用JNIEnv实例来加载和处理类类。

JVM实例和JVM执行一个JVM实例对应一个在进程级别独立运行的Java程序。运行时Java虚拟机(JVM)负责在Java程序启动后执行该程序。当虚拟机实例创建并且程序终止时,虚拟机实例也终止。