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

JVM篇-JVM主要组成部分

JVM主要由类加载子系统,运行时数据区,执行引擎,本地方法接口,,本地库组成

1.类加载子系统

负责加载、链接和初始化类文件(.class)。类加载过程分为三步:

加载:查找并读取字节码文件到内存。

链接:验证字节码、分配静态变量内存、解析符号引用。

初始化:执行静态代码块和静态变量赋值。

2.运行时数据区
方法区:

存储类元数据、常量池等,JDK1.7之前通过永久代实现,JDK1.8之后通过元空间来实现.

堆:

存放对象实例和数组(线程共享)

虚拟机栈:

存储栈帧(局部变量、操作数栈等),每个线程独占。

本地方法栈:

支持本地方法(如C/C++代码)调用。

程序计数器:

记录当前线程执行的字节码指令地址。

3.执行引擎

解释或编译字节码为机器码并执行

解释器:

逐行解释字节码,启动速度快但效率低。

即时编译器:

将热点代码编译为本地机器码(如HotSpot的C1/C2编译器)。

垃圾回收器:

自动回收堆内存中的无用对象(如Serial、G1、ZGC等算法)。

4.本地方法接口

提供调用非Java代码(如C/C++库)的能力,通过native关键字声明方法。

5.本地库

JVM依赖的底层系统库(如文件操作、线程管理等),通过JNI与操作系统交互。

补充:

1.对于局部变量,栈帧这些变量无需考虑线程安全问题,对于对象实例和数组则需考虑线程安全问题
2.栈的内存溢出分为栈帧过多(无递归出口或递归次数过多)和栈帧过大来两种情况,其中第一种情况较为常见
3.jvm相关的指令

jmap(Java Memory Map)是JDK提供的一个命令行工具,主要用于生成Java堆内存的详细信息。它可以帮助开发者分析内存使用情况、对象分布以及内存泄漏问题。

jmap(Java Memory Map)是JDK提供的一个命令行工具,主要用于生成Java堆内存的详细信息。它可以帮助开发者分析内存使用情况、对象分布以及内存泄漏问题。

jstack 是 JDK 自带的命令行工具,主要用于生成 Java 虚拟机(JVM)中线程的快照(Thread Dump),帮助开发者分析线程状态、定位死锁、线程阻塞等问题。

javap是 JDK 自带的命令行工具,用于反编译 Java 类文件,显示类的成员、方法签名、字节码等信息。它通常用于调试、分析类文件结构或理解编译后的代码行为。基本语法为javap [options] <classname>

JVisualVM 是 Java 虚拟机(JVM)监控和性能分析工具,集成在 JDK 中,支持本地和远程 JVM 监控。它提供内存、线程、CPU 分析等功能,适用于开发和生产环境的问题诊断。

4.对于jdk1.6之前和jdk1.6之后有一个区别,那就是串池中存储的对象发生变化,1.6之前存字符串的副本,1.6之后存字符串的引用
http://www.cnnetsun.cn/news/3025919.html

相关文章:

  • 2026打工人必看:这些看似正常的文件,可能是木马的入口
  • 在POSIX线程中正确处理无参数函数
  • 我终于知道,Codex 为什么需要一块无限画布了
  • CSS Flexbox布局的精妙应用
  • 解决django.db.utils.OperationalError: attempt to write a readonly database错误
  • 如何快速上手SDR++:跨平台软件定义无线电的终极解决方案
  • 《多级标签并行筛选》一、Flex弹性布局使用指南
  • 全栈 API 设计与 GraphQL 实践:从 N+1 查询到 DataLoader 优化的工程化方案
  • 数据结构(六)
  • Loop 工程:从 prompter 到 loop 设计师 [翻译]
  • 2026命理软件做批量检索怎么选?八字排盘App要看标签体系和条件筛选
  • Windows热键神秘失踪案:Hotkey Detective一键破案的神奇体验
  • Kali Linux下Nikto Web扫描器实战:从原理到自动化安全评估
  • 加密算法实战指南:从对称/非对称原理到混合系统设计与密钥管理
  • LinkSwift:一键解锁九大网盘下载限速的免费解决方案
  • 告别重复操作:鸣潮自动化工具如何解放你的游戏时间
  • 【Springboot毕设全套源码+文档】基于SpringBoot的智能家居管理系统设计与实现(丰富项目+远程调试+讲解+定制)
  • 热粘塑性材料参数识别与高效仿真:非负矩拟合与hp-FCM方法实践
  • 突破Mac文件系统壁垒:开源NTFS读写解决方案深度指南
  • JPEXS FFDec终极指南:5步掌握Flash逆向工程免费工具
  • Olist电商数据分析实战:从数据清洗到商业洞察全流程解析
  • Navicat Premium Mac无限试用终极指南:告别14天限制的完整解决方案
  • 单节点跑业务稳如泰山 扩容高可用集群反而频繁卡死 复盘完整连接交互揪出深层根因
  • 非均匀Navier-Stokes方程:密度斑块下的渐近行为与正则性分析
  • Boss直聘批量投递工具:如何用技术突破求职效率瓶颈
  • 为什么说要“买在一致”
  • 如何在Windows上免费享受Spotify Premium无广告体验完整指南
  • ncmdump:音乐格式解密专家,5分钟掌握NCM转换全流程
  • 如何快速配置PotPlayer字幕翻译插件:免费实现多语言视频无障碍观看的终极指南
  • 解决Reloaded-II模组无限下载循环的技术方案与架构优化