JVM GC

本文详细介绍了JVM的组成部分,运行原理以及垃圾回收的细节。JVM由类加载子系统、运行时数据区和执行引擎等组成。垃圾回收主要针对堆和方法区,采用多种算法,如标记-清除、复制、标记-整理和分代收集。通过可达性分析法确定垃圾,并通过OopMap数据结构加速GC过程。垃圾收集器如Serial、ParNew、Parallel Scavenge、CMS和G1各有特点,适用于不同的性能需求。内存分配策略包括对象优先在Eden分配、大对象直接进入老年代等。
摘要由CSDN通过智能技术生成

JVM

JVM组成

JVM由类加载子系统,运行时数据区,执行引擎以及本地方法接口组成。

在这里插入图片描述

JVM运行原理

java源文件经编译器,编译成字节码程序,通过JVM将每一条指令翻译成不同平台机器码,通过特定平台运行。

Java垃圾回收区域

  1. Java垃圾回收只针对堆和方法区的内存
  2. 程序计数器,虚拟机栈,本地方法栈的内存随线程产生,随线程而灭

如何确定垃圾

  1. 引用计数法

统计有多少人引用了,如果0人引用,则判断为垃圾。

缺点:引用很多时,消耗太大;A引用B,B引用A,其实A,B都是垃圾,但是他们引用永远都是1,不会被回收掉,陷入死循环。

  1. 可达性分析法

从垃圾回收的根出发判断是否可见

什么是垃圾回收的根

  1. 就是JVM认为一定有用的
  2. JVM栈中引用的对象(局部变量)。JVM认为垃圾回收时,暂停的那一刻,所有的局部变量都是有用的。
  3. 方法区中的静态变量,常量引用的对象
  4. 本地方法栈中Native方法引用的对象&#x
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值