JAVA GC(垃圾回收机制)-1

作者: 萌小A | 来源:发表于2017-04-20 00:12 被阅读89次

1.相关概念

1.开篇

Arvin小编又来写技术博文啦,做个小小的笔记,顺便给一些人扫扫盲,最近对Java 的GC(垃圾回收机制)特别感兴趣。很早就知道在C/C++ 这类语言中需要程序猿自己去操作对内存的管理 什么 alloc, dealloc啦之类的。当初学OC的时候也有这么一章节。但是说到java很少有人会说到管理内存这块知识。java相比C语言在内存管理这块先进了好多,因为java的内存是自动管理的,光自动这个词就知道很高级有木有。但是java是怎么去创建和释放内存的呢。这个很有必要扒一扒,毕竟听说有些面试上来就问java的GC是怎么work的。还有就是这一块属于jvm的基本知识。

2.预备知识

这篇文章只要是为后面的GC分析来做基础知识扫盲的,主要是讲jvm的内存分配。以前提到过jvm的内存就分2块 一个栈(stack)一个堆(Heap),其实这个是错的,没有这么简单,还是有点小复杂的,好了来扒一扒jvm的内存

2.JVM内存

1.结构


heap中2块地方 句炳池和实例池,句炳用来找到实例和对象类型数据
方法2)直接访问,就是取消了句炳了。直接存储实例的地址,直接访问到实例数据



二者的优缺点:句炳的话,如果数据发现改变移动 reference里面的值是不会变的。直接访问的话效率更好速度更快,sum hotspot vm就是用的直接访问.

第一篇文章到这里结束啦。主要介绍了vm的内存分配,如果大家要测试oom可以修改vm对应的参数。

相关文章

网友评论

    本文标题:JAVA GC(垃圾回收机制)-1

    本文链接:https://www.haomeiwen.com/subject/mjhhzttx.html