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

【jvm】方法区的理解

目录

          • 1. 说明
          • 2. 方法区的演进
          • 3. 内部结构
          • 4. 作用
          • 5.内存管理

1. 说明
  • 1.方法区用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码缓存等数据。它是各个线程共享的内存区域。
  • 2.尽管《Java虚拟机规范》中把方法区描述为堆的一个逻辑部分,但它却有一个别名叫作“非堆”(Non-Heap),目的是与Java堆区分开来。
  • 3.与Java堆一样,方法区是各个线程共享的内存区域。
  • 4.JVM方法区是Java虚拟机内存结构中的一个重要组成部分,它用于存储类的元数据、常量池、方法信息和静态变量等。
  • 5.随着JDK版本的演进,方法区的实现方式也在不断变化,但其在Java虚拟机中的作用和地位始终不变。
2. 方法区的演进
  • 1.永久代(PermGen):在JDK 1.7及以前,HotSpot JVM使用永久代来实现方法区。这种方式下,方法区的内存管理类似于Java堆,但存在内存溢出的风险,因为永久代有上限(通过参数-XX:MaxPermSize设置,即使不设置也会有默认大小)。
  • 2.元空间(MetaSpace):从JDK 8开始,HotSpot JVM改用元空间来实现方法区。元空间使用本地内存(Native Memory),由操作系统直接管理,因此其空间上限与操作系统相关。当大量加载类时,不用担心方法区溢出。元空间的使用可以通过参数-XX:MetaSpaceSize和-XX:MaxMetaSpaceSize来调整其初始大小和最大容量。
3. 内部结构
  • 1.类型信息:存储每个加载的类(Class)、接口(interface)、枚举(enum)、注解(annotation)的类型信息,包括类型的完整有效名称、直接父类的完整有效名称、直接接口的序列集以及类型的修饰符。
  • 2.域信息:存储类的所有域信息,包括域名称、域类型、域修饰符。
  • 3.方法信息:存储方法的相关信息,包括方法名、方法返回类型、方法的参数的数量和类型、方法的字节码、方法的修饰符以及方法的异常表。
  • 4.运行时常量池:方法区的一部分,用于存储编译期生成的各种字面量和符号引用,包括字符串、数字、类和方法的符号引用等。在类加载后,字节码文件中的常量池会被加载到运行时常量池中,供运行时使用。
4. 作用
  • 1.方法区在Java虚拟机内存中扮演了类的元数据存储和管理的角色。
  • 2.它不仅保存了类的结构信息,还包括了支持类运行时行为的相关数据。
  • 3.方法区的设计使得虚拟机能够高效地加载、存储和管理类信息,保证类的正确性和一致性。
5.内存管理
  • 1.内存分配:方法区的内存大小通常由JVM的启动参数控制。在JDK 8及以后,由于元空间使用本地内存,因此其内存分配更加灵活。
  • 2.垃圾回收:方法区也会进行垃圾回收,主要回收不再存活的类信息。当方法区无法满足内存分配请求时,会抛出OutOfMemoryError异常。

相关文章:

【jvm】方法区的理解

目录 1. 说明2. 方法区的演进3. 内部结构4. 作用5.内存管理 1. 说明 1.方法区用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码缓存等数据。它是各个线程共享的内存区域。2.尽管《Java虚拟机规范》中把方法区描述为堆的一个逻辑部分,但它却…...

ES-针对某个字段去重后-获取某个字段值的所有值

针对上面表的数据,现在想根据age分组,并获取每个分组后的name有哪些(去重后)。 select age, GROUP_CONCAT(DISTINCT(name)) from testtable group by age ; 结果: 如果想要增加排序: SELECT age, GROUP_CONCAT(DISTINCT name)…...

百度 2025届秋招提前批 文心一言大模型算法工程师

文章目录 个人情况一面/技术面 1h二面/技术面 1h三面/技术面 40min 个人情况 先说一下个人情况: 学校情况:211本中9硕,本硕学校都一般,本硕都是计算机科班,但研究方向并不是NLP,而是图表示学习论文情况&a…...

