写点什么

阿里 P8 写出的《深入理解 Java 虚拟机》最新版,轻松学会 JVM 底层

作者:程序知音
  • 2023-05-26
    湖南
  • 本文字数:1798 字

    阅读完需:约 6 分钟


前言

Java 是目前用户最多、使用范围最广的软件开发技术,Java 的技术体系主要由支撑 Java 程序运行的虚拟机、提供各开发领域接口支持的 Java 类库、Java 编程语言及许许多多的第三 E 方 Java 框架(如 Spring、 MyBatis 等) 构成。在国内,有关 Java 类库 API、Java 语言语法及第三方框架的技术资料和书籍非常丰富,相比而言,有关 Java 虚拟机的资料却显得异常贫乏。

随着 Java 技术的不断发展,它已被应用于越来越多的领域之中。其中一些领域,如互联网、能源、金融、通信等,对程序的性能、稳定性和扩展性方面会有极高的要求。一-段程序很可能在 10 个人同时使用时完全正常,但是在 10000 个人同时使用时就会缓慢、死锁甚至崩溃。毫无疑问,要满足 10000 个人同时使用,需要更高性能的物理硬件,但是在绝大多数情况下,提升硬件性能无法等比例提升程序的运行性能和并发能力,甚至有可能对程序运行状况没有任何改善。这里面有 Java 虚拟机的原因:为了达到“所有硬件提供一致的虚拟平台”的目的,牺牲了- -些硬件相关的性能特性。更重要的是人为原因:如果开发人员不了解虚拟机诸多技术特性的运行原理,就无法写出最适合虚拟机运行和自优化的代码。

让我们一起走进虚拟机的世界吧!【有需要的可以--> 点击这里即获取我的资料笔记 <--- 即可

一、走进 Java

世界上并没有完美的程序,但我们并不因此而沮丧,因为写程序本来就是一个不断追求完美的过程。

1.1 概述

1.2 Java 技术体系

1.3 Java 发展史

1.4 Java 虚拟机家族

1.5 展望 J ava 技术的未来

1.6 实战:自己编译 JDK

1.7 本章小结



二、自动内存管理

Java 与 C+ +之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人却想出来。

第 2 章 Java 内存区域与内存溢出异常

2.1 概述

2.2 运行时数据区域

2.3 HotSpot 虚拟机对象探秘

2. 4 实战: 0utOfMem oryErr or 异常

2.5 本章小结


第 3 章垃圾收集器与内存分配策略

3.1 概述

3.2 对象已死?

3.3 垃圾收集算法

3.4 HotSp ot 的算法细节实现

3.5 经典垃圾收集器

3.6 低延迟垃圾收集器

3.7 选择合适的垃圾收集器

3.8 实战:内存分配与回收策略

3.9 小结


第 4 章虚拟机性能监控、故障处理工具

4.1 概述

4.2 基础故障处理工具

4.3 可视化故障处理工具

4.4 HotSpot 虚拟机插件及工具

4.5 本章小结


第 5 章调优案例分析与实战

5.1 概述

5.2 案例分析

5.3 实战: Eclipse 运行速度调优

5.4 本章小结


三、虚拟机执行子系统

代码编译的结果从本地机器码转变为字节码,是存储格式发展的一-小步,却是编程语言发展的一大步。

第 6 章:类文件结构

6.1 概述

6.2 无关性的基石

6.3 Class 类文件的结构

6.4 字节码指令简介

6.5 公有设计,私有实现

6.6 Class 文件结构的发展

6.7 本章小结


第 7 章:虚拟机类加载机制

7. 1 概述

7.2 类加载的时机

7.3 类加载的过程

7.4 类加载器

7.5 Java 模块化系统

7.6 本章小结


第 8 章:虚拟机字节码执行引擎

8.1 概述

8.2 运行时栈帧结构

8.3 方法调用

8.4 动态类型语言支持

8.5 基于栈的字节码解释执行引擎

8.6 本章小结


第 9 章:类加载及执行子系统的案例与实战

9.1 概述

9.2 案例分析

9.3 实战:自己动手实现远程执行功能

9.4 本章小结

四、程序编译与代码优化

从计算机程序出现的第一天起, 对效率的追逐就是程序员天生的坚定信仰,这个过程犹如一场没有终点、永不停歇的 F1 方程式竞赛,程序员是车手,技术平台则是在赛道上飞驰的赛车。

第 10 章:前端编译与优化

10. 1 概述

10.2 Javac 编译器

10.3 Java 语法糖的味道

10. 4 实战:插入式注解处理器

10. 5 本章小结


第 11 章:后端编译与优化

11. 1 概述

11.2 即时编译器

11.3 提前编译器

11.4 编译器优化技术

11.5 实战:深入理解 Gr aal 编译器

11.6 本章小结


五、高效并发

第 12 章:Java 内存模型与线程

并发处理的广泛应用是 AmdahI 定律代替摩尔定律成为计算机性能发展源动力的根本原因,也是人类压榨计算机运算能力的最有力武器。

12.1 概述

12.2 硬件的效率与一致性

12.3 Java 内存模型

12. 4 Java 与线程

12.5 Java 与协程

12.6 本章小结


第 13 章:线程安全与 锁优化

我们了解虚拟机 Java 内存模型的结构及操作,并且讲解了原子性、可见性、有序性在 Java 内存模型中的体现,介绍了先行发生原则的规则及使用。另外,我们还了解了线程在 Java 语言之中是如何实现的,以及代表 Java 未来多线程发展的新并发模型的工作原理。

关于“高效并发"这个话题,在本章中主要介绍了虚拟机如何实现“并发”在下一章中,我们的主要关注点将是虚拟机如何实现"高效”,以及虚拟机对我们编写的并发代码提供了什么样的优化手段。

13.1 概述

13.2 线程安全

13.3 锁优化

13.4 本章小结

【有需要的可以--> 点击这里即获取我的资料笔记 <--- 即可

用户头像

程序知音

关注

还未添加个人签名 2022-06-25 加入

还未添加个人简介

评论

发布
暂无评论
阿里P8写出的《深入理解Java虚拟机》最新版,轻松学会JVM底层_Java_程序知音_InfoQ写作社区