JVM内存模型、GC垃圾回收

 

 

一、堆

Java虚拟机管理的内存中最大的一块,目的是存放对象实例

堆是垃圾收集器管理的主要区域,也被称为GC堆。Java垃圾回收机制:分代垃圾回收算法;因此Java堆还可以细分为新生代、老年代。

二、方法区

存储已被虚拟机加载的类信息、常量、静态变量等数据

三、程序计数器

代码编译后会生成一条条指令,程序计数器记录指令执行到哪一行了

四、JVM栈

生命周期与线程相同,用于存放局部变量等

每个方法被执行的时候都会创建一个栈帧,每个方法执行过程中,就是栈帧进栈到出栈的过程

五、本地方法栈

为虚拟机用的Native方法服务

 

垃圾回收

一、如何判断垃圾

1、引用计数算法

  在对象中添加一个引用计数器,计数为0时不再使用

2、根搜索算法

  从GC Roots开始向下搜索,当一个对象到GC Roots没有任何引用链相连时,认为不可用

二、垃圾回收机制

1、标记清除算法

  标记所有需要被回收的对象,统一清除

2、标记复制算法

  将留下的对象复制到另一块内存区域,统一清除原内存区域

3、标记整理算法

  将保留的对象移动到内存的一侧,边界外的对象清除

Java采用的来及回收机制:分代收集算法

  分为新生代和老年代,新生代采用标记复制算法,老年代采用标记整理算法

posted @ 2022-03-14 00:56  ❉SSs  阅读(33)  评论(0编辑  收藏  举报