JVM是什么?
JVM是什么JVM即Java Virtual Machine即Java虚拟机。虚拟机是什么模拟出一台和真实物理电脑行为几乎一样的虚拟电脑的软件。JVM是进程虚拟机不模拟硬件只模拟一套自定义虚拟指令集专门用来跑编程语言代码和物理CPU无关为什么要模拟真实物理电脑解决Java程序跨平台运行的问题。什么是跨平台运行一份软件或程序代码不需要修改源码、不用重新编译就能在多种不同操作系统、不同 CPU 硬件架构上直接正常运行。为什么需要跨平台运行多平台需要搭建多套编译环境维护成本极高第三方依赖极易出现编译失败、兼容性问题给普通用户使用时用户根本不会编译版本分发、升级维护极其繁琐。为什么能解决Java程序跨平台运行问题C/C 源码编译后直接生成当前 CPU 操作系统的原生机器码程序。Java源码编译生成在JVM上执行的字节码文件。综上所述JVM是用于执行Java字节码的虚拟机。另外它还提供类加载、内存管理、垃圾回收等运行时支持。接下来看JVM是如何工作的真正的计算机有CPU、内存、寄存器、程序计数器、指令执行作为虚拟机JVM里也有程序计数器PC、栈Stack、堆Heap、方法区Method Area、执行引擎Execution Engine。JVM运行流程前置工作Java源代码编译成class字节码文件javac执行。类加载器读取并解析 .class 文件在运行时数据区创建类的运行时数据结构执行引擎读取这些字节码通过解释执行或 JIT 编译生成机器码最终由 CPU 执行在这个过程中垃圾回收也在工作。其中需要详细了解一下运行时数据区和垃圾回收。运行时数据区运行时数据区即JVM内存结构包括程序计数器、虚拟机栈、本地方法栈、堆、方法区。1、程序计数器记录当前线程正在执行的字节码指令的地址2、虚拟机栈每次函数调用都会有一个对应的栈帧被压入栈帧存储方法参数、方法内局部变量、方法放回地址方法递归过多会导致java.lang.StackOverflowError 栈内存溢出3、本地方法栈调用本地函数时压入对应栈帧以native修饰的方法就是本地方法本地方法是C/C编写的Java通过接口调用Java通过本地方法调用操作系统底层功能4、堆保存对象实例垃圾收集器管理的主要区域5、方法区存储类信息、常量、静态变量JDK7方法区的实现叫永久代占用的是堆的内存空间大小固定JDK8方法区的实现叫元空间占用的是本地内存的空间大小自动调整垃圾回收是什么自动管理内存的一种机制。自动释放不再被程序引用的对象所占用的内存。判断对象是否还被引用可达性分析算法垃圾回收算法标记清除标记存活对象被引用对象和垃圾对象不被引用对象回收垃圾对象标记整理标记存活对象和垃圾对象将存活对象向一端移动清理边界以外的内存空间复制法内存分为大小相等的两块只使用其中一块这一块使用完之后将存活对象复制到另一块内存中清理这一块的所有内存空间优点缺点标记清除回收速度快会产生内存碎片标记整理不会产生内存碎片效率较低复制法不会产生内存碎片且较为高效内存缩小为原来的一半分代垃圾回收一般不单独使用某一种垃圾回收算法。将堆分为新生代和老年代新生代中存储存活率低的对象采用复制法频繁回收要高效一点老年代中存储存活率高的对象采用标记整理法很久回收一次效率低一点可以接受。

相关新闻

Deepin Boot Maker终极指南:3步制作Linux启动盘的最佳实践

Deepin Boot Maker终极指南:3步制作Linux启动盘的最佳实践

Deepin Boot Maker终极指南:3步制作Linux启动盘的最佳实践 【免费下载链接】deepin-boot-maker 项目地址: https://gitcode.com/gh_mirrors/de/deepin-boot-maker 你是否曾为安装Linux系统而烦恼?传统命令行制作启动盘的方式复杂且容易出错&…

2026/7/4 19:43:35 阅读更多 →
Transformers.js:重新定义浏览器端AI开发的颠覆性框架

Transformers.js:重新定义浏览器端AI开发的颠覆性框架

Transformers.js:重新定义浏览器端AI开发的颠覆性框架 【免费下载链接】transformers.js State-of-the-art Machine Learning for the web. Run 🤗 Transformers directly in your browser, with no need for a server! 项目地址: https://gitcode.com…

2026/7/4 19:41:34 阅读更多 →
Codex 用户集体暴怒!Token疯狂蒸发的 5 个原因终于找到了

Codex 用户集体暴怒!Token疯狂蒸发的 5 个原因终于找到了

