JVM
文章平均质量分 54
王哈哈哈.
记录学习的过程!
展开
-
代码优化之栈上分配
如何快速的判断是否发生了逃逸分析,就看new的对象有没有可能在方法外被引用。如果经过逃逸分析后发现,一个对象并没有逃逸出方法的话,那么就可能被优化成栈上分配栗子:-XX:+DoEscapeAnalysis //开启逃逸分析-XX:-DoEscapeAnalysis //不开启逃逸分析1.未开启逃逸分析package GC;/*** @program: JVM** @description: ** @author: Mr.Wang** @create: 2021-06-17 13原创 2021-09-25 16:06:42 · 141 阅读 · 1 评论 -
java虚拟机的生命周期
1.java虚拟机的启动java虚拟机的启动是通过引导类加载器创建一个初始化来完成的,这个类是由虚拟机的具体实现指定的2.java虚拟机的运行1.一个java虚拟机在运行时有着很清晰的任务:执行java程序2.java程序开始执行时,java虚拟机才开始运行,当然,java程序结束时,java也就停止运行。3.执行一个java程序的时,真真正正的在执行是一个叫做java虚拟机的进程(计算机中是java.exe)。2.1执行这样一段程序 int i = 2; int j原创 2021-09-22 12:45:23 · 345 阅读 · 1 评论 -
JVM的STW机制及调优案例
STW(stop the world)是什么1、stop the world指的是GC事件发生过程中,会产生应用程序的停顿。停顿产生时整个应用程序线程都会被暂停,没有任何响应, 有点像卡死的感觉,这个停顿称为STW。Java中一种全局暂停现象,全局停顿,所有Java代码停止,native代码可以执行,但不能与JVM交互;这些现象多半是由于gc引起。(1)可达性分析算法中枚举根节点(GC Roots)会导致所有Java执行线程停顿。① 分析工作必须在一个能确保一 致性的快照中进行② 一致性指整个分析期转载 2021-07-01 14:25:11 · 1959 阅读 · 1 评论 -
JVM内存区域
JVM内存图这是JVM给出的规范图,可以说是一个标准。各个厂家对JVM的具体实现各有千秋。我们熟知的Hotspot虚拟机将虚拟机栈和本地方法栈合而为一。程序计数器程序计数器是占用内存较小的一块内存空间,可看做一个正在执行字节码文件的行号解释器,行号解释器的工作就是,通过改变它的值来执行下一条字节码指令,是程序控制流的指示器。多线程是通过线程轮流切换,分配处理器执行时间来实现的,所以为了切换后能恢复到正确的位置,每条线程都需要一个程序计数器方法区存储已被虚拟机加载的类型信息,常量,原创 2021-07-01 00:05:14 · 85 阅读 · 4 评论