Java面试八股之JVM永久代会发生垃圾回收吗

  1. JVM永久代会发生垃圾回收吗

JVM的永久代(PermGen)在Java 8之前是存在的一部分,主要用于存储类的元数据、常量池、静态变量等。在这些版本中,永久代确实会发生垃圾回收,尤其是在永久代空间不足或超过某个阈值时,会触发完全垃圾回收(Full GC)。这一过程主要是为了回收不再使用的类定义和其他可以被释放的资源,以避免永久代的内存溢出。

但从Java 8开始,永久代被元空间(Metaspace)所替代,元空间使用的是直接的本地内存而不是虚拟机内存,因此它不参与Java堆的垃圾回收过程。元空间的大小可以通过JVM参数进行调整,并且当元空间耗尽时,JVM会抛出OutOfMemoryError错误,而不是像堆内存那样进行垃圾回收来释放空间。不过,虽然元空间本身不进行垃圾回收,但类加载器相关的无用类定义可以被卸载,从而间接回收元空间的内存。

 如果大家需要视频版本的讲解,欢迎关注我的B站:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/856353.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c#考试知识点

第一题 //数组{1,2,3,,8,6} //方法(数组,目标值) //输出 //接收一个数组,输出目标值是数组中哪两个数的和,并输出下标 using System; using System.Collectio…

企业该如何防查盗版?如何防软件后台泄密数据?

随着信息化的发展,企业日常办公越来越依赖互联网。终端以及普通PC终端在访问互联网过程中,会遇到各种各样不容忽视的风险,例如员工主动故意的数据泄漏,后台应用程序偷偷向外部发信息,木马间谍软件的外联,以…

xshell使用vi命令:bash:vim:command not found

你们好,我是金金金。 场景 此时我通过xshell客户端连接到了远程的虚拟机。想用vi命令编辑一个文件时,显示:bash: vim: command not found 排查 看报错提示就可以知道,没找到vim命令 解决 使用包管理器 apt 来安装 vim 更新你的软…

数据结构(中)

完全二叉树的第6层有10个结点,那么有(21)个叶子结点。 10-52*2*2*2 设树中某结点不是根结点,则离它最近的祖先结点是双亲结点 一颗有5个结点的深度为3的二叉树采用顺序存储方式存储,存储数组的大小至少为7 看深度&…

民宿小程序在线预约系统开发,提高品牌影响力

在旅游业发展旺盛的当下,也带动了各地民宿的发展。在科技的支持下,民宿小程序得到了快速发展,凭借方便快捷的优势为大众带来新的体验。 民宿小程序的发展为用户提供了便捷的预订渠道,用户可以根据对房间的要求选择,能…

[HGAME 2022 week1]Matryoshka(古典密码混合)

题目: 直接说方法: 首先这是一段盲文,要先将盲文反转, 然后再用摩斯密码转换 将得到的字符串去掉“,”后,base16解码 在尝试维吉尼亚密码 再用base64解码 然后用凯撒密码 最后栅栏密码(22栏)

Linux-账号和权限管理

目录 一、管理用户账号 1、用户账号类型 2、UID--身份标识 3、UID的分类 ​4、用户账号文件​ 5、chage-修改账号密码 5.1、chage—使用格式: 5.2、chage—使用参数: ​6、添加用户账号与管理 6.1、useradd—添加用户 6.2、passwd—设置/修改…

【HarmonyOS NEXT】har 包的构建生成过程

Har模块文件结构 构建HAR 打包规则 开源HAR除了默认不需要打包的文件(build、node_modules、oh_modules、.cxx、.previewer、.hvigor、.gitignore、.ohpmignore)和.gitignore/.ohpmignore中配置的文件,cpp工程的CMakeLists.txt,…

3d隐藏模型为什么就不见了?---模大狮模型网

