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

你能解释一下什么是JVM吗?它是如何工作的?

那Java是怎么做到的呢?这个大功臣就是我们的JVM了。与其他语言不同,Java代码编译之后并不是直接编译成机器码,而是编译成只有JVM才能识别的一种字节码。不论Java程序在那个环境运行。只要JVM能装,Java程序就可以直接运行。

JVM承担的就是一个翻译工作,动态的将Java代码编译成操作系统可以识别的机器码。这样一来,Java就实现了「Write Once,Run Anywhere」的伟大愿景了。

一次编译、处处运行「Write Once,Run Anywhere」

很多同学会有一个疑惑,就像当年的C语言或者说如今的Go语言,打包成各个平台的软件包也不是一件很麻烦的事情。我总不至于为了这一个特性就直接切换到Java语言吧。这句话实际上也只是一句口号,直到如今Java程序跑在不同的平台上也会遇到不同的一些问题。Java能火起来实际上包含了很多的因素,比如语法简单容易入门、生态开放性、语言本身的扩展性、稳定性还有一些运气的成分等等,跨平台只是其中的一个小点而已。

很多初学者对于JVM也会存在一个误区,觉得只有Java语言才能运行在JVM上。但实际上Java虚拟机运行的是字节码文件。换句话说你如果写一段JavaScript代码,只要能通过编译器编译成字节码文件,那Java虚拟机也能够运行。这也不是开玩笑,现在Java虚拟机确实可以运行JS代码了。虽然名字是Java虚拟机但是和Java语言并没有什么强关联。它只是按照Java虚拟机规范去读取Class文件解析执行,仅此而已了~

如果你对JVM足够了解足够深入,你完全可以自己写一门语言,只要能编译成规范的字节码就运行在JVM虚拟机之上了。这种语言也有很多比如Scala、Kotlin等等都是同一个思路。

关于JVM的介绍我们就聊到这,下一集讲带领大家走进JVM的世界~

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

相关文章:

  • P4913 【深基16.例3】二叉树深度 dfs-二叉树的遍历
  • 未来5年IT人才需求前瞻?哪些方向爆发?哪些岗位会萎缩?程序员的职业规划重要吗?
  • 基于SpringBoot+Vue的智慧社区服务管理系统设计与实现
  • AI 这么火,.NET 开发者到底值不值得学?怎么学?
  • Trilium Demo
  • AI应用架构师经验谈:半导体研究智能体系统容错设计
  • 每日一题:中间件是如何工作的?
  • SpringDoc和Swagger运用
  • 多语言支持:构建国际化的AI Agent
  • 2-5
  • 如何兼顾极地考察与编码?科考开发者的时间术
  • 7个变态又好用的AI神器
  • ⚖️ OCSL v1.0 | 开放文化主权许可证 (Open Cultural Sovereignty License)
  • 从月薪6k到NASA外包:我的文昌航天城软件测试逆袭路
  • 2026太空安全危机:测试认证缺失的连锁反应
  • 脑机接口伦理师入门:哲学背景转型指南
  • Linux 下“彻底删除文件”这件事,到底该怎么做?
  • 元宇宙地产崩盘背后的技术真相:被忽视的测试致命伤
  • 芯片产业链平台界面设计及插画设计
  • pod的内部结构
  • 你能谈一下JVM的主要组成部分吗?
  • 力扣hot100 - 101、对称二叉树
  • CF1061F Lost Root 题解 / 随机化 交互
  • spacedesk网络设置副屏 windows 不需要himi
  • 双桅杆起重机非线性建模与控制-EXP-整形控制-起重机
  • 力扣hot100 - 108、将有序数组转换为二叉搜索树
  • 【组合意义】ARC212C ABS Ball
  • iTerm2 的清屏命令
  • 2026国内最新最新电解电容企业top5推荐!广东广州等地优质电子配套服务商权威榜单发布,资质服务双优助力产业高效发展 - 品牌推荐2026
  • 基于深度学习的肺音分类算法研究