JVM-初识

/ java / 2 条评论 / 1273浏览

JVM

双亲委派模式

[Bootstrap ClassLoader]
[Extension ClassLoader]
[App ClassLoader]
[自定义类加载器]
[自定义类加载器]

JVM内存结构

类的初始化

JMM内存模型

GC

分代

  • Java虚拟机根据对象存活的周期不同,把堆内存划分为几块,一般分为新生代、老年代和永久代(对HotSpot虚拟机而言),这就是JVM的内存分代策略。
  • 堆内存是虚拟机管理的内存中最大的一块,也是垃圾回收最频繁的一块区域,我们程序所有的对象实例都存放在堆内存中
  • 新生代中的对象存活时间短,只需要在新生代区域中频繁进行GC,老年代中对象生命周期长,内存回收的频率相对较低,不需要频繁进行回收,永久代中回收效果太差,一般不进行垃圾回收

分代划分

新生代(Young Generation) Minor GC

老年代(Old Generationn) Full GC

永久代(Permanent Generationn)

分代垃圾收集器分类

次收集器Minor GC

全收集器Full GC

分代垃圾收集器(七个)

垃圾回收算法(四个)

引用计数(Reference Counting)

复制(Copying)

标记-清除(Mark-Sweep)

标记-整理(Mark-Compact)

GC Roots