JVM工作原理与实战(二十二):方法区的垃圾回收
一、Java的内存管理和自动垃圾回收 运行时数据区知识回顾: Java虚拟机(JVM)在运行Java程序期间,会创建并维护一系列内存区域,这些区域总称为运行时数据区。这些区域根据其用途和特性,被严格定义并管理。《Java虚拟机规范》详细规定了这些区域的作用和行为,以确保所有Java虚拟机实现的一致性和正确性。 线程不共享区域: 程序...

<JVM上篇:内存与垃圾回收篇>07-方法区(四)
7.6. 方法区的演进细节首先明确:只有 Hotspot 才有永久代。BEA JRockit、IBMJ9 等来说,是不存在永久代的概念的。原则上如何实现方法区属于虚拟机实现细节,不受《Java 虚拟机规范》管束,并不要求统一Hotspot 中方法区的变化:7.6.1. 为什么永久代要被元空间替代?官网地址:JEP 122: Remove the Permanent Generation (jav....

<JVM上篇:内存与垃圾回收篇>07-方法区(三)
7.4.4. 运行时常量池运行时常量池(Runtime Constant Pool)是方法区的一部分。常量池表(Constant Pool Table)是 Class 文件的一部分,用于存放编译期生成的各种字面量与符号引用,这部分内容将在类加载后存放到方法区的运行时常量池中。字节码中的常量池存放的都是符号引用,链接解析阶段将符号引用转化为直接引用.所以方法区的运行区常量池里面存放的都是直接引用.....

<JVM上篇:内存与垃圾回收篇>07-方法区(二)
7.4.2. 方法区的内部结构类型信息对每个加载的类型(类 class、接口 interface、枚举 enum、注解 annotation),JVM 必须在方法区中存储以下类型信息:这个类型的完整有效名称(全名=包名.类名)这个类型直接父类的完整有效名(对于 interface 或是 java.lang.object,都没有父类)这个类型的修饰符(public,abstract,final 的....

<JVM上篇:内存与垃圾回收篇>07-方法区(一)
7. 方法区从线程共享与否的角度来看7.1. 栈、堆、方法区的交互关系7.2. 方法区的理解官方文档:Chapter 2. The Structure of the Java Virtual Machine (oracle.com)7.2.1. 方法区在哪里?《Java 虚拟机规范》中明确说明:“尽管所有的方法区在逻辑上是属于堆的一部分,但一些简单的实现可能不会选择去进行垃圾收集或者进行压缩。”....

JVM06_方法区的概述、内部结构、演变、常量池、运行时常量池、垃圾回收(四)
⑧. 方法区的垃圾回收前言:(1).有些人认为方法区(如Hotspot,虚拟机中的元空间或者永久代)是没有垃圾收集行为的,其实不然。《Java 虚拟机规范》对方法区的约束是非常宽松的,提到过可以不要求虚拟机在方法区中实现垃圾收集。事实上也确实有未实现或未能完整实现方法区类型卸载的收集器存在(如 JDK11 时期的 ZGC 收集器就不支持类卸载)(2). 一般来说这个区域的回收效果比较难令人满意,....
JVM06_方法区的概述、内部结构、演变、常量池、运行时常量池、垃圾回收(三)
⑥. 运行时常量池①. 运行时常量池,常量池是 *.class 文件中的,当该类被加载,它的常量池信息就会放入运行时常量池,并把里面的符号地址变为真实地址②. 运行时常量池( Runtime Constant Pool)是方法区的一部分。③. 常量池表(Constant Pool Table)是Class文件的一部分,用于存放编译期生成的各种字面量与符号引用,这部分内容将在类加载后存放到方法区的....

JVM06_方法区的概述、内部结构、演变、常量池、运行时常量池、垃圾回收(二)
③. 方法区的演进细节①. Jdk 1.6 及之前:有永久代,静态变量、字符串常量池1.6在方法区②. Jdk 1.7 :有永久代,但已经逐步 " 去永久代 ",字符串常量池、静态变量移除,保存在堆中③. jdk 1.8 及之后: 无永久代,常量池1.8在元空间。但静态变量、字符串常量池仍在堆中④. 为什么要用元空间取代永久代永久代设置空间大小是很难确定的(①. 永久代参数设置过小,在某些场景下....

JVM06_方法区的概述、内部结构、演变、常量池、运行时常量池、垃圾回收(一)
①. 方法区的概述①. 方法区在JVM启动的时候被创建,并且它的实际的物理内存空间和Java堆区一样都可以是不连续的 | 关闭Jvm就会释放这个区域的内存②. 方法区时逻辑上是堆的一个组成部分,但是在不同虚拟机里头实现是不一样的,最典型的就是永久代(PermGen space)和元空间(Metaspace)(注意:方法区时一种规范,而永久代和元空间是它的一种实现方式)③. 方法区的大小决定了系统....

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。