猜你喜欢
剑指JVM:虚拟机实践与性能调优

剑指JVM:虚拟机实践与性能调优

书籍作者:尚硅谷教育 ISBN:9787302628118
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:7641
创建日期:2024-04-01 发布日期:2024-04-01
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

《剑指JVM:虚拟机实践与性能调优》共分5篇:引言篇讲述了Java与Java虚拟机的关系,以及Java虚拟机的相关知识;第1篇讲述了运行时数据区,涉及Java内存区域的各个核心结构,以及对象创建的各种细节;第2篇讲述了垃圾收集,涉及各种收集算法、垃圾收集器;第3篇讲述了字节码与类的加载;第4篇讲述了性能监控与调优,带领读者学习Java虚拟机常用的监控与调优工具,并附有企业级的性能调优案例。本书配套视频,可以关注尚硅谷教育公众号获取。

前言

Java语言的重中之重是Java虚拟机。在程序开发的过程中,经常会出现一些棘手的问题,比如内存泄漏、频繁垃圾收集导致系统时延高等,这时候就需要Java虚拟机的知识储备了。对于Java语言的掌握,API层面的开发好比武功中的一招一式,而Java虚拟机就像是内功,内外兼修才能在Java武林中立于不败之地。


学习Java虚拟机对于提升开发人员的技术深度至关重要。当下的学习资料要么晦涩难懂,要么浅尝辄止,或是只注重理论缺少实操,学习者无法在实践中融会贯通。本书为解决这样的学习痛点而编写,基于尚硅谷多年的教学积累,以及作者在B站300万播放量的Java虚拟机视频,秉承“初学有所得,重读有所悟”的理念详解Java虚拟机知识体系。


本书以理论为骨架,以案例为血肉,理论知识系统全面,案例众多实战性强。理论讲解采用了丰富的图示,通过生活化的举例,由浅入深,通俗易懂。同时,本书拒绝纸上谈兵,每个章节都有大量的案例展示,包括企业级的性能调优方案,让学习者可以理论结合实践,边学边练,切身感觉到Java虚拟机的奇妙之处。书中Java虚拟机知识点覆盖全面,囊括了Java程序员在工作或面试中会频繁遇到的核心原理和应用实践。


全书共分5篇,总计26章,内容简介如下。


引言篇。

第1章:Java与JVM的关系、JVM发展历程、JVM架构模型和JVM生命周期。


第1篇:运行时数据区篇。

第2~8章:JVM运行时数据区的内存结构,包括程序计数器、虚拟机栈、本地方法接口、本地方法栈、堆和方法区。

第9~10章:对象实例化的详细过程、对象在内存中的布局及对象的访问方式、直接内存的优势。

第11章:虚拟机的热点代码探测方法、即时编译器及其他编译器。

第12章:字符串常量池在不同JDK版本中的位置变化,字符串拼接操作的底层原理。


第2篇:垃圾收集篇。

第13~15章:Java内存收集体系,通过引用计数法和可达性分析算法定位垃圾对象,常用的垃圾收集算法(标记-清除算法、复制算法、标记-压缩算法)。

第16章:常见的垃圾收集器(CMS垃圾收集器、G1垃圾收集器等)。


第3篇:字节码与类的加载篇。

第17章: 通过案例介绍class文件的各个组成部分,如魔数、文件版本号、常量池等。

第18章:JVM中的字节码指令。

第19~20章:类的加载过程和类加载器,类加载过程采用的双亲委派机制,类加载过程需经历的“加载”“链接”和“初始化”三个阶段,链接阶段细分的“验证”“准备”和“解析”。


第4篇:性能监控与调优篇。

第21~22章:JDK自带的命令行工具和可视化工具的使用方法。

第23~24章:JVM中常用的运行时参数、分析不同垃圾收集器产生的GC日志。

第25~26章:常见的内存溢出场景和企业级的性能调优案例。


本书既适合对Java虚拟机感兴趣的初学者,也适合希望管理和优化系统的中高级开发人员,不同基础的学习者都能从本书中有所收获。


