深入理解JVM设计的精髓与独特之处

这是Java代码的执行过程

从软件工程的视角去深入拆解,无疑极具吸引力:首个阶段仅依赖于源高级语言的细微之处,而第二阶段则仅仅专注于目标机器语言的特质。

不可否认,在这两个编译阶段之间的衔接(具体指明中间处理步骤的精确界定)必须予以谨慎的进行设计。事实上,这个衔接的重要程度之高,甚至应当将其单独定义为一种抽象计算机的语言。

曾经作为一个独立程序的编译器现已被划分为两个相互独立的程序。第一个程序,仍然延续了编译器(compiler)的称呼,负责将高级代码转变为中间的JVM指令;第二个程序则负责将这份JVM代码转译为目标计算机硬件平台(简称为"硬件平台")的机器语言。

有条理且正式的虚拟机语言概念拥有诸多实践上的优点。

首先,只需要替换虚拟机实现部分(有时也被称为编译器的后端程序,backend)就能相对轻松地获取支持不同硬件平台的编译器。因此,虚拟机在不同硬件平台之间的可迁移性可以实现代码效率、硬件成本以及程序开发难度之间的平衡。

其次,许多语言的编译器都能够复用相同的JVM后端,使得代码共享和语言交互成为可能。比如Scala就在复用Java的后端

相关推荐
码匠许师傅21 分钟前
【C++ 面试真题】24. 聊聊 C++ 的时间日期处理
java·c++·面试
mqiqe1 小时前
AgentScope Java 2.0 Agent 状态存储(AgentStateStore)深度解析:构建可恢复、可扩展的智能体运行时
java·运维·网络
zhifou1234561 小时前
java 17升级安装
java·开发语言
用户3721574261351 小时前
如何使用 Java 将 Markdown 转换为 PDF(含自定义设置)
java
Patrick_Wilson2 小时前
Web 认证方案技术指南
前端·后端·面试
用户3721574261352 小时前
如何使用 Java 在 Word 文档中添加和删除水印:分步指南
java
书源3 小时前
AI 时代写给前端同行:什么在贬值,什么在涨价
前端·程序员·ai编程
王中阳Go3 小时前
老板用AI三天写到90%,让我明天上线:Java 团队怎么接这10%的烂摊子?
java
神奇的程序员3 小时前
在这个独属于ai的时代,我终究是被裁员了
前端·后端·面试
gugucoding4 小时前
55. 【Java】Maven:项目构建的“管家”
java·maven