JVM
文章平均质量分 69
深入理解JVM,来源《深入理解JAVA虚拟机》 周志明 第2版,记录学习过程。
那起舞的日子
IT男,运动控;尚力量,更尙博学;偶像曾国藩,女神白娘子;不求屌丝逆袭,但求日日精进;让每个日子起舞。
展开
-
JVM-5-垃圾收集算法
读者朋友,今天介绍下垃圾收集算法。之所以会有不同的垃圾收集算法,就是因为在JVM的Heap区,有着分代的假说。之所以要分代,是因为不同“代”之间区别很明显,有着显著不同的特征,正因为这些显著不同的特征,所以针对各个代就有了针对性的“策略”——不同的GC收集算法。分代(Generational Collection)假说分为两种:分代原理弱分代假说大量对象都是“朝生夕灭”弱强分代假说熬过多次垃圾收集的对象就越难以消亡那么分代是依据什么来分的呢?依据:对象的年龄。对象的原创 2021-05-25 23:35:47 · 127 阅读 · 0 评论 -
JVM-4-对象已死?
读者朋友,晚上好,这里简单介绍下在JVM中是如何判断对象是否存活的。只有死去的对象,GC过程就会回收掉,所以GC的第一步是判断对象是否已死。文章内容均来自:《深入理解Java虚拟机 JVM高级特性与最佳实践》 周志明著 第三版机械工业出版社判断对象是否存活有2种方法:一、判断对象存活的2种算法方法原理优点缺点引用计数法(Reference Counting)对象中添加一个引用计数器,有一个地方引用,就+1;引用失效就-1简单易懂相互循环引用,造成“假引用”原创 2021-05-25 00:26:19 · 184 阅读 · 0 评论 -
JVM-3-实战制造OOM
读者朋友,下午好。这里从JVM的堆、栈、方法区(常量池)、本机直接内u存四个维度分别人为制造OOM-Out Of Memory。目的:1、怎样的操作会导致在指定区域发生OOM?或者StackOverFlow?2、出现这种情况时候如何分析?如何解决。(不是重点,后面学习了各种检测工具之后回头思考)以下代码示例均来自:《深入理解Java虚拟机 JVM高级特性与最佳实践》 周志明著 第三版机械工业出版社1、堆溢出要使堆溢出,只需要创建大量对象即可,并且保证对象在使用。package com原创 2021-05-16 18:08:34 · 1870 阅读 · 3 评论 -
JMV-2-基本构造和各区域作用
读者朋友,下午好。这里介绍下JVM的组成、各部分作用、各部分容易发生的问题等,一图胜千言。当然也可以用电脑画图,但是确实没有手绘方便。原创 2021-05-16 15:03:38 · 289 阅读 · 1 评论 -
JVM-1-虚拟机系列学习目录
大家好,这里记录学习JVM的过程。所有内容均来自:《深入理解Java虚拟机 JVM高级特性与最佳实践》 周志明著 第三版机械工业出版社我们不妨带着以下问题来阅读:JVM的构造是怎样的?没个区域主要做什么?各个区域容易发生什么问题?OutOfMemoryError、StackOverFlow、内存泄漏、内存溢出的具体示例?如何证明在哪个区域发生了?如何解决?GC机制——如何判断哪些对象可回收?GC的常见算法及优缺点?知道这些的作用?排查JVM故障的工具有哪些?怎么用?JVM如何调优原创 2021-05-16 14:52:34 · 165 阅读 · 0 评论 -
从IDEA的一次意外退出发现JVM
文章目录一、背景:1、排除内存不够。2、看日志二、发现JVM三、总结一、背景:2020.1的IDEA到期了,网上寻找各种办法,然后把“全家桶” jetbrains-agent.jar拖入的IDEA后,发现IDEA打开就闪退;无奈重新安装IDEA后也闪退。按照网上解决思路:1、排除内存不够。看下mac的内存 :1)活动监视器看;2)命令行看:echo -e "\n$(top -l 1 | awk '/PhysMem/';)\n"笔者是Mac,在应用程序中右键Idea的标志:显示包结构,找到原创 2020-08-08 17:22:00 · 3962 阅读 · 2 评论