
JVM
文章平均质量分 50
深入理解Java虚拟机
Thecoastlines
努力是为了让自己不再平庸
展开
-
浅析JVM是如何处理异常的?finally块必须执行的原理?
JVM是如何捕捉异常的?每个方法在经过Javac编译之后,都会附带一个异常表;看下面代码的字节码指令 public void method2() { try { int a = 1 / 0; } catch (Exception e) { e.printStackTrace(); } }在该异常表中有四个重要的概念,from指针、to指针、target指针、异常类型。from指针和.原创 2022-05-25 00:46:07 · 888 阅读 · 1 评论 -
《JVM系列》深入浅出类加载机制中<init>和<Clinit>的区别【一篇即可搞懂初始化机制】
文章目录前言:init和Clinit怎么产生的?1.init方法1.1.init方法什么时候被调用?用来做什么?1.2.那么实例变量赋值操作、非静态代码块、构造器这三者,哪一个会先执行呢?1.3.那么既然赋值操作和非静态代码块优先级是相同的,那么看下面代码分析能不能这样操作?1.4.分析如下代码,看init方法字节码指令1.5.分析如下代码,看你搞懂init方法没呢~!2.Clinit方法2.1.你会不会有个疑问,为什么需要Clinit方法?2.2.Clinit方法什么时候被调用?2.3.Clinit方法有原创 2021-12-01 00:50:17 · 2180 阅读 · 0 评论 -
【JVM调优工具篇】使用JProfiler追踪GC Roots溯源
1.首先启动程序(让程序一直保持运行状态)2.启动JProfiler3.打开对应的进程4.Live memory->All Objects5.右键->Use Selected Objects6.查找某个对象的Root原创 2021-11-05 23:35:29 · 457 阅读 · 0 评论 -
【JVM调优工具篇】使用MAT工具分析dump文件(查看GC Roots)
MAT下载地址:https://www.eclipse.org/mat/1.File->Open File->找到dump文件打开即可2.Java Basics->GC Roots3.找到你要查看的线程打开即可原创 2021-11-05 21:05:47 · 1603 阅读 · 0 评论 -
【JVM调优工具篇】jvisualvm工具导出dump文件教程
1.首先启动程序(需确保程序一直在运行中)2.打开JvisualVM工具3.打开对应的程序进程4.点击线程->线程dump5.右键快照->另存为6.结束原创 2021-11-05 20:56:16 · 1345 阅读 · 0 评论 -
Java线程内存模型-JVM-底层原理
public class Demo1 { private static boolean initFlag=false; public static void main(String[] args) throws InterruptedException { new Thread(new Runnable() { @Override public void run() { System.out.p.原创 2020-07-10 21:34:43 · 295 阅读 · 0 评论