我的博客

我的博客

我的邮箱:wclong1018@yeah.net
JVM可达性分析判断对象是否存活

JVM可达性分析判断对象是否存活

来判断对象是否存活的基本思路就是通过一系列成为“GC Roots”的对象作为起始点,从政节点开始向下搜索,搜索所走过的路径成为引用链,当一个对象到 GC Roots没有任何引用链相连时则证明此对象是不


p19971018  290  2021-03-15 阅读全文

什么是公平锁和非公平锁,基于Lock

非公平锁: 首先会在 lock方法调用加锁的时候去抢锁(公平锁调用lock不会上来就去拿锁) 如果加锁失败则去看为什么失败(是否锁被人持有),在判断的时候如果锁没有被人持有非公平锁就会直接去加锁(不会


p19971018  2500  2020-09-08 阅读全文
安全点与安全区域

安全点与安全区域

安全点 用户线程暂停,GC线程要开始工作,但是要确保用户线程刚暂停的这行字节码指令是不会导致引用关系的变化。所以 JVM 会在字节码指令中,选一些指令作为“安全点”,比如方法调用、循环跳转、异常跳转等


p19971018  644  2020-08-21 阅读全文
Java线程池的规划配置

Java线程池的规划配置

先看下机器的CPU核数,然后在设定具体参数: System.out.println(Runtime.getRuntime().availableProcessors()); 即CPU核数 = Runt


p19971018  3928  2020-08-04 阅读全文
Java 方法调用的底层实现

Java 方法调用的底层实现

我们写的代码,经过编译、经过类加载的各种阶段,进入了JVM的运行时数据区。 但作为程序员真正关心的是代码的执行,代码的执行其实本质上是方法的执行,站在JVM 的角度归根到底还是字节码的执行。main


p19971018  757  2020-08-03 阅读全文
JVM的逃逸分析

JVM的逃逸分析

逃逸分析原理:分析对象动态的作用域,当一个对象在方法中定义后,他可能被外部方法所引用 比如:调用参数传递到其他方法去,这种称之为方法逃逸。甚至还有可能被外部线程所访问,例如给其他线程中的访问的变量,这


p19971018  694  2020-07-28 阅读全文
京ICP备19013125号-3