JVM内存模型,垃圾收集算法,垃圾收集器

原创 2018年04月17日 19:21:54

一、JVM内存模型

  1. 程序计数器(Program Count Register)
  2. 本地方法栈(Native Stack)
  3. 方法区(Methon Area)
  4. 栈(Stack),存放基本类型数据,进行运算操作,其上数据是可以共享的
  5. 堆(Heap),存放引用类型数据

新生代(Young Generation):分为 Eden 与 2个Survivor Space(幸存区),回收的对象内存比较多,用Copying(复制)算法进行垃圾回收。

由堆内存分配

老年代(Old Generation):进行一次回收很慢,回收的对象比较少,用Mark-Compact(标记-整理)算法回收。由堆内存分配

永久代(Permanent Generation): 存放的是类,方法,常量信息。由方法区内存分配


二、垃圾收集算法

1.Mark-Sweep(标记-清除)算法

   先标记,在清除,会产生垃圾碎片,当要分配大对象内存是,没有可以分配的内存,会导致垃圾回收。

2.Copying(复制)算法

   为了解决标记-清除算法产生的内存碎片问题,而提出的算法,始终存在一块空闲的内存,当发生垃圾回收是,把存活对象复制到空闲内存,把其他内存清除。

3.Mark-Compact(标记-整理)算法

   为了解决复制算法,内存利用率不高问题,而提出的算法,把存活对象向一端移动,把存活对象区域边界的内存清除。

4.Generational Collection(分代收集)算法

   这是目前大部分JVM采用的垃圾回收算法,根据不同的代使用不同的算法。新生代用Copying(复制)算法,老年代Mark-Compact(标记-整理)算法。


三、垃圾收集器

1.串行

2.并行

3.并发



JVM笔记3:Java垃圾收集算法与垃圾收集器

当前商业虚拟机的垃圾收集都采用“分代收集”算法,即根据对象生命周期的不同,将内存划分几块,一般为新生代和老年代,不同的代根据其特点使用不同的垃圾收集算法,主要的垃圾回收算法有:一,标记-清除算法 二,...
  • a19881029
  • a19881029
  • 2013-10-22 09:37:17
  • 3075

深入理解JVM垃圾收集算法与垃圾收集器

  • 2016年05月07日 07:57
  • 4.65MB
  • 下载

深入理解Java虚拟机(带层级目录)

  • 2018年03月16日 17:02
  • 12.43MB
  • 下载

JVM内存模型及垃圾回收机制

JVM内存模型 1、栈 Java栈是与每一个线程关联的,JVM在创建每一个线程的时候,会分配一定的栈空间给线程。存储局部变量、引用、方法、返回值等。 StackOverflowError:如果在线程执...
  • zhangpengju999
  • zhangpengju999
  • 2013-09-17 15:22:15
  • 15144

java虚拟机调优

  • 2014年10月13日 16:58
  • 1.33MB
  • 下载

JVM内存模型及垃圾回收算法

JVM内存模型总体架构图及垃圾回收算法
  • kingofworld
  • kingofworld
  • 2013-12-31 17:29:44
  • 4635

JVM垃圾收集算法

java虚拟机JVM垃圾收集算法有四种:标记-清除算法、复制算法
  • yyywyr
  • yyywyr
  • 2014-09-17 21:17:16
  • 2570

JVM内存分配与垃圾回收详解

  • 2012年07月06日 17:11
  • 10.83MB
  • 下载

jvm垃圾收集算法

jvm垃圾收集算法有:标记-清除算法,复制算法,标记-整理算法,分代收集算法。 1.标记-清除算法(Mark-Sweep) 最基础的收集算法是“标记-清除”(Mark-Sweep)算法。 ...
  • lidf1992
  • lidf1992
  • 2017-04-12 14:08:42
  • 169
收藏助手
不良信息举报
您举报文章:JVM内存模型,垃圾收集算法,垃圾收集器
举报原因:
原因补充:

(最多只允许输入30个字)