JVM 垃圾回收

接上篇文章, 本篇文章主要总结 Garbage Collector 的相关知识点. 1. 存活判定 存活判定一般依据引用计数或者可达性分析, 引用计数时, 某一个对象每一个地方引用它, 计数器加一, 某引用失效, 计数器减一, 计数器为0的对象不可使用. 缺点在于难以解决对象互相引用的问题. 可达性分析是利用 GC Roots 从这些节点向下搜索, 当一个对象从 GC Roots 不可达, 则认为该回收. 可以当作 GC Roots 的为: i. 本地变量(虚拟机栈) ii. 静态属性引用(方法区) iii. 常量引用(方法区) iv. JNI(Native 方法引用) 当对象被标记为不可达时, 如果该对象没必要执行 finalize() 方法, 则会被认为死亡. 如果需要执行 finalize(), 那么会将该对象加入 F-Queue, 由 Finalize 线程执行该方法. 执行过 finalize() 的方法对象不会再次执行该方法. 此时对象真正死亡. PermGen 也会回收废弃的常量和无用的类, … Continue reading “JVM 垃圾回收”

Java 基础知识点

  本文用于盘点曾经疏忽或者不曾接触的不熟悉的 java 基础知识点. 1.Java权限问题 \begin{align*}\begin{matrix} \ & public & protected & default & private\\\ 同一类中 & OK & OK & OK & OK &\\\ 同一包中 & OK & OK & \textbf{OK} & NO\\\ 子类 & OK & \textbf{OK} & NO & NO\\\ 其他类中 & OK & NO & NO & NO \end{matrix}\end{align*} 加黑内容:子类可以调用父类protected内容.同一个包内可以调用default权限的内容. 2.多态 … Continue reading “Java 基础知识点”

1 Comment so far