在3D建模和设计过程中,经常会遇到需要隐藏某些模型的情况。然而,有时候隐藏之后再也找不到这些模型了。这种情况可能让人感到困惑和沮丧。本文将探讨3D隐藏模型后“消失”的原因,并提供一些解决方法,帮助您更好地管理和查找隐藏的…

循环的结构

一.简介 循环结构,一般常用在while,do…while,for循环三个语法,但我们一般来常用的是for循环,while与do…while我们只需要掌握就可以。 于此同时,我们需要掌握一下循环控制的关键字,开始循环时…

服务端⾼并发分布式结构演进之路

在进行技术学习过程中,由于大部分读者没有经历过一些中大型系统的实际经验,导致无法从全局理解一些概念,所以本文以一个"电子商务"应用为例,介绍从一百个到千万级并发情况下服务端的架构的演进过程,同时列举…

SpringBoot:SpringBoot集成Druid监控慢SQL

一、前言 数据库连接池是一个至关重要的组成部分,一个优秀的数据库连接池可以显著提高应用程序的性能和可伸缩性。常见的连接池:Druid、HikariCP、C3P0、DBCP等等,不过目前大部分都是使用Druid或者SpringBoot默认的HikariCP! 本文…

一个完整的Flutter应用

15.2 Flutter APP代码结构 | 《Flutter实战第二版》 我们先来创建一个全新的Flutter工程,命名为"github_client_app" 我们在项目根目录下分别创建imgs和fonts、jsons、l10n文件夹 工程目录如下: 在lib下创建文件夹如下: 在“jso…

Word和Excel如何快速对齐姓名

日常工作经常遇到整理参会人员名单时,有2字姓名、3字姓名,为保证文档美观,你是否还在一个一个空格在敲空格? 今天刘小生分享如何在Word和Excel中快速对齐姓名,快来练起来吧! 1. Word姓名对齐 【第一步】…

自动化平台总结(httprunner+djangorestframework+python3+Mysql+Vue)【基础结构构思】

一、前言 把一个以前自己搭建的自动化测试平台进行了一下重构升级,记录一下过程中的一些问题和总结。 二、简介 搭建的平台语言使用的是Python3.6,未来有空可能考虑加个java版本。前端用的Vue,主体是httprunner2.XDjangorest-framework&am…

Elasticsearch:智能 RAG,获取周围分块(二)

在之前的文章 “Elasticsearch:智能 RAG,获取周围分块(一) ” 里,它介绍了如何实现智能 RAG,获取周围分块。在那个文章里有一个 notebook。为了方便在本地部署的开发者能够顺利的运行那里的 notebook。在本…

git 上拉下来的新项目web文件夹没有被idea管理,导致启动不了

让idea识别web项目,操作步骤: 1. 打开idea -- 文件 -- 项目结构; 2. 选择 模块 --- 添加 --- web -- 应用 --- 确定,就好了。 3. 文件夹中间出现个圆圈就是被识别到了。

HarmonyOS模拟器(phone-x86-api9)一直卡顿的解决方法

在DevEco Studio 3.1.1 Release版本中的Device Manager中创建本地的模拟器,创建phone-x86-api9模拟器成功,但是启动该新建的模拟器一直显示"HarmonyOS"logo图片,然后一直卡在这里,运行结果如下所示: 检查模…

记录一次递归查询导致的 java.lang.StackOverflowError: null

问题截图: 由于作者使用递归统计信息,刚开始这个接口运行得正常,但是上线运行一段时间后接口就出现了,如图的栈溢出错误。可以看出确实是堆栈溢出了,解决栈溢出目前只有两种方式: 第一种调大栈的大小&…

精华版 | 2024 Q1全球威胁报告一览

概要 Q1最热门的安全事件是XZ/liblzma后门高危漏洞。开发人员Andres Freund一次偶然情况下,发现了XZ/liblzma存在后门并对该漏洞进行报告。XZ/liblzma是一个广泛使用的开源工具,掌握该后门攻击者几乎可以访问任何运行受感染发行版的 Linux 机器。这一事…