
JVM
文章平均质量分 84
关于JVM的各板块知识的整理
哇哈哈同学_
这个作者很懒,什么都没留下…
展开
-
深入学习JVM- (1)理解Java内存区域与内存溢出异常
每个方法执行时会同步创建一个栈帧。不是运行时数据区的一部分。原创 2024-08-28 20:22:24 · 1824 阅读 · 2 评论 -
深入学习JVM- (2)垃圾收集基础
Java堆和方法区。原创 2024-08-28 21:24:31 · 727 阅读 · 0 评论 -
深入学习JVM- (3)理解并运用不同的垃圾收集器
Parallel Scavenge的目标是面向高吞吐量。哪块内存中存放的垃圾数量最多,回收收益最大。高吞吐量意味着处理器的资源利用效率。不同的角色只是代表不同的回收策略。以获取最短回收停顿时间为目的。低延迟意味着停顿时间短。原创 2024-08-29 14:16:51 · 713 阅读 · 0 评论 -
深入学习JVM- (4)性能监控、故障处理与调优
4.1 三要素 关键基础:知识和经验 依据:数据,包括但不限于异常堆栈、虚拟机运行日志、垃圾收集器日志、线程快照(threaddump/javacore文件)、堆转储快照(heap dump/hprof文件)等 手段:通过工具运用知识来处理数据 4.2 工具 (1)基础故障处理工具 jps:可以列出正在运行的虚拟机进程,并显示虚拟机执行主类(名称以及这些进程的本地虚拟机唯一ID; jstat:监视虚拟机各种运行状态信息,可以显示本地或者远程虚拟机进程中的类加载、内存原创 2024-08-29 14:20:20 · 276 阅读 · 0 评论 -
深入学习JVM- (5) 了解类文件结构
➀每个Class文件对应着唯一的一个类或接口的定义信息,但类或接口并不一定都得定义在文件里,因为类和接口可以动态生成。➁Class文件是一组以8个字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑地排列在文件之中,中间没有添加任何分隔符,这使得整个Class文件中存储的内容几乎全部是程序运行的必要数据,没有空隙存在。当遇到需要占用8个字节以上空间的数据项时,则会按照高位在前的方式分割成若干个8个字节进行存储。原创 2024-08-29 14:25:00 · 461 阅读 · 0 评论 -
深入学习JVM- (6) 全面理解jvm类加载机制
6.1 类加载机制 Java虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这个过程被称作虚拟机的类加载机制。 在Java里面,类型的加载、连接和初始化都是在程序的运行期间完成,这种机制一方面增加了提前编译时的额外困难,增加了类加载时的性能开销,另一方面为Java应用提供了极高的扩展性和灵活性,Java的动态扩展特性就是依赖于运行期动态加载和动态连接的特点实现。 6.2 类加载时机 类型的生命周期:加载原创 2024-09-03 20:26:58 · 671 阅读 · 0 评论 -
深入学习JVM - (7) 字节码执行引擎
7.1 执行引擎 虚拟机的执行引擎是由软件自行实现的,因此可以不受物理条件制约地定制指令集与执行引擎的结构体系,能够执行那些不被硬件直接支持的指令集格式; 《规范》制定了JVM执行引擎的概念模型,即JVM的统一外观,不同厂商实现时可能选择解释执行或编译执行或者二者兼备; 从外观上看,所有JVM的执行引擎输入和输出都是一致的:输入字节码二进制流,处理过程是字节码解析执行的等小过程,输出执行结果; 7.2 运行时栈帧结构 结构图示 是虚拟机运行时数据区的虚拟机栈的栈元原创 2024-09-03 20:29:08 · 628 阅读 · 0 评论