sglang 部署Qwen2VL7B,大模型部署,速度测试,深度学习

sglang 项目github仓库: https://github.com/sgl-project/sglang 项目说明书: https://sgl-project.github.io/start/install.html 资讯: https://github.com/sgl-project/sgl-learning-materials?tabreadme-ov-file#the-first-sglang…...

fastadmin操作数据库字段为json、查询遍历each、多级下拉、union、php密码设置、common常用函数的使用小技巧

数据库中遇到的操作 查询字段是json的某个值 //获取数据库中某个字段是json中得某个值,进行查询,goods是表中字段,brand_id是json中要查詢的字段。//数据类型一定要对应要不然查询不出来。$map[json_extract(goods, "$.brand_id")]…...

UniApp在Vue3的setup语法糖下自定义组件插槽详解

UniApp在 Vue3的 setup 语法糖下自定义组件插槽详解 UniApp 是一个基于 Vue.js 的跨平台开发框架&#xff0c;可以用来开发微信小程序、H5、App 等多种平台的应用。Vue 3 引入了 <script setup> 语法糖&#xff0c;使得组件的编写更加简洁和直观。本文将详细介绍如何在 …...

springboot上传下载文件

RequestMapping(“bigJson”) RestController Slf4j public class TestBigJsonController { Resource private BigjsonService bigjsonService;PostMapping("uploadJsonFile") public ResponseResult<Long> uploadJsonFile(RequestParam("file")Mul…...

Python学习从0到1 day29 Python 高阶技巧 ⑦ 正则表达式

目录 一、正则表达式 二、正则表达式的三个基础方法 1.match 从头匹配 2.search&#xff08;匹配规则&#xff0c;被匹配字符串&#xff09; 3.findall&#xff08;匹配规则&#xff0c;被匹配字符串&#xff09; 三、元字符匹配 单字符匹配&#xff1a; 注&#xff1a; 示例&a…...

机器学习-web scraping

Web Scraping&#xff0c;通常称为网络抓取或数据抓取&#xff0c;是一种通过自动化程序从网页中提取数据的技术。以下是对Web Scraping的详细解释&#xff1a; 一、定义与原理 Web Scraping是指采用技术手段从大量网页中提取结构化和非结构化信息&#xff0c;并按照一定的规…...

移远通信5G RedCap模组RG255C-CN通过中国电信5G Inside终端生态认证

近日&#xff0c;移远通信5G RedCap模组RG255C-CN荣获中国电信颁发的5G Inside终端生态认证证书。这表明&#xff0c;该产品在5G基本性能、网络兼容性、安全特性等方面已经过严格评测且表现优异&#xff0c;将进一步加速推动5G行业终端规模化应用。 中国电信5G Inside终端生态认…...

Javaweb梳理17——HTMLCSS简介

Javaweb梳理17——HTML&CSS简介 17 HTML&CSS简介17.1 HTML介绍17.2 快速入门17.3 基础标签17.3 .1 标题标签17.3.2 hr标签17.3.3 字体标签17.3.4 换行17.3.8 案例17.3.9 图片、音频、视频标签17.3.10 超链接标签17.3.11 列表标签17.3.12 表格标签17.3.11 布局标签17.3.…...

【Android、IOS、Flutter、鸿蒙、ReactNative 】自定义View

Android Java 自定义View 步骤 创建一个新的Java类&#xff0c;继承自View、ViewGroup或其他任何一个视图类。 如果需要&#xff0c;重写构造函数以支持不同的初始化方式。 重写onMeasure方法以提供正确的测量逻辑。 重写onDraw方法以实现绘制逻辑。 根据需要重写其他方法&…...

win11跳过联网激活步骤

win11跳过联网激活步骤 win11跳过联网激活步骤方法一&#xff1a;使用Shift F10快捷键&#xff08;推荐&#xff09;1. 启动Windows 112. 选择键盘布局或输入法3. 是否想要添加第二种键盘布局4. 让我们为你连接到网络5. 调出管理员模式CMD6. 耐心等待自动重启7. 启动Windows 1…...

利用c语言详细介绍下冒泡排序

软件开发过程中&#xff0c;排序算法是常规且使用众多的方法之一&#xff0c;而冒泡算法又是排序算法中最常规且基本的算法。今天我们利用c语言&#xff0c;图文详细介绍下冒泡算法。 一、图文介绍 我们输入一个数组&#xff0c;数组为【10&#xff0c;5&#xff0c;3&#xf…...

C# 面向对象

C# 面向对象编程 面向过程&#xff1a;一件事情分成多个步骤来完成。 把大象装进冰箱 (面向过程化设计思想)。走一步看一步。 1、打开冰箱门 2、把大象放进冰箱 3、关闭冰箱门 面向对象&#xff1a;以对象作为主体 把大象装进冰箱 1、抽取对象 大象 冰箱 门 &#xff0…...

android wifi扫描的capability

混合型加密android11 8155与普通linux设备扫描到的安全字段差别 android应用拿到关于wifi安全的字段&#xff1a; systembar-WifiBroadcastReceiver---- scanResult SSID: Redmi_697B, BSSID: a4:39:b3:70:8c:20, capabilities: [WPA-PSK-TKIPCCMP][WPA2-PSK-TKIPCCMP][RSN-PSK…...

datawhale 2411组队学习:模型压缩4 模型量化理论(数据类型、int8量化方法、PTQ和QWT)

文章目录 一、数据类型1.1 整型1.2 定点数1.3 浮点数1.3.1 正规浮点数&#xff08;fp32&#xff09;1.3.2 非正规浮点数&#xff08;fp32&#xff09;1.3.3 其它数据类型1.3.4 浮点数误差1.3.5 浮点数导致的模型训练问题 二、量化基本方法2.1 int8量化2.1.1 k-means 量化2.1.2 …...

数据分析-48-时间序列变点检测之在线实时数据的CPD

文章目录 1 时间序列结构1.1 变化点的定义1.2 结构变化的类型1.2.1 水平变化1.2.2 方差变化1.3 变点检测1.3.1 离线数据检测方法1.3.2 实时数据检测方法2 模拟数据2.1 模拟恒定方差数据2.2 模拟变化方差数据3 实时数据CPD3.1 SDAR学习算法3.2 Changefinder模块3.3 恒定方差CPD3…...

POD-Transformer多变量回归预测(Matlab)

目录 效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现POD-Transformer多变量回归预测&#xff0c;本征正交分解数据降维融合Transformer多变量回归预测&#xff0c;使用SVD进行POD分解&#xff08;本征正交分解&#xff09;&#xff1b; 2.运行环境Matlab20…...

Hadoop生态圈框架部署(七)- MySQL安装与配置教程

文章目录 前言一、MySQL安装与配置&#xff08;手动部署&#xff09;1. 下载MySQL2. 上传安装包3. 解压HBase安装包4. 配置4.1 配置 MySQL 的主配置文件 my.cnf4.2 配置 MySQL 服务的脚本 5. 初始化MySQL数据库6. 创建快捷方式7. 启动MySQL服务8. 修改MySQL登录密码8.1 使用临时…...

PHY6252:解锁蓝牙5.2 SOC在物联网与可穿戴设备中的低功耗高性能设计

1. PHY6252&#xff1a;重新定义蓝牙5.2 SOC的边界 第一次拿到PHY6252开发板时&#xff0c;我习惯性地看了一眼电流表——13μA的睡眠模式功耗让我立刻意识到&#xff0c;这绝不是一款普通的蓝牙芯片。作为深耕物联网领域多年的开发者&#xff0c;我见过太多标榜"低功耗&q…...

小米Pad 5变身Windows生产力工具:完整驱动配置实战指南

小米Pad 5变身Windows生产力工具&#xff1a;完整驱动配置实战指南 【免费下载链接】MiPad5-Drivers Based on Surface Duo Drivers. 项目地址: https://gitcode.com/gh_mirrors/mi/MiPad5-Drivers 你是否想过将手中的小米Pad 5从娱乐平板转变为真正的生产力工具&#x…...

TimelineJS终极指南:轻松创建零食文化演变史时间轴

TimelineJS终极指南&#xff1a;轻松创建零食文化演变史时间轴 【免费下载链接】TimelineJS 项目地址: https://gitcode.com/gh_mirrors/tim/TimelineJS TimelineJS是一款功能强大且简单易用的开源时间轴创建工具&#xff0c;即使是新手也能快速上手&#xff0c;轻松制…...

益达App:5分钟打造你的跨平台全能媒体聚合神器

益达App&#xff1a;5分钟打造你的跨平台全能媒体聚合神器 【免费下载链接】yidaRule 益达规则仓库 项目地址: https://gitcode.com/gh_mirrors/yi/yidaRule 还在为手机里装满了各种视频、音频、阅读App而烦恼吗&#xff1f;每天在不同应用间切换&#xff0c;只为找到想…...

OpenClaw版本升级:GLM-4.7-Flash环境无缝迁移指南

OpenClaw版本升级&#xff1a;GLM-4.7-Flash环境无缝迁移指南 1. 为什么需要升级&#xff1f; 上周我在本地开发环境遇到一个棘手问题&#xff1a;OpenClaw的旧版本无法正确解析GLM-4.7-Flash模型返回的JSON响应。经过排查发现是框架对数组嵌套结构的处理存在兼容性问题。这促…...

LFM2.5-1.2B-Thinking-GGUF开源大模型:低成本GPU算力高效利用实践指南

LFM2.5-1.2B-Thinking-GGUF开源大模型&#xff1a;低成本GPU算力高效利用实践指南 1. 模型概述 LFM2.5-1.2B-Thinking-GGUF是Liquid AI推出的轻量级文本生成模型&#xff0c;专为低资源环境优化设计。这个1.2B参数的模型采用GGUF格式&#xff0c;能够在消费级GPU甚至CPU上高效…...

MedGemma-X实战体验:像医生一样提问,AI智能回答

MedGemma-X实战体验&#xff1a;像医生一样提问&#xff0c;AI智能回答 1. 引言&#xff1a;当AI学会“看”和“说” 想象一下&#xff0c;你是一位放射科医生&#xff0c;面对一张复杂的胸部X光片&#xff0c;心中闪过几个疑问&#xff1a;“右肺中叶的阴影是炎症还是陈旧性…...

OpenClaw+Qwen3.5-9B:3步搭建自动化内容审核系统

OpenClawQwen3.5-9B&#xff1a;3步搭建自动化内容审核系统 1. 为什么选择OpenClaw做内容审核&#xff1f; 去年运营一个技术社区时&#xff0c;我每天要花2小时手动审核用户提交的内容。直到发现OpenClaw这个开源自动化框架&#xff0c;配合Qwen3.5-9B的多模态能力&#xff…...

GEE实战:基于ERA5-Land小时数据批量计算与导出区域月极值气温

1. ERA5-Land数据与GEE平台基础 ERA5-Land是欧洲中期天气预报中心&#xff08;ECMWF&#xff09;推出的高分辨率地表再分析数据集&#xff0c;它提供了从1950年至今的逐小时全球气候数据。与ERA5相比&#xff0c;ERA5-Land的空间分辨率更高&#xff0c;达到0.10.1&#xff08;约…...

OpenClaw+GLM-4.7-Flash:个人财务数据处理自动化方案

OpenClawGLM-4.7-Flash&#xff1a;个人财务数据处理自动化方案 1. 为什么需要自动化财务处理 每个月末&#xff0c;我都会面对一堆散乱的银行流水、电子发票和Excel表格。手动整理这些数据不仅耗时&#xff0c;还容易出错。直到我发现OpenClaw这个开源自动化框架&#xff0c…...