![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
Mr清奇
六味地黄丸
展开
-
Java类的加载过程
让我们从一道面试题说起,请问以下代码的执行结果是什么: public class Test{ static { A = 0; } static int A = 1; public static void main(String[] args){ System.out.println(Test.A); } } 编译错误?0?1? 正确答案是1。 为什么A在定义之前赋值不报错呢?这就要从类的加载过程说起。 一个类的生命周期分为以下几个阶段: 加载Loading、验证Verification、原创 2020-07-11 23:10:39 · 100 阅读 · 0 评论 -
HotSpot虚拟机垃圾收集器-实践篇
以windows系统为例,JDK版本1.8.0_251。 查看当前JAVA进程 D:\Java\jdk1.8.0_251\bin>jps 23776 Program 5600 Jps D:\Java\jdk1.8.0_251\bin> 查看java进程使用的垃圾收集器 D:\Java\jdk1.8.0_251\bin>jmap -heap 23776 Attaching to process ID 23776, please wait... Debugger attached原创 2020-06-21 23:34:21 · 219 阅读 · 0 评论 -
HotSpot虚拟机垃圾收集器-理论篇
java的对象实例存放在堆里,java的对象无需程序员管理,而是由垃圾收集器(Garbage Collection 简称GC)自动管理。 一般来说,大部分对象都是朝生夕灭的,而熬过越多次垃圾收集过程的对象就越难以消亡。 据此,一般垃圾收集器会根据回收对象的年龄(经历过垃圾收集过程的次数),将自身管理的堆分为新生代(Young Generation)和老年代(Old Generation)。每次回收优先回收新生代,以便快速回收大量的可用空间。 基础垃圾收集算法有三种: 标记-清除算法(Mark-Sweep)原创 2020-06-15 00:08:20 · 224 阅读 · 0 评论