摘要: JVM 类加载机制分为五个部分:加载,验证,准备,解析,初始化,下面我们就分别来看一下这五个过程: 加载: 加载是类加载过程中的一个阶段,这个阶段会在内存中生成一个代表这个类的java.lang.Class 对象,作为方法区这个类的各种数据的入口。注意这里不一定非得要从一个Class 文件获取,这里 阅读全文
posted @ 2020-07-21 14:18 KILLNPE 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 1.强引用: 在Java 中最常见的就是强引用,把一个对象赋给一个引用变量,这个引用变量就是一个强引用。当一个对象被强引用变量引用时,它处于可达状态,它是不可能被垃圾回收机制回收的,即使该对象以后永远都不会被用到JVM也不会回收。因此强引用是造成Java 内存泄漏的主要原因之一。 Persnon p 阅读全文
posted @ 2020-07-21 13:38 KILLNPE 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 垃圾回收与算法: 如何确定垃圾-引用计数法: 在Java 中,引用和对象是有关联的。如果要操作对象则必须用引用进行。因此,很显然一个简单的办法是通过引用计数来判断一个对象是否可以回收。 简单说,即一个对象如果没有任何与之关联的引用,即他们的引用计数都为0,则说明对象不太可能再被用到, 那么这个对象就 阅读全文
posted @ 2020-07-21 11:12 KILLNPE 阅读(130) 评论(0) 推荐(0) 编辑
摘要: JVM运行时内存: Java 堆从GC 的角度还可以细分为: 新生代(Eden 区、From Survivor 区和To Survivor 区)和老年代。 新生代: 是用来存放新生的对象。一般占据堆的1/3 空间。由于频繁创建对象,所以新生代会频繁触发MinorGC 进行垃圾回收。 新生代又分为 E 阅读全文
posted @ 2020-07-21 10:50 KILLNPE 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 注意: GC:垃圾收集器 Minor GC:新生代GC,指发生在新生代的垃圾收集动作 Major GC/Full GC:老年代GC,指发生在老年代的GC。 JVM:Java Virtual Machine(Java虚拟机)的缩写。 基本概念: JVM是可运行Java 代码的假想计算机 ,包括一套字节 阅读全文
posted @ 2020-07-21 10:48 KILLNPE 阅读(150) 评论(0) 推荐(0) 编辑