Java AOT 编译框架 GraalVM 快速入门
GraalVM 诞生的背景 过去 20 多年,Java 通过语言层虚拟化,实现了平台无关、架构中立等特性,彻底屏蔽了不同操作系统、不同指令集架构带来的差异,因而 Java 语言也取得了巨大的成功。但随着云原生时代的到来,面对相同的问题,云原生选择了操作系统层虚拟化方案——通过容器实现不可变基础设施,将程序连同它的运行环境一起封装到镜像里,这种方案越来越成为一种主流的应用程序分发方式。 云原...
GraalVM 诞生的背景 过去 20 多年,Java 通过语言层虚拟化,实现了平台无关、架构中立等特性,彻底屏蔽了不同操作系统、不同指令集架构带来的差异,因而 Java 语言也取得了巨大的成功。但随着云原生时代的到来,面对相同的问题,云原生选择了操作系统层虚拟化方案——通过容器实现不可变基础设施,将程序连同它的运行环境一起封装到镜像里,这种方案越来越成为一种主流的应用程序分发方式。 云原...
前言 熟悉 Java 语言的朋友应该都听过 Write Once, Run Anywhere. 这样的口号,它主要阐述地是 Java 语言的跨平台特性。工程师只需要编写一次 Java 源码,再通过 Java 编译器将源码编译为字节码文件,就可以很方便地在不同操作系统的 JVM 上进行分发运行。Java 字节码技术是 Java 语言实现平台无关性的基石,也是学习 JVM 虚拟机实现的基础,了...
前言 本文整理了 Java 虚拟机指令操作码和助记符之间的映射关系,可以用于日常学习 Java 字节码时快速查阅。需要注意的是,操作码 186 对应的 invokedynamic 指令是 JDK 7 版本新增的指令,在 JDK 7 之前的版本没有该指令。 常量 Constants 字节码(十进制) 字节码(十六进制) 助记符 指令含义 00 0x00 nop 无操作 0...
前言 JVM 虚拟机原理及其相关的调优技术是每一位 Java 工程师必备的技能,随着 JDK 不断地发展,新的底层实现和调优方法需要我们不断跟进学习。正所谓「常学常新、常悟常进、常践常得」,笔者将重新学习和梳理 JVM 虚拟机相关知识,并会整理成博文以加深自己对 JVM 的理解,也希望能够帮助其他学习 JVM 的同学。 个人整理 JVM 知识图谱:思维导图(密码: y7km) 重学 ...