最近不少朋友都有一个感受,就是codex怎么消耗变快了。之前是100刀的Pro会员随便用,根本用不完(额度那个时候有翻倍)。后续发现100刀的Pro开始不够用了,甚至到最后200刀的刀Pro也开始不够用了。就在2026 年 6 月底&…

2026/7/4 19:41:34 阅读更多 →

最新新闻

如何免费获取国家中小学智慧教育平台电子课本PDF:智能解析下载方案

如何免费获取国家中小学智慧教育平台电子课本PDF:智能解析下载方案

如何免费获取国家中小学智慧教育平台电子课本PDF:智能解析下载方案 【免费下载链接】tchMaterial-parser 国家中小学智慧教育平台 电子课本下载工具,帮助您从智慧教育平台中获取电子课本的 PDF 文件网址并进行下载,让您更方便地获取课本内容。…

2026/7/4 20:37:42 阅读更多 →
AutoRaise终极指南:3步实现macOS鼠标悬停窗口自动聚焦,提升5倍工作效率

AutoRaise终极指南:3步实现macOS鼠标悬停窗口自动聚焦,提升5倍工作效率

AutoRaise终极指南:3步实现macOS鼠标悬停窗口自动聚焦,提升5倍工作效率 【免费下载链接】AutoRaise AutoRaise (and focus) a window when hovering over it with the mouse 项目地址: https://gitcode.com/gh_mirrors/au/AutoRaise 在macOS多任务…

2026/7/4 20:35:42 阅读更多 →
【强烈推荐收藏】2026网络安全:国家战略支柱与最确定职业红利

【强烈推荐收藏】2026网络安全:国家战略支柱与最确定职业红利

【强烈推荐收藏】2026网络安全:国家战略支柱与最确定职业红利 文章指出2026年网络安全已成为国家战略核心,新《网络安全法》实施加大处罚力度,产业市场规模扩大与人才缺口并存。两会明确网络安全是数字时代的刚需与国家战略支柱,…

2026/7/4 20:31:41 阅读更多 →
基于YOLOv5的道路损坏实时检测系统开发实践

基于YOLOv5的道路损坏实时检测系统开发实践

1. 项目概述:基于YOLOv5的道路损坏识别系统道路损坏检测一直是交通基础设施维护中的痛点问题。传统人工巡检方式效率低下且成本高昂,而基于计算机视觉的自动化检测方案正在逐步改变这一现状。我们开发的这套系统采用YOLOv5目标检测框架,能够实…

2026/7/4 20:29:41 阅读更多 →
Codex 实战 Skills:发生 Bug 时,用 Skill 自动捕获堆栈并格式化推送到群聊的预警技能

Codex 实战 Skills:发生 Bug 时,用 Skill 自动捕获堆栈并格式化推送到群聊的预警技能

Codex 实战 Skills:发生 Bug 时,用 Skill 自动捕获堆栈并格式化推送到群聊的预警技能 在现代软件工程的敏捷开发与运维体系中,故障的发现速度直接决定了系统的恢复时间(MTTR)。当生产环境发生异常时,传统的日志查看方式往往存在滞后性,而基于即时通讯工具(如飞书、钉钉…

2026/7/4 20:27:41 阅读更多 →
三步搞定E-Hentai漫画收藏:免费批量下载终极指南

三步搞定E-Hentai漫画收藏:免费批量下载终极指南

三步搞定E-Hentai漫画收藏:免费批量下载终极指南 E-Hentai-Downloader是一款专为漫画爱好者设计的智能下载工具,让你轻松将E-Hentai画廊内容批量打包为ZIP文件,实现漫画资源的高效管理与永久收藏。无需复杂操作,只需简单几步即可…

2026/7/4 20:27:41 阅读更多 →

日新闻

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 正式发布,这是一个关键的安全修复版本,修复了多个方面的问题,还对部分功能进行了优化。 安全修复亮点 此次发布在安全修复上表现突出。binprot 避免了项目引用计数溢出,mcmc 因安全问题提升了上游版本号&#xf…

2026/7/4 0:04:29 阅读更多 →
终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案 【免费下载链接】HMCL A Minecraft Launcher which is multi-functional, cross-platform and popular 项目地址: https://gitcode.com/gh_mirrors/hm/HMCL HMCL(Hello Minecraft! Lau…

2026/7/4 0:06:29 阅读更多 →
KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

1. KMX63与PIC18F66K40的硬件协同架构解析KMX63作为一款三轴加速度计和磁力计组合传感器,与PIC18F66K40微控制器的搭配堪称嵌入式HMI开发的黄金组合。这套硬件组合的核心优势在于KMX63提供的高精度运动感知能力与PIC18F66K40强大的信号处理能力形成了完美互补。KMX6…

2026/7/4 0:06:29 阅读更多 →

周新闻

月新闻