JVM
假想迪
这个作者很懒,什么都没留下…
展开
-
Java中垃圾回收产生的影响
Java中自带的垃圾回收机制给我们带来了很大的方便,这里就介绍几种JVM常用的垃圾回收器。1. 垃圾回收考虑的因素1.1 新生代和老年代新生代:(Minor GC/Young GC),Minor GC比较频繁,一般回收速度也会比较快。老年代:(Major GC/Full GC),老年代清理对象通常比较多,频次也低,但每次Full GC时间比较长。...原创 2020-05-07 21:53:14 · 550 阅读 · 0 评论 -
Java的引用类型
1. 强引用强引用指向我们在一般情况下普遍存在的对象。例如我们new一个对象的时候, “Object object = new Object()”这类引用,强引用只要存在,垃圾回收期就无法回收掉这些被引用的对象。2. 软引用软引用指向一些还有用但并不是必需的对象。针对软引用指向的对象,在系统将要抛出OOM(内存溢出异常)之前,会把这类对象划分到回收范围内并进行第二次回收。如果此次GC之后还没...原创 2020-05-01 12:50:00 · 115 阅读 · 0 评论 -
Java中的垃圾回收算法
我们将不可用对象归为垃圾对象以后,还需要通过一些方法来将垃圾对象进行回收,Java中主要涉及了四种回收算法,分别为标记-清除算法、标记-整理算法、复制算法和分代收集算法。1. 标记-清除算法(Mark-Sweep)标记清除算法主要分为两个阶段:标记:将活动对象进行一一标记。清除:统一把没有标记过的对象进行清除操作。缺点由于可用对象和不可用对象在内存中是连续存储的,所以在标记之后进行...原创 2020-04-15 13:12:27 · 296 阅读 · 0 评论 -
Java中如何判定一个对象为垃圾对象
1. 引用计数法引用计数法会给对象添加一个引用计数器,当这个对象的引用增加一个,就把引用计数器的值也加一,减少就相反,当引用计数器的值变为0,就说明这是一个失效的垃圾对象。但是引用计数法也有一个问题,就是无法解决对象之间循环引用的问题。假设 object1.A = object2 ,但同时 object2.A = object1 。如图所示:2.可达性分析算法可达性分析算法引入了离散数学...原创 2020-04-14 22:44:15 · 929 阅读 · 0 评论 -
Java中的类加载机制
1. 类的生命周期加载->连接(验证->准备->解析)->初始化->使用->卸载2. 类加载的具体步骤加载首先通过类的全限定名,来获取到定义这个类的二进制字节流。再将字节流转化为动态的一个数据结构保存到方法区中。把类的class文件读取到内存中,再创建一个java.lang.Class的对象,之后访问这个类的数据时,这个对象就可以作为类的一个访问数...原创 2020-04-13 17:09:48 · 133 阅读 · 0 评论 -
JVM内存区域划分
JVM 的内存模型如图所示:一、线程私有部分1.1 程序计数器程序计数器(PC Register)是一块比较小的内存空间,可以把它看成是一个当前线程执行字节码文件对应位置的行号指示器。字节码文件的解释器通过改变程序计数器的一个值,来选取接下来要执行的指令行,比如实现一些循环,跳转等代码的时候,就需要通过程序计数器来完成。不过这只是虚拟机最基本的一种方法。由于在多线程的并发执行环境下,每次...原创 2020-03-30 17:14:49 · 110 阅读 · 0 评论