JVM(二)垃圾收集算法与收集器

Java堆中几乎存放着java中所有的对象实例,垃圾收集器在对堆进行回收前,需要确定哪些对象还”存活”着,哪些已经“死去”。垃圾回收必须能够完成两件事情:正确检测出垃圾对象;释放垃圾对象占用的空间。 1、垃圾检测算法 当前常见的检测垃圾的方法包括两种:1. 引用计数法;2. 可达性分析算法。 1.1 引用计数算法(Reference Counting) 给对象添加一个引用计数器,每当该对象被引用, […]

JVM(一)Java内存区域与内存溢出

Java内存区域 Java虚拟机所管理的内存将包括以下几个运行时数据区域,如下图所示: 程序计数器: ProgramCounterRegister是一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的行号指示器。字节码解释器工作时就是通过改变程序计数器的值来选取下一条要执行的字节码指令,分支、循环、跳转、异常跳转、线程恢复等基础功能都需要依赖这个计数器来完成。 由于Java虚拟机的多线程 […]