![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
jvm
Noob_Lv1
这个作者很懒,什么都没留下…
展开
-
jvm的垃圾回收算法
标记清除算法: 根据可达性算法判断哪些对象可以回收,将其标记,然后回收。也可以标记存活的对象,统一回收未被标记的对象。 缺点:内存碎片化问题,导致较大内存对象无法找到连续足够的内存,从而导致另外一次垃圾回收。 2.标记复制算法:将内存一分为二,每次只用一块,当这块内存满了,就把活着的对象移到另外一块内存,然后把之前的内存空间直接清理掉。 缺点: 如果内存大部分是活着的对象,会产生大量的内存间复制的开销。 内存一分为二,空间来说太浪费了。 3.标记整理算法 标记整理是在标记清除算法上,加了一个移.原创 2021-03-14 01:48:16 · 55 阅读 · 0 评论 -
JVM如何判断一个对象是否可以被回收?
java虚拟机通过可达性分析算法去判断一个对象是否可以被回收。 具体是根据一个叫“GC ROOT”的根结点作为起始节点,根据引用关系向下搜索,搜索过程走过的路径叫做引用路径,如果对象到这个对象没有任何一个引用链相连接,或者用图论的话说就是从GC ROOT 到这个对象不可达的时候,则判断该对象不可能再被使用。 java中固定可作为GC ROOT 的对象,虚 拟机栈中的引用对象,即各个线程被调用的方法堆栈中使用到的参数、局部变量、临时变量等。 方法区中类静态属性引用的对象,java类的引用类型静态变量。 方法原创 2021-03-14 01:14:11 · 164 阅读 · 0 评论 -
深入理解Java虚拟机学习笔记(不断更新中)
自动内存管理 1. Java内存区域与内存溢出异常 c++层序开发人员需要对每一个对象负责,即他们需要担负每个对象生命从开始到终结的维护责任。 Java程序员,在虚拟机自动内存管理机制下,不需要对每个对象进行delete/free,不容易出现内存泄漏或者内存溢出的问题。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eCQwKBMF-1609425465135)(C:\Users\svv\Desktop\书籍\jvm内存图.png)] 线程共享区域: 方法区、堆、执行引擎、本原创 2021-01-05 17:52:00 · 101 阅读 · 0 评论