【面试题精讲】JVM-方法区-运行时常量池
1. 什么是运行时常量池?运行时常量池(Runtime Constant Pool)是 Java 虚拟机中的一块内存区域,用于存储类文件中的常量数据以及符号引用。在编译阶段,Java 类文件中的常量将会被分析和存储到运行时常量池中。运行时常量池可以看作是一张表,在程序运行时通过常量的索引值直接或间接地引用这些常量。运行时常量池中包含了各种数据类型的常量,比如字符串、数字、类和接口的引用等。2. ....

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)(注意:方法区时一种规范,而永久代和元空间是它的一种实现方式)③. 方法区的大小决定了系统....

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。
Java开发者
Java开发者成长课堂,课程资料学习,实战案例解析,Java工程师必备词汇等你来~
+关注