Java方法区

方法区

Java方法区(Method Area),在Java虚拟机(JVM)内存结构中是一个非常重要的组成部分。方法区是用来存储类信息、常量、静态变量以及即时编译器编译后的代码等数据的内存区域。

内部结构

  1. 类元数据(Class Metadata)
    • 类元数据存储了每个已加载的类的信息,包括类的名称、父类、接口、字段、方法、构造函数等。
    • 这部分数据用于描述类的结构,以便JVM能够正确地创建和管理类的实例。
  2. 常量池(Constant Pool)
    • 常量池包含类中的字面常量(如字符串、数字、符号引用等)。
    • 常量池的信息用于支持类的运行时常量池,其中存储了在编译期间生成的常量和符号引用。
  3. 静态变量区域(Static Variables Area)
    • 静态变量区域存储类的静态变量,这些变量属于类而不是对象。
    • 这些静态变量的值在整个类加载的生命周期内都保持不变。
  4. 方法字节码(Method Bytecode)
    • 方法区还存储了编译后的方法字节码,这些字节码用于在运行时执行类中的方法。
    • 即时编译器(Just-In-Time Compiler,JIT)在这里生成本地机器代码以提高执行效率。
  5. 运行时常量池(Runtime Constant Pool)
    • 运行时常量池是常量池的运行时表示,其中包括编译期生成的常量和符号引用。
    • 它是在运行时解析常量池中的符号引用并进行动态连接的重要组成部分。
  6. 方法数据(Method Data)
    • 方法区还存储了方法的字节码、参数、局部变量表、操作数栈和异常处理器信息,用于执行方法。
    • 运行时栈帧中的方法数据存储在方法区中。

各版本方法区的演进

存储位置:JDK1.8之前,方法区存储在堆内存之中;JDK1.8及之后,方法区存储在直接内存之中。

存储对象:JDK1.6及之前方法区(永久代实现)存储的有常量池(字符串,运行时),静态变量,代码缓存;JDK1.7之后,方法区(永久代实现),将字符串常量和静态变量挪到了堆内存里面。

为什么JDK1.7之后要将字符串常量,静态变量挪到堆内存呢?

因为在永久代,这些对象回收比较困难,但是大多数字符串常量都是朝生夕死,需要高效的被GC,因此基于效率和节省空间角度考虑,将字符串常量挪到了堆里面。

在这里插入图片描述

配置方法区

Java 8及其后续版本使用Metaspace(元空间)来替代传统的PermGen(永生代),可以使用以下命令行选项来配置Metaspace:

设置Metaspace的最大大小:-XX:MaxMetaspaceSize=256m

设置Metaspace的初始大小:-XX:MetaspaceSize=64m

设置Metaspace的最大可用空间百分比:-XX:MaxMetaspaceFreeRatio=70

设置Metaspace的最小可用空间百分比:-XX:MinMetaspaceFreeRatio=40

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

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

相关文章

软件外包开发迭代管理工具

软件迭代的管理工具有助于团队有效地规划、跟踪和管理迭代开发过程,确保项目按时交付,并与团队成员之间进行协作。以下是一些常用的软件迭代管理工具,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司&#…

apache httpd 换行解析漏洞

原理 Apache HTTPD是一款HTTP服务器,它可以通过mod_php来运行PHP网页。其2.4.0~2.4.29版本中存在一个解析漏洞,在解析PHP时,1.php\x0A将被按照PHP后缀进行解析,导致绕过一些服务器的安全策略。 漏洞编号 cve-2017-15715 环境…

基于斑马优化的BP神经网络(分类应用) - 附代码

基于斑马优化的BP神经网络(分类应用) - 附代码 文章目录 基于斑马优化的BP神经网络(分类应用) - 附代码1.鸢尾花iris数据介绍2.数据集整理3.斑马优化BP神经网络3.1 BP神经网络参数设置3.2 斑马算法应用 4.测试结果:5.M…

力扣每日一题54:螺旋矩阵

题目描述: 给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。 示例 1: 输入:matrix [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4,5]示例 2: 输入&#…

复杂系统设计基本注意事项

