![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
文章平均质量分 90
日久时见心
不忘初心,继续前行,坚持坚持坚持!!!
展开
-
04-hotspot-gc收集器
HotSpot 垃圾收集器 垃圾回收有三个阶段: 标记阶段: 引用计数算法(java未使用),可达性分析算法(java使用) 清除阶段: 回收阶段: 垃圾是指运行程序里没有任何指针的指向的对象,这个对象也就需要被回收。 finalizatio机制:java提供给程序员在回收垃圾对象前的自定义逻辑处理。 HotSpot 虚拟机提供了多种垃圾收集器,每种收集器都有各自的特点,虽然我们要对各个收集器进行比较,但并非为了挑选出一个最好的收集器。我们选择的只是对具体应用最合适的收集器。 新生代垃圾收集器 Seri原创 2021-05-04 09:26:02 · 180 阅读 · 0 评论 -
03-gc垃圾收集策略和算法
垃圾收集策略与算法 程序计数器、虚拟机栈、本地方法栈随线程而生,也随线程而灭;栈帧随着方法的开始而入栈,随着方法的结束而出栈。这几个区域的内存分配和回收都具有确定性,在这几个区域内不需要过多考虑回收的问题,因为方法结束或者线程结束时,内存自然就跟随着回收了。 而对于 Java 堆和方法区,我们只有在程序运行期间才能知道会创建哪些对象,这部分内存的分配和回收都是动态的,垃圾收集器所关注的正是这部分内存。 判定对象是否存活 若一个对象不被任何对象或变量引用,那么它就是无效对象,需要被回收。 引用计数法 在对象头原创 2021-05-04 09:17:55 · 158 阅读 · 0 评论 -
02jvm-对象布局
HotSpot 虚拟机对象 虚拟机对象的创建方式 new Class的newInstance():反射的方式,只能调用空仓构造函数,权限必须是public Constructor的NewInstance(Xxx):反射的方式,可以调用空仓,有参构造函数,权限没有要求 clone()不调用构造函数,当前类需要实现cloneable接口并实现clone()方法 使用反序列化:从文件或者网络获取二进制流 第三方库Objenesis 创建对象步骤 1.判断对象是否加载,连接,初始化:当虚拟机遇到一条new指原创 2021-05-04 09:11:27 · 161 阅读 · 0 评论 -
01-jvm内存结构
JVM 内存结构 Java 虚拟机的内存空间分为 5 个部分: 程序计数器 Java 虚拟机栈 本地方法栈 堆 方法区 JDK 1.8 同 JDK 1.7 比,最大的差别就是:元数据区取代了永久代。元空间的本质和永久代类似,都是对 JVM 规范中方法区的实现。不过元空间与永久代之间最大的区别在于:元数据空间并不在虚拟机中,而是使用本地内存。 程序计数器(PC 寄存器) 程序计数器的定义 程序计数器是一块较小的内存空间,是当前线程正在执行的那条字节码指令的地址。若当前线程正在执行的是一个本地方法,那么此原创 2021-05-04 09:07:26 · 131 阅读 · 1 评论