Java核心知识点总结:JVM、垃圾回收、引用类型详解

需积分: 27 17 下载量 123 浏览量 更新于2024-07-05 收藏 10.71MB PDF 举报
Java核心知识整理(常考八股文) Java核心知识整理是Java开发语言的基础知识总结,涵盖了Java虚拟机(JVM)、垃圾回收、Java引用类型等多个方面的知识点。 **JVM概述** Java虚拟机(JVM)是Java程序运行的核心组件,负责将Java字节码转换为机器码并执行。JVM由类加载器、运行时数据区、执行引擎、垃圾回收器等组件组成。 **JVM内存区域** JVM的内存区域可以分为五个部分:程序计数器、虚拟机栈、本地方法栈、堆、方法区。 * 程序计数器(线程私有):记录当前执行的字节码的行号。 * 虚拟机栈(线程私有):存储局部变量、方法参数、返回值等。 * 本地方法栈(线程私有):存储 native 方法的调用信息。 * 堆(线程共享):存储对象实例和数组的数据。 * 方法区/永久代(线程共享):存储类信息、常量、静态变量等。 **JVM运行时内存** JVM运行时内存可以分为新生代、老年代和永久代三个部分。 * 新生代:存储新创建的对象,垃圾回收频率高。 + Eden区:存储新创建的对象。 + ServivorFrom区:存储 Eden 区中幸存的对象。 + ServivorTo区:存储 ServivorFrom 区中幸存的对象。 * 老年代:存储长期存活的对象,垃圾回收频率低。 * 永久代:存储类信息、常量、静态变量等。 **垃圾回收** 垃圾回收是Java虚拟机中的一种机制,用于回收不再使用的对象,防止内存泄露。 * 如何确定垃圾:引用计数法、可达性分析等。 * 垃圾回收算法:标记清除算法、复制算法、标记整理算法、分代收集算法等。 **Java引用类型** Java中有四种引用类型:强引用、软引用、弱引用、虚引用。 * 强引用:普通的对象引用。 * 软引用:弱于强引用,但比弱引用强。 * 弱引用:弱于软引用。 * 虚引用:最弱的引用,无法阻止垃圾回收。 **GC垃圾收集器** Java虚拟机提供了多种垃圾收集器,例如Serial垃圾收集器、ParNew垃圾收集器、ParallelScavenge收集器等。 * Serial垃圾收集器:单线程、复制算法。 * ParNew垃圾收集器:多线程、复制算法。 * ParallelScavenge收集器:多线程、复制算法、高效。