目录 一、软件复杂性度量方法 (一)McCabe度量方法 (二)John Ousterhout度量方法 (三)一般建议 二、复杂性带来的危害 (一)修改扩散(Modification Diffusion&#x…

【Servlet】实现Servlet程序

文章目录 1. 最朴素方式1. 创建项目2. 引入依赖3. 创建目录4. 编写代码5. 打包程序6. 部署程序7. 验证程序 2. 更方便方式1. 安装Smart TomCat插件2. 启动 1. 最朴素方式 1. 创建项目 选择Maven项目 2. 引入依赖 Maven项目创建完后会生成一个pom.xml文件,我们可…

反射的作用( 越过泛型检查 和 可以使用反射保存所有对象的具体信息 )

1、绕过 编译阶段 为集合添加数据 反射是作用在运行时的技术,此时集合的泛型将不能产生约束了,此时是可以 为集合存入其他任意类型的元素的 。泛型只是在编译阶段可以约束集合只能操作某种数据类型,在 编译成Class文件进入 运行阶段 的时候&a…

【C++】VS2019,关于scanf等的报错及其解决方案

参考资料:B站袁春旭老师的网课 报错一:this function may be unsafe. Consider using scanf_s instead. 如下图 这种错误是因为SDL检查不通过,默认这个检查是开的,如下图, 解决方案:把这个SDL检查关闭即…

【吞噬星空】战神宫全体投票,为罗峰脱罪,徐欣补办婚礼,洪成功恢复脑电波

【侵权联系删除】【文/郑尔巴金】 吞噬星空动画第90集即将更新,官方相当给力,提前曝光了图文情报与先行预告。虽然罗峰与巴巴塔尚未正式开始闯荡宇宙,但却是斩杀阿特金三大巨头的平稳生活。不但有战神宫为罗峰脱罪,而且还给徐欣补…

算法进阶——数组中的逆序对

题目 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P mod 1000000007 数据范围:对于 50% 的数据, size≤104 对…

STM32F4XX之串口

一、标准串口(UART)介绍 1、通信协议相关概念 1.1同步通信和异步通信 (1)同步通信:两个器件之间共用一个时钟线,要发送的数据在时钟的作用下一位一位发送出去。 (2)异步通信:指两个器件之间没…

C++入门——引用|内联函数|auto关键字|基于范围的for循环|指针空值

前言 C入门专栏是为了补充C的不足,并为后面学习类和对象打基础。在前面我们已经讲解了命名空间、输入输出、缺省参数、重载函数等,今天我们将完结C的入门。 下面开始我们的学习吧! 一、引用 1、引用是什么呢?为什么C添加了引用&a…

kali安装nodejs、npm失败

更新apt-get再安装,更新时间比较久,看网速,中间有一些确认步骤 22 apt-get update23 apt-get upgrade24 apt-get install nodejs25 node26 npm27 apt-get install npm

第十届山东省大学生网络安全技能大赛【神秘的base】【小试牛刀】

神秘的base 题目描述 EvAzEwo6E9RO4qSAHq42E9KvEv5zHDt34GtdHGJaHD7NHG42bwd神奇密码: xbQTZqjN8ERuwlzVfUIrPkeHd******LK697o2pSsGDncgm3CBh/Xy1MF4JAWta解题思路 这个题,上午一直零解,后来放出了hint,提示了base64换表。 这…

新零售系统主要功能有哪些?新零售系统开发公司推荐

新零售系统是一套全面的数字化解决方案,旨在帮助实体零售店提升运营效率、优化用户体验并实现持续增长。以下是新零售系统的主要功能: l 用户画像:系统通过收集和分析顾客的行为、偏好、购买历史等数据,构建出完整的用户画像。这…

2023.10.19 关于设计模式 —— 单例模式

目录 引言 单例模式 饿汉模式 懒汉模式 懒汉模式线程安全问题 分析原因 引言 设计模式为编写代码的 约定 和 规范 阅读下面文章前建议点击下方链接明白 对象 和 类对象 对象和类对象 单例模式 单个实例(对象)在某些场景中有特定的类,…

XPS就是分一下峰没你想的那么简单!-科学指南针

还记得前一段时间的一篇刷屏的经典文章吗! 林雪平大学(Linkping University)的Grzegorz Greczynski和Lars Hultman二人发表观点性文章,对诺奖得主K. Siegbahn推荐的XPS校准方法可能存在的问题进行了阐述与批评,并提出建议。文章原标题为“Compromising S…

程序员的金饭碗在哪里?这几个网站建议收藏!帮助你一步登天

俗话说的好,一个趁手的工具抵过诸葛亮。尤其是在程序员这个领域,不仅是一个非常和科技挂钩的领域,而且更新速度非常的迅速。 连java python都在更新,手头上写码的工具却还是老三样怎可行?这就需要我们跟上时代的脚步&…

统信操作系统UOS上安装arm64版nginx

原文链接:统信操作系统UOS上安装arm64版nginx hello,大家好啊,今天给大家带来一篇在统信桌面操作系统UOS上安装arm64版nginx的文章,本篇文章主要是给大家提供一种下载离线nginx软件包的方法,拿到软件包可以去不能链接互…

众和策略:华为汽车概念活跃,圣龙股份斩获12板,华峰超纤涨10%

华为轿车概念23日盘中再度生动,到发稿,华峰超纤涨超10%,佛山照明、圣龙股份、隆基机械、银宝山新等涨停,赛力斯涨近6%。 值得注意的是,圣龙股份已接连12个交易日涨停。 昨日晚间,圣龙股份宣布前三季度成果…