![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
机械佬也想学编程
华南理工大学机械工程研究生
展开
-
四种引用与引用队列
强引用:Java程序平常使用的引用都是强引用,只要强引用还存在,垃圾收集器永远不会回收这些被引用的对象。 // 创建一个强引用 Object object = new Object(); 软引用:描述一些还有用但非必需的对象。在系统要发生内存溢出之前,被软引用的对象将会被列入回收范围中进行第二次回收。在OutOfMemoryError之前,垃圾收集器会优先回收长时间闲置的软引用对象,对那些新创建的软对象会尽可能保留 软引用由SoftReference类表示: // 创建一个强引用 Object objec原创 2021-01-29 16:16:47 · 583 阅读 · 0 评论 -
JVM的体系结构
JVM的体系结构 程序计数器: 可看作当前线程所执行的字节码的行号指示器,通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程回复等基础功能都是通过这个计数器来完成的。 每条线程都有一个独立的程序计数器。 如果执行的是Java方法,这个计数器记录的是正在执行的虚拟机字节码指令的地址;如果执行的是Native方法,这个计数器的值为空(Undefined) 虚拟机栈:描述Java方法执行的内存模型 每个方法执行的同时会创建一个栈帧(Stack Frame)用于存储局部原创 2020-12-22 18:12:43 · 52 阅读 · 0 评论 -
双亲委派机制
双亲委派机制 当一个类加载器收到类加载请求时,该类加载器会先将请求委派给父类加载器,直至最顶端的父类加载器,当最顶端的父类加载器在搜索范围内找不到指定类时,子类加载器一层一层往下搜索。 实际工程流程: 1 当Application ClassLoader 收到一个类加载请求,将该请求委派给父类加载器Extension ClassLoader 2 当Extension ClassLoader收到一个类加载请求,将该请求委派给父类加载器Bootstrap ClassLoader 3 如果Bootstrap Cl原创 2020-12-22 18:02:32 · 56 阅读 · 0 评论 -
Java垃圾回收算法
Java垃圾回收(Garbage Collection,GC) 怎样定义垃圾 引用计数算法:在对象头中分配一个空间来保存该对象被引用的次数(Reference Count),当引用计数为0时回收该对象。 缺点:当存在两个对象A,B,分别由a, b来引用,即a = A, b = B,假设A中的字段与B中的字段存在相互引用,当将a,b设置为null时,并不能让垃圾回收器回收A,B这两个对象(其对象内部相互循环引用),此时造成了内存泄漏,代码如下: public class ReferenceCountingGC原创 2020-12-22 17:59:54 · 75 阅读 · 0 评论