当前位置: 首页 > news >正文

【Java】jvm 元空间、常量池(了解)

  1. JDK1.8 以前的 HotSpot JVM 有方法区,也叫永久代(permanent generation)
  2. 方法区用于存放已被虚拟机加载的类信息,常量、静态遍历,即编译器编译后的代码
  3. JDK1.7 开始了方法区的部分移除:符号引用(Symbols)移至 native heap,字面量(interned strings)和静态遍历(class statics)移至 java heap

常量池:

字面量(Literal)和符合引用(Symbolic References)。

字面量如:文本字符串、final常量值等,

符号引用包含下面3类:

  • 类和接口的权限定名
  • 字段的名称和描述符
  • 方法的名称和描述符

字符串常量池

JDK1.7之前字符串常量池存放在方法区中;

JDK1.7开始字符串常量池存放在堆中;

javap -p -v Test08.class




示例代码

package com.api.Demo07;public class Test08 {public static void main(String[] args) {/*** java 元空间* 1. JDK1.8 之前的称作 方法区/永久代,存放 静态变量、calss信息,改名——元空间* 2. JDK1.7 开始将 字符串常量池 从方法区 改为 堆中存放*//*** 常量池——表格形式* #0   str* #1   String* #2   mayikt** 上面这些形成后称为——运行常量池* 通过反汇编  查看常量池* javap -p -v Test.class*/String str = "mayikt";System.out.println(str);}
}

反编译 查看String常量池 


下一篇文章:Math 类

http://www.lryc.cn/news/194378.html

相关文章:

  • Spring Boot自动加载
  • MPNN 模型:GNN 传递规则的实现
  • Flink kafka 数据汇不指定分区器导致的问题
  • 【软考】14.1 面向对象基本概念/分析设计测试
  • MFC-对话框
  • Essential Steps in Natural Language Processing (NLP)
  • Flink中KeyBy、分区、分组的正确理解
  • QT6集成CEF3--01 准备工作
  • 随机误差理论与测量
  • 树莓派4b配置通过smbus2使用LCD灯
  • UPS 原理和故障案例分享
  • Stream流中的 max()和 sorted()方法
  • 云上攻防-云原生篇Docker安全权限环境检测容器逃逸特权模式危险挂载
  • PDE数值解中,为什么要引入弱解(weak solution)的概念?
  • 使用pdfjs实现在线预览pdf
  • 汇编语言基础
  • 格式工厂怎么把两个视频合并在一起
  • 2.MySQL表的操作
  • 网络安全之应急流程
  • [Python进阶] 操纵鼠标:pyuserinput
  • 【LeetCode】每日一题两数之和寻找正序数组的中位数找出字符串中第一个匹配项的下标在排序数组中查找元素的第一个和最后一个位置
  • 与HTTP相关的各种协议
  • 常见的网络攻击手段
  • 学习笔记---超基础+详细+新手的顺序表~~
  • Java高级-CompletableFuture并发编程利器
  • python、java、c++哪一个前景比较好?
  • 【排序算法】详解直接插入排序和希尔排序原理及其性能分析
  • JDK1.8对HashMap的优化、以及通过源码解析1,8扩容机制
  • Linux串口断帧处理
  • springboot集成kafka