本书的配套视频,可以在尚硅谷教育公众号(微信号:atguigu)聊天窗口发送关键词jvmbook,即可免费获取。


关于我们

尚硅谷是一家专业的IT教育培训机构,在北京、深圳、上海、武汉、西安、成都等地有多所分校,开设有Java、大数据、前端等多门学科,累计发布视频教程超过4000小时,广受

赞誉。通过面授课程、视频分享、在线学习、直播课堂、图书出版等多种方式,满足了全国编程爱好者对多样化学习场景的需求。

尚硅谷一直坚持“技术为王,课比天大”的发展理念,设有独立的研究院,与多家互联网大厂的研发团队保持技术交流,保障教学内容始终基于研发一线,坚持聘用名校、名企的技术专家,进行源码级技术讲解。


希望通过我们的努力,帮助到更多需要帮助的人,让天下没有难学的技术,为中国的软件人才培养尽一点绵薄之力。


尚硅谷教育


目录

引言篇


第1章 JVM与Java体系结构 2


1.1 为什么要学习JVM 2


1.2 Java及JVM的简介 2


1.2.1 Java:跨平台的语言 2


1.2.2 JVM:跨语言的平台 4


1.3 Java发展的重大事件 6


1.4 Open JDK和Oracle JDK 7


1.5 虚拟机与JVM 7


1.5.1 虚拟机 7


1.5.2 JVM 8


1.6 JVM的整体结构 8


1.7 Java代码执行流程 9


1.8 JVM的架构模型 9


1.9 JVM的生命周期 13


1.10 JVM的发展历程 14


1.10.1 Sun Classic VM 14


1.10.2 Exact VM 14


1.10.3 HotSpot VM 14


1.10.4 BEA的JRockit 15


1.10.5 IBM的J9 15


1.10.6 KVM和CDC/CLDC HotSpot 15


1.10.7 Azul VM 16


1.10.8 Liquid VM 16


1.10.9 Apache Harmony 16


1.10.10 Microsoft JVM 16


1.10.11 Taobao JVM 17


1.10.12 Dalvik VM/ART VM 17


1.10.13 Graal VM 17


1.10.14 其他JVM 18


1.11 本章小结 18


第1篇 运行时数据区篇


第2章 运行时数据区及线程概述 20


2.1 运行时数据区概述 20


2.2 线程 21


2.3 本章小结 21


第3章 程序计数器 22


3.1 程序计数器介绍 22


3.2 程序计数器举例说明 22


3.3 程序计数器常见问题 23


3.4 本章小结 23


第4章 虚拟机栈 24


4.1 虚拟机栈概述 24


4.2 栈的存储单位 28


4.3 局部变量表 31


4.3.1 局部变量表简介 31


4.3.2 Slot 32


4.4 操作数栈 34


4.5 栈顶缓存技术 37


4.6 动态链接 37


4.7 方法的调用 38


4.7.1 方法调用的分类 38


4.7.2 虚方法与非虚方法 40


4.7.3 关于invokedynamic指令 43


4.7.4 方法重写的本质 44


4.7.5 虚方法表 44


4.8 方法返回地址 47


4.9 本章小结 51


第5章 本地方法接口 52


5.1 本地方法接口概述 52


5.2 本章小结 53


第6章 本地方法栈 54


第7章 堆 56


第8章 方法区 84


第9章 对象的实例化内存布局与访问定位112


第10章 直接内存 119


第11章 执行引擎 127


第12章 字符串常量池 138


第2篇 垃圾收集篇


第13章 垃圾收集概述 160


第14章 垃圾收集相关算法 163


第15章 垃圾收集相关概念 183


第16章 垃圾收集器 203


第3篇 字节码与类的加载篇


第17章 class文件结构 226


第18章 字节码指令集与解析 268


第19章 类的加载过程详解 318


第20章 类加载器 338


第4篇 性能监控与调优篇


第21章 命令行工具 368


第22章 JVM监控及诊断工具 396


第23章 JVM运行时参数 475


第24章 GC日志分析 487


第25章 OOM分类及解决方案506


第26章 性能优化案例 517


短评

g

2023-06-01 10:10:20

产品特色