《JVM学习》8、方法区

JVM方法区 文章目录栈、堆、方法区的交互关系方法区的理解HotSpot中方法区的演进设置方法区大小方法区的内部结构类型信息域信息方法(Method)信息non-final的类变量全局常量常量池 VS 运行时常量池常量池class文件常量池字面量符号引用运行时常量池字符串常量池基本类型包装类常量池方法区使用举例方法区的演进细节为什么永久代要被元空间替代?StringTable为什么要调整位置静态变量存放在那里?对象实例化内存布局和访问定位对象的实例化步骤(6步)对象内存布局(3类)对象访问方式(2种)java中4种(re 阅读详情

方法区

运行时数据区结构图

在这里插入图片描述

堆和方法区图例

在这里插入图片描述

1、栈、堆、方法区的交互关系

从线程共享与否角度来看

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2、方法区的理解

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3、设置方法区大小与OOM

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

OOM 举例

在这里插入图片描述

如何解决OOM

在这里插入图片描述

4、方法区内部结构

在这里插入图片描述
在这里插入图片描述

1、类型信息

在这里插入图片描述

2、域信息

在这里插入图片描述

3、方法信息

在这里插入图片描述

运行时常量池VS常量池

常量池是什么

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

运行时常量池

在这里插入图片描述

5、方法区使用举例

不涉及堆空间()因为没有new

在这里插入图片描述
在这里插入图片描述

sipush_500 => 往操作数栈中放入500

在这里插入图片描述

istore_1 往局部变量表中1号下标的位置放500的数值

在这里插入图片描述

bipush_100 往操作数栈中入栈100

在这里插入图片描述

istore_2 在局部变量表下标为2的地方存100,操作数栈内的100出栈
在这里插入图片描述

在这里插入图片描述

iload_1 iload_2 把局部变量表里的 1和2号下标的值,压入到操作数栈中

在这里插入图片描述

除法操作 在操作数栈中操作,栈顶放最终结果

在这里插入图片描述

把计算的最终结果放到栈顶

在这里插入图片描述

把50存到局部变量表的4号下标位置

在这里插入图片描述

常量池内容 ,找对应的常量

在这里插入图片描述

getstatic #2 找常量池中 #2的符号引用对应的常量信息,最终转换成直接引用。

在这里插入图片描述

iload_3 iload_4 将局部变量表中下标 3和4的数字放到操作数栈中

在这里插入图片描述
在这里插入图片描述

iadd做累加运算

在这里插入图片描述

通过#3的符号引用找到对应的常量信息

在这里插入图片描述

return 方法执行结束

在这里插入图片描述

6、方法区的细节演示

在这里插入图片描述

演变过程

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

永久代为什么会被元空间替代

在这里插入图片描述

在这里插入图片描述

StringTable 为什么要调整

在这里插入图片描述

静态变量放在那里

在这里插入图片描述

7、方法区的垃圾回收

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

8、总结

在这里插入图片描述

9、常见面试题

在这里插入图片描述
在这里插入图片描述

告别C盘爆红!手把手教你将WSL2下的Ubuntu 22.04完整迁移到D盘(附清理指南) 本文详细指导如何将WSL2下的Ubuntu 22.04从C盘无损迁移到D盘,包括导出备份、注销原系统、导入新位置等关键步骤,并提供迁移后的优化配置、开发环境衔接及长期维护技巧,帮助用户彻底解决C盘空间不足问题。 阅读详情

相关推荐

安卓风控对抗实战:如何用AOSP定制ROM绕过Momo、AIDA64等检测(从环境搭建到设备画像)

本文详细解析了如何通过定制AOSP ROM绕过Momo、AIDA64等安卓风控检测工具的设备指纹识别。从环境搭建到硬件参数修改,再到内核级特征混淆,提供了一套完整的底层对抗方案,显著提升设备伪装通过率。

weixin_30687051的博客 490

JVM——(8)运行时数据区的方法区

文章目录前言一、栈、堆、方法区的交互关系二、方法区的理解方法区在哪里?方法区基本理解Hotstop中方法区的演进三、设置方法区大小与OOMJDK7及以前(永久代)设置JDK8及以后(元空间)设置四、方法区的内部结构类型信息:域(属性)信息:方法信息:non-final 类型的类变量全局常量:static final运行时常量池:常量池中有啥?那么运行时常量池是啥?五、方法区的使用案例六、方法区演进细节JDk 6 示意图如下:JDk 7 示意图如下:JDk 8 示意图如下:永久代为什么要被元空间替代?字符串常

zhouhengzhe的博客 1686

聚类教程:cisTopic——来自单细胞表观基因组学数据的顺式调控主题的概率建模

之前运行这步的时候报错了如下: 后来发现原因是Ubuntu自动把R包更新到4.2版本,但是Rstudio版本没有更新,更新Rstudio即可,更新Rstudio的教程看此教程:。

watermel__的博客 1051

JVM的内存区域划分(jdk7和jdk8)

  目录 前言 1、什么是JVM 2、JRE/JDK/JVM是什么关系 3、JVM执行程序的过程 4、 JVM的生命周期 5、JVM垃圾回收 一.运行时数据区的组成 1.程序计数器 2.Java栈(虚拟机栈) 1)、局部变量表 2)、操作数栈 3)、指向运行时常量池的引用 4)、方法返回地址 3.本地方法栈 4.堆 5.方法区  直接内存(Direct Memo...

l1394049664的博客 1万+

mmdetection 实战:基于Mask R-CNN与自定义COCO数据集的目标检测全流程解析

本文详细解析了如何使用mmdetection框架和Mask R-CNN模型,基于自定义COCO数据集完成目标检测任务的全流程。内容涵盖环境搭建、数据格式转换、配置文件定制化、模型训练与评估等核心步骤,并提供了针对工业缺陷检测场景的实用调优思路与避坑指南,帮助开发者高效构建高性能检测模型。

weixin_29046611的博客 136

shader多图叠加变换

shader Shader "Paint3D/AddTexture" { Properties { _MainTex ("Main Texture", 2D) = "white" {} _MainColor("Main Color", Color)=(1,1,1,1) _AddTex0 ("Texture0", 2D) = "white" {} _AddTex1 ("Texture1", 2D) = "white" {} .

李长江的博客 908

Java—JVM的内存

内存 JAVA是在JVM所虚拟出的内存环境中运行的,JVM内存区域主要包括:程序计数器、Java虚拟机栈、本地方法栈、Java堆、方法区。 线程独占: 程序计数器: 计数器记录的是虚拟机字节码指令的地址(当前指令的地址)。字节码解释器工作时通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等功能都需要依赖这个计数器。 虚拟机栈(stack): 常说的栈也就是虚拟机栈,栈是由一个个栈帧组成,而每个栈帧中都拥有:局部变量表、操作数栈、动态链接、方法出口信

#请假条的博客 333

JS逆向-Protobuf逆向解析

目录一、什么是Protobuf二、Protobuf环境配置三、Protobuf实例序列化与反序列化四、逆向解析 Protobuf案例1、python序列化2、python反序列化 一、什么是Protobuf 1、protocol buffers介绍:是一种语言无关、平台无关、可扩展的序列化结构数据的方法。严格说不算是加密,只能是叫序列化结构数据,让可读变为疑似的乱码,那反序列化即让疑似的乱码变为可读 2、protobuf使用流程的前提是有一个.proto文件,对逆向而言就是还原.proto文件,选择

十一姐的博客 1万+

Java8---底层内存结构方法区

方法区: jvm运行时内存区域主要分为:程序计数器,jvm栈,本地方法栈,堆,方法区。 jvm规把方法区描述为堆的逻辑结构(即永久区PermGen)但是他还有个别名,叫Non-Heap(非堆),目前情况除了Oracle-sun- hotspot还采用永久区以外,Oracle-JRockit,IBM-J9以及国内阿里的jvm,都不存在永久区的概念,而Hotspot也逐渐消除永久区,jdk1

林竹清_清清清 6539

Python从0到100完整学习指南(必看导航)

想做这件事情很久了,这次我更新了自己所写过的所有博客,汇集成了Python从0到100,共一百节课,帮助大家一个月时间里从零基础到学习Python基础语法、Python爬虫、Web开发、 计算机视觉、机器学习、神经网络以及人工智能相关知识,成为学业升学和工作就业的先行者!

拥有百余位万粉技术博主、200余位可合作代发博主,私域技术社群规模达千人,商务合作私信 6万+

Python全栈项目--手机语音远程控制智能家居系统(含嵌入式控制)

摘要:本项目实现了一个基于Python全栈的智能家居语音控制系统,支持手机端语音指令控制家居设备。系统采用FastAPI后端+Vue3前端的架构,集成Web Speech API实现语音识别,通过嵌入式设备(如ESP32)执行硬件控制。功能包括用户认证、设备管理、场景联动、指令解析和日志记录,支持HTTP轮询和直推两种命令下发模式。项目涵盖物联网全链路开发,适用于课程设计或毕业设计原型开发。

exlink2012的专栏 877

【JVM】JVM02(方法区-串池-直接内存)

⭐️1.2.1类型信息对每个加载的类型,jvm必须在方法区存储以下类型信息类型的完整有效名称(全名=包名.类名类型直接父类的完整有效名称(接口和java.lang.Object,没有父类)类型的修饰符(public,abstract,final的某个子集)类型直接接口的一个有序列表⭐️1.2.2域(Field)信息保存类型的所有域的相关信息以及域的声明顺序。

efgtrrg的博客 920

《R 语言卡方检验全解析:手写代码实现与详细步骤》卡方检验

卡方检验(Chi-Square Test)是一种常用的统计方法,主要用于检验分类变量之间的独立性或拟合优度。在医学、社会科学等领域中,卡方检验常用于分析两个或多个分类变量之间的关系。以下是卡方检验的全面解析,包括实现代码和手写公式。χ2∑Ei​Oi​−Ei​2​Oi​Ei​dfr−1c−1rcdfk−1k如果卡方统计量大于临界值,或 p 值小于显著性水平(如 0.05),则拒绝原假设。

Mrrunsen的博客 685

JVM虚拟机(一)介绍、JVM组成、堆、栈、方法区/元空间、直接内存

JVM虚拟机(一)介绍、JVM组成、堆、栈、方法区/元空间、直接内存

ACGkaka的博客 2169

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

JVM笔记-17运行时数据区-方法区(演变、设置大小、内部结构、演变细节)

元空间在本地内存实现,而不在虚拟机设置的内存中,

秃头不用洗发水的博客 362

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

堆、栈、方法区到底是什么?一文带你搞懂 JVM 运行时数据区内存模型!

大家好,我是码哥。在 JVM 的世界中,运行时数据区域是整个虚拟机的基础,它决定了程序的内存管理、线程的执行流以及垃圾回收的核心逻辑。运行时数据区域的划分不仅体现了 JVM 的设计哲学,还在性能优化中起着至关重要的作用。本章我们将从 JVM 的内存模型入手,逐步拆解堆与方法区的核心结构及其角色,深入解析程序计数器与栈内存的设计原理,让你理解 JVM 的内存管理机制并为调优实践打下基础。JVM 内存...

码哥字节 882

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

JVM内存结构

写一下JVM的笔记: 在JVM1.6的版本,PermGen永久代是方法区的实现,StringTable字符串池存放于运行时常量池中。在JVM1.8的版本,Metaspace元空间是方法区的实现,此时的StringTable字符串池被移出,存放在Heap堆中。 本章节主要通过学习黑马视频总结得到的,感兴趣的可以移步该视频黑马程序员JVM完整教程,全网超高评价,全程干货不拖沓_哔哩哔哩_bilibili ...

weixin_54974321的博客 401

JVM虚拟机学习(1)---Jvm内存区域

目录页:https://mp.youkuaiyun.com/postedit/95937156 1.小声哔哔 本文主要基于JDK1.8,网上已有许多大神对JVM内存区域划分做了详解,本文目的主要是对自己学习心得的记录,如有错误请指正。 2.运行时数据区 JVM在运行过程中会把它所管理的内存划分为若干不同数据区域 线程私有:程序计数器、本地方法栈、虚拟机栈 线程共享:堆、方法区 如下...

左撇子帕布 260

初识JVM

请你谈一谈对你对jVM的理解?java8虚拟机和之前的变化跟新 什么是OOM,什么是栈溢出StackOverFlowError?怎么分析? 内存快照如何抓取,怎么分析Dunm文件?知道吗? 谈谈jvm,类加载器你的认识。 通过以上问题,我们开始通过这些问题来进行学习jvm 1.jvm的位置 JRE-jvm时运行性在操作系统的上一个应用程序 通过这张图片就能明白jvm的位置 2.JVM的体系结构 通过...

qq_42676040的博客 288

JVM学习(Lxiun)

文章目录概要思考学习以下内容学习方式知识点1.JVM的位置JVM的体系结构类加载器双亲委派机制沙箱安全机制NativePC寄存器方法区栈堆三种JVM新生区、老年区永久区堆内存调优GC垃圾回收器(常用算法)JMM总结 概要 思考 请你谈谈你对JVM的理解?java8虚拟机和之前的变化更新? 什么是OOM,什么是栈溢出StackOverFlowError?怎么分析? JVM常用调优参数有哪些? 内存快照如何抓取,怎么分析Dump文件? 谈谈JVM中,你对类加载器的认识? 学习以下内容 JVM的位置 JVM

lxiun39的博客 629

JVM方法区详解

线程共享角度来分析运行时数据区 栈,堆,方法区的交互

勇心在馨 8083

java方法区超详细汇总,方法区到底是干什么用的?不懂方法区不能说了解jvm!

目录 一、运行时数据区结构图 二、栈、堆、方法区的交互关系 三、方法区的理解 官方文档 方法区在哪里 方法区的基本理解 HotSpot中方法区而定演进 四、设置方法区大小与OOM 设置方法区内存的大小 代码举例1 代码举例2 如何解决这种OOM? 五、方法区的内部结构 方法区(MethodArea)存储什么? 方法区的内部结构 类型信息: 域(Field)(属性)信息: 方法(Method)信息: non-final的类变量 全局常量(static+final) .

秃了也弱了 1万+

JVM 方法区(Method Area)

JVM 方法区 文章目录JVM 方法区方法区的理解栈、堆、方法区的交互关系HotSpot中方法区的演进永久代为什么要使用元空间替换字符串常量池(StringTable)为什么要调整方法区的内部结构类型信息域(Field)信息方法(Method)信息代码举例non-final 类型的类变量全局常量 static final运行时常量池解释常量池和运行时常量池方法区的垃圾回收类卸载常见面试题 方法区的理解 运行时数据区: 方法区(Method Area)与Java堆一样,是各个线程共享的内存区域,它用于存储已

TheAnnoyingDog的博客 3859

方法区【JVM】

JVM-方法区 1. 方法区的作用 当类加载器加载完成类之后,会将类信息、运行时常量池、静态变量(此处指的是指针,如果是一个对象对象的分配还是在堆中)等存储在方法区;但在JDK不同版本对字符串常量和静态变量的存储有所不同,这部分内容后续列出 2. 不同版本的方法区 JDK6:在JDK6以前方法区也就是HotSpot虚拟机中的永久代,此时类信息、运行时常量池、静态变量等存储在方法区 JDK7:在JDK7中法区也是HotSpot虚拟机中的永久代,此时类信息以及其他信息存储在永久代,但是静态变量以及字符串常

sui_feng_piao_guo的博客 5367

JVM之 方法区 和 堆 的总结(学习笔记)

1、方法区(Method Area),又称永久代(Permanent Generation),又称非堆区(Non-Heap space) 方法区,又称永久代(Permanent Generation),常称为PermGen,位于非堆空间,又称非堆区(Non-Heap space)。 方法区是被所有线程共享。 所有字段和方法字节码,以及一些特殊方法如构造函数,接口代码也在此定义。 简单说,所有定...

猎人在吃肉 6991
上一篇: 《JVM学习》7、堆
下一篇: 《JVM学习》9、对象的实例化内存布局与访问定位
pywanggui
博客等级 码龄12年 6粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

pywanggui

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值