首页 > 其他分享 >JVM中的GC系统

JVM中的GC系统

时间:2023-02-17 19:56:01浏览次数:28  
标签:对象 引用 系统 GC 垃圾 JVM 内存

什么是GC?

GC(Garbage Collection)称之为垃圾回收,在JVM的执行引擎中自带这样的一个GC系统,此系统会按照一定的算法对内存进行监控和垃圾回收。

如何判断哪些对象是垃圾?

1、引用计数法:每个对象中应该有一个计数器。只要有引用引用着这个对象,这个对象的引用就会加1,没有引用这个计数器的值就是0,当计数器的值为0时,就说明这个对象是垃圾对象。

      缺点:可能存在相互引用,循环引用的对象不能被及时回收。

2、可达性分析:是否可以通过GC Root对象找到这个对象,找不到就认为是垃圾对象。

      缺点:对象引用链越长,对象的查找效率相对慢一些。

你知道哪些常用的GC算法?

1、标记清除算法(扫描内存,对活着的对象进行标记,再次扫描内存,对未标记的对象进行清除)

2、标记复制算法(扫描内存,将活着的对象标记同时拷贝到一块空闲区域,然后将原有的内存全部清空)

3、标记整理算法(扫描内存,将活着的对象向一侧移动,然后将边界外的内存进行清空)

JVM执行GC时的线程策略?

1、串行(整个GC过程,只有一个回收垃圾线程执行)

2、并行(允许多线程利用多核CPU优势并行GC)

3、并发(允许GC线程和业务线程并发执行)

JVM中有哪些常用的垃圾回收器?

1、Serial(串行垃圾回收器)

2、Parallel(并行垃圾回收器)

标签:对象,引用,系统,GC,垃圾,JVM,内存
From: https://www.cnblogs.com/yangcrazy/p/17131384.html

相关文章

  • 处理坑爹的 GOPATH (系统变量和Goland)
    学习go的过程中发现写好的代码放到自己电脑上发现跑不起来,说是导包失败,晚上睡觉看书的时候突然想到GOPATH,这是go语言特有的环境变量,是不是这个东西搞的鬼。设置gopath也是......
  • SpringCloudStarterSleuth搭建&使用
    是什么SpringCloudSleuth是SpringCloud生态系统中的一个分布式跟踪解决方案,可以用于跟踪微服务应用程序中的请求链路。它通过在请求中添加唯一标识符(TraceID)和调用标......
  • Deepin系统中计划任务crontab配置conda环境,执行对应脚本
    Linux系统下使用crontab配置计划任务.具体配置可以参考对应说明文档.查看crontab状态:systemctlstatuscron●cron.service-Regularbackgroundprogramprocessin......
  • C/C++学生个人消费记录管理系统[2023-02-17]
    C/C++学生个人消费记录管理系统[2023-02-17]学生个人消费记录管理系统学生个人消费记录管理系统给学生一个管理个人财务的平台,主要用于对学生的生活费用收入、支出进行添......
  • Debian/ubuntu系统的开机自启动服务的设置——update-rc.d: error: XXX Default-Start
    最近把自己的树莓派搞了起来,搭了个上网的共享热点,但是遇到了开机自启动的设置问题。 我们先给出正常的ubuntu系统的开机自启动服务的设置:在/etc/init.d/路径下面创建......
  • 23-Ubuntu系统使用
    Ubuntu系统安装Ubuntu安装步骤Ubuntu16.04安装及配置过程中涉及的主要内容(附链接汇总) 网络配置输入法 Ubuntu安装IDEAubuntu20环境下安装idea全纪录,不可能出错......
  • 并联型电源模块(单节点多电源系统)之Prebias预偏置功能分析
    本文用于分析电源模块预偏置功能(prebias),长期更新,欢迎大家批评指正~~~一、目的  目的就是在启动过程中防止输出电容放电。预偏置软启动:能够在上电过程中防......
  • Qt Embedded之二:Input 输入系统
    相对于没有视窗系统,鼠标、键盘、触摸板输入直接从evdev读取或者使用第三方的库实现比如libinput、tslib。这需要/dev/input/event*可以被用户读取。Eglfs和Linuxfb内部......
  • JVM初始化一个类包含几个步骤?
    加入这个类还没有被加载和连接,则程序先加载并连接该类加入该类的直接父类还没有初始化,则先初始化其直接父类加入类有初始化语句,则系统依次执行这些初始化语句当执行第......
  • 第一周复习笔记(MySQL、Redis、JVM、JUC)
    MySQL1.引擎1.1Innodb和MyIsAM的区别1.2Innodb的逻辑存储结构2.索引2.1索引的分类2.2索引优化2.3索引失效的场景3.事务3.1事务的隔离级别3.2ACID原则......