
jvm
阿澈师兄
这个作者很懒,什么都没留下…
展开
-
jvm学习(一)之内存模型区域详解
1,引言 在内存管理区域java与c、c++语言不同的是jvm负责管理内存控制和垃圾回收的功能,而c、c++程序员需要代码里面管理内存,这样虽然方便了java的开发,但出现内存溢出和泄漏等问题也不好排查,让我们先了解下虚拟机内存模型。 2,jvm内存模型图 3,程序计数器 官方解释是程序计数器是当前线程所执行的字节码的行号指示器,在虚拟机的概念模型里(仅是概...原创 2018-09-16 10:05:43 · 249 阅读 · 0 评论 -
jvm学习(二)之垃圾回收算法
1,判断对象是否回收 1.1、引用计数算法 对象中添加一个引用计数器,如果引用计数器为0则表示没有其它地方在引用它。如果有一个地方引用就+1,引用失效时就-1。实际上在大部分Java虚拟机中并没有采用这种算法,因为它会带来一个致命的问题——对象循环引用。对象A指向B,对象B反过来指向A,此时它们的引用计数器都不为0,但它们俩实际上已经没有意义因为没有任何地方指向它们。如下所示:在最后,...原创 2018-10-04 11:40:16 · 219 阅读 · 0 评论 -
jvm学习(三)之内存分配及回收策略
1,对象优先分配到新生代的Eden区 大多数情况下,对象在新生代eden区中分配,当Eden区没有足够的空间分配,虚拟机将发起一次minor GC 2,大对象直接进入老年代 需要大量连续内存空间的Java对象称为大对象,大对象的出现会导致提前触发垃圾收集以获取更大的连续的空间来进行大对象的分配,JVM参数-XX:PretenureSizeThreshold的意思就是将体积大于这个设置值的对...原创 2018-10-06 12:41:55 · 241 阅读 · 0 评论