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

JVM学习第一篇

一、JVM整体架构

1.JVM组层

JVM(虚拟机):指以软件的方式模拟具有完整硬件功能、运行在一个完全隔离环境中的完整计算机系统,是物理机的软件实现。

JVM由三个主要的子系统构成

  • 类加载子系统
  • 运行时数据区(内存结构)
  • 执行引擎

Snipaste_2026-05-25_21-43-15

2.线程包含的私有内存

程序计数器、Java栈、本地方法栈
Snipaste_2026-05-25_21-53-26

class StudyJVM {public static final Integer CONSTANT_1 = 666;public static void main (String [] args) {StudyJVM studyJVM = new StudyJVM();int count = studyJVM.method1();}public int method1() {method2();int a = 1;int b = 2;int count = (a + b) * 10;return count;}public void method2() {System.out.println("end");}     
}

Java 栈的运行流程

main方法栈帧先压入java栈。main方法调用method1方法,然后method1方法压入栈帧。method1方法调用method2方法,然后method2方法压入栈。method2执行完出栈,method1执行完出栈,main方法执行完出栈。

3.栈帧

局部变量、操作数栈、动态链接、方法出口

Snipaste_2026-05-26_09-55-20

# 将StudyJVM.class 编译成易读的文件到 studyJVM.txt
# 主要功能为分解Java编译生成的class文件,用于查看字节码或进行反编译操作
javap  -c StudyJVM.class > studyJVM.txt
Compiled from "StudyJVM.java"
class org.example.StudyJVM {public static final java.lang.Integer CONSTANT_1;org.example.StudyJVM();Code:0: aload_01: invokespecial #1                  // Method java/lang/Object."<init>":()V4: returnpublic static void main(java.lang.String[]);Code:0: new           #2                  // class org/example/StudyJVM3: dup4: invokespecial #3                  // Method "<init>":()V7: astore_18: aload_19: invokevirtual #4                  // Method method1:()I12: istore_213: getstatic     #5                  // Field java/lang/System.out:Ljava/io/PrintStream;16: iload_217: invokevirtual #6                  // Method java/io/PrintStream.println:(I)V20: getstatic     #5                  // Field java/lang/System.out:Ljava/io/PrintStream;23: ldc           #7                  // String end25: invokevirtual #8                  // Method java/io/PrintStream.println:(Ljava/lang/String;)V28: returnpublic int method1();Code:0: aload_01: invokevirtual #9                  // Method method2:()V4: iconst_15: istore_16: iconst_27: istore_28: iload_19: iload_210: iadd11: bipush        1013: imul14: istore_315: iload_316: ireturnpublic void method2();Code:0: getstatic     #5                  // Field java/lang/System.out:Ljava/io/PrintStream;3: ldc           #10                 // String start5: invokevirtual #8                  // Method java/io/PrintStream.println:(Ljava/lang/String;)V8: returnstatic {};Code:0: sipush        6663: invokestatic  #11                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;6: putstatic     #12                 // Field CONSTANT_1:Ljava/lang/Integer;9: return
}
 public int method1() {method2();int a = 1;int b = 2;int count = (a + b) * 10;return count;}
4: iconst_1
5: istore_1
6: iconst_2
7: istore_2
8: iload_1
9: iload_2
10: iadd
11: bipush        10
13: imul
14: istore_3
15: iload_3
16: ireturn

二、JVM类加载器

三、JVM内存结构

四、JVM执行引擎

http://www.jsqmd.com/news/889701/

相关文章:

  • 智能体治理:超越MCP的框架设计与实战指南
  • 为什么Thorium浏览器是Chromium生态中的编译优化典范?
  • 避开这些坑!Keil uVision5新建工程到编译HEX的保姆级避坑指南
  • ZenTimings:AMD Ryzen内存时序监控终极指南与完整教程
  • 终极英雄联盟自动化工具指南:5分钟解放双手,告别繁琐游戏操作
  • drawio-desktop:企业级跨平台图表协作解决方案
  • 51单片机驱动继电器模块,除了点灯还能玩什么?5个创意应用思路分享
  • AI智能体质量治理实战:从集体失控到可靠协同的工程化修复
  • 2026 南宁名表回收门店横评,多家商户对比摸清真实行情 - 薛定谔的梨花猫
  • 西安黄金回收指南:2026年避坑手册与机构推荐 - 上门黄金回收
  • 普祥健康冲刺港股:年营收4.7亿 净利降24% 王伟斌控制74%股权
  • # 2026年国内广东广州地区亚马逊代运营五大品牌排名及解析 - 十大品牌榜
  • Unity iOS上线必修课:Info.plist权限配置与App Store审核避坑指南
  • 打卡信奥刷题(3319)用C++实现信奥题 P9188 [USACO23OPEN] Pareidolia S
  • 如何快速搭建企业级ITSM平台:iTop开源CMDB与IT服务管理完整指南
  • 离散概率分布实战指南:二项、泊松、几何、超几何四大分布选型与落地
  • 平台、用户、品牌都在变,《2026 AI重构下的社交媒体营销趋势报告》五大趋势,你读懂了吗?
  • JMeter压测过程中的四维监控与七步根因排查法
  • Layerdivider终极指南:如何免费快速实现专业级图像智能分层
  • 2026年5月潜水搅拌机/立式潜水搅拌机/推流式潜水搅拌机/防爆潜水搅拌机厂家推荐:高效混合与节能稳定实力之选 - 品牌推荐用户报道者
  • Claude认证架构师指南:AI原生应用架构设计与实战解析
  • 5分钟快速汉化Android Studio:官方修改版中文语言包完全指南
  • 开源AI模型许可证全解析:从MiniMax争议看商业应用避坑指南
  • 魔兽争霸3现代系统完美运行终极指南:告别闪退卡顿,畅享经典RTS
  • 告别杂乱无章:5个技巧让macOS菜单栏重获新生
  • 从梯度消失到网络重生:ResNets残差块的设计哲学与实现
  • 中山黄金上门回收推荐,福运来高分领跑 - 黄金回收
  • 英雄联盟录像编辑神器:5步轻松制作专业游戏视频
  • 别再让FTP卡壳了!华为防火墙ASPF功能保姆级配置指南(附eNSP实验拓扑)
  • ComfyUI-Impact-Pack完整指南:AI图像增强的5大核心功能详解