美文网首页
JVM内存模型与GC

JVM内存模型与GC

作者: 16325 | 来源:发表于2017-10-26 10:57 被阅读0次

内存模型

线程栈:每个线程创建自己的栈区,大小可配置。如果太小递归调用会stackOverflow
堆内存:存储对象的区域,最大最小值均可设置
方法区:常量,类信息,静态变量等,大小可配置
程序计数器:不会有内存溢出,记录程序执行行数等
本地方法栈:会内存溢出。
image.png

GC-堆内存

Eden :新创建对象都在伊甸区
S0:新生代复制区域,默认是Eden的八分之一大小
S1:新生代复制区域,S0和S1两个区域完成不断复制的过程。
Old:老年代,新生代无法回收,大对象都会进入老年代。

GC-永久代

指方法区的内存回收。主要回收两部分内容:废弃常量和无用的类。频率远低于堆内存。

垃圾回收算法

  • 可达性算法,GC Roots往下搜索。GC Roots可以是虚拟机栈(栈帧中的本地变量表)中引用的对象等。
  • 复制算法。新生代的算法。两块区域,将存活的复制到新区域,老区域清空。
  • 标记清除算法。第一轮标记废弃对象,第二轮删除他们。
  • 标记整理算法。与标记清除类似,但是删除之后,存活的对象向前移动,避免空间碎片。
  • 新生代都是复制算法,空间不够由老年代来担保。
  • 老年代都是标记整理,多线程的。

相关文章

  • JVM问题及解答

    常见JVM问题 JVM内存模型,GC机制和原理。注意JVM内存模型与Java内存模型(JMM)不是同一个东西。JV...

  • Java知识图谱

    Java基础 JVM JVM内存模型和结构 GC原理&内存分配策略 性能调优:Thread Dump class ...

  • jvm

    笔者最近学习jvm 的内存模型,这里根据下面几个模块来做个总结: 1.jvm的内存模型 2.jvm gc原理 jv...

  • JVM 垃圾收集与 GC 算法

    在前文 JVM 虚拟机与对象创建过程 中了解到 JVM 运行时的内存模型,既然使用了内存就要考虑如何回收内存。GC...

  • PFI

    jvm 介绍下内存模型?为什么需要内存模型?新生代gc方式?工作原理? 老年代GC方式?工作原理?适用场景? 标...

  • JVM内存模型与GC

    内存模型 线程栈:每个线程创建自己的栈区,大小可配置。如果太小递归调用会stackOverflow 堆内存:存储对...

  • JVM 内存结构 和内存回收算法

    一、JVM 内存模型、GC 1.1GC是啥? GC是垃圾回收机制,java中将内存管理交给垃圾回收机制,这是因为在...

  • JVM

    简介 Jvm 系列一:Java类的加载机制Jvm系列二:JVM内存结构 --内存泄漏与内存溢出Jvm系列三:GC算...

  • 8. JVM Memory Model and Visibili

    前言:JVM内存模型、Java内存区域、GC分代回收容易搞混。前面讲解了JVM内存区域,它是Java代码编译成.c...

  • 面试(个人自用)

    自我介绍部分jvm问题(内存模型,gc)JUC包 向面试官提问

网友评论

      本文标题:JVM内存模型与GC

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