0
点赞
收藏
分享

微信扫一扫

深入学习JVM01

村里搬砖的月野兔 2023-08-21 阅读 78

一、云时代的JVM

云时代的来临也给 Java 带来了不小的挑战,速度、内存、部署与管理的问题逐渐变成了 Java 的负累。不过它并没有坐以待毙,而是选择积极地适应新时代,引入更多新特性来应对这些挑战。

为了应对运行速度和内存占用问题,Java 持续在 JVM 层面进行优化,比如引入 GraalVM 和 OpenJ9 等新的 JVM 实现,提高了运行速度,减少了内存占用。GC 从 CMS 到 G1 再到 ZGC 的演进,内存空间利用率显著提升。并且,Java 逐渐开始支持更多的云原生特性,比如制作更小的 Docker 镜像,支持 Kubernetes 原生应用和 Serverless 等。

根据 New Relic 2023 年最新的报告统计,过去一年 JDK 17 的使用量增长了 430%,JDK 7 即将退出历史舞台,而 JDK 11 已经成为了使用量最高的 LTS 版本,占比达到了 56.06%。从 Graavlm 到 ZGC、从 AOT 到 Truffle,JVM 正以史无前例的更新速度和更新幅度,以自我颠覆性的方式准备迎接新时代的挑战。

深入学习JVM01_JVM

二、JVM的起源

整个计算机系统由层层抽象构建而成,硬件是基础,应用是表层,中间则是操作系统和各种各样的编程语言

深入学习JVM01_Java_02

0/1 机器码是计算机能够直接执行的最底层的指令形式,它由 0 和 1 构成,对应着不同的操作和数据传输。计算机通过将 0/1 机器码加载到存储器中,并由控制器解析、执行这些指令,实现了复杂的计算和数据处理任务。

深入学习JVM01_Java_03

总的来说就是 Java 虚拟机在计算机硬件和 Java 程序之间建立了一个抽象层,使 Java 程序不必关心底层的硬件和操作系统的情况,从而实现了 Java“一次编写,到处运行”的效果。这也是 Java 语言相比其他语言的一大优势。

三、JVM的特性

平台独立性:Java 代码可以在任何安装了 JVM 的机器上运行,不用为每种平台编写不同的版本。

自动内存管理 :JVM 提供了垃圾收集机制,自动回收不再使用的内存,降低内存泄漏的风险。

高效的即时编译:JVM 运用时即时编译对热点代码进行优化,提升程序执行效率。

强大的监控和调试工具:JVM 为开发者提供了详细的性能数据和调试工具,帮助开发者提升程序性能,解决问题。

四、JVM内部构成

深入学习JVM01_JVM_04

深入学习JVM01_JVM_05

举报

相关推荐

0 条评论