新書推薦:
《
卡特里娜(“同一颗星球”丛书)
》
售價:NT$
398.0
《
伟大民族:从路易十五到拿破仑的法国史(方尖碑)
》
售價:NT$
857.0
《
古今“书画同源”论辨——中国书法与中国绘画的关系问题兼中国画笔墨研究
》
售價:NT$
602.0
《
《日本文学史序说》讲演录
》
售價:NT$
332.0
《
无尽的海洋:美国海事探险与大众文化(1815—1860)
》
售價:NT$
454.0
《
治盗之道:清代盗律的古今之辨
》
售價:NT$
556.0
《
甲骨文丛书·剑桥世界暴力史(第一卷):史前和古代世界(套装全2册)
》
售價:NT$
959.0
《
甲骨文丛书·中华早期帝国:秦汉史的重估
》
售價:NT$
1367.0
|
編輯推薦: |
《深入理解Java虚拟机:JVM高级特性与*实践(第3版)》
(1)涵盖绝大部分互联网大厂面试知识点!助你顺利进大厂!
(2)根据JDK12和JDK 13 EA版本全面更新,新增内容近50%,并对第2版中含糊、瑕疵和错误内容进行了修正。
(3)计算机图书领域的丰碑,累计印刷超40次,销量超过30万册,两家网店评论数量超过90000条,内容近乎零差评。
(4)从Java技术体系、自动内存管理、虚拟机执行子系统、程序编译与代码优化、高效并发5个维度全面分析JVM。
(5)全书以实战为导向,通过大量与实际生产环境相结合的案例分析和展示了解决各种Java技术难题的方案和技巧。
(6)来自阿里、腾讯、微软、百度、滴滴、易宝支付、同盾科技、达观数据、易观国际、蘑菇街的10位专家高度评价并强烈推荐。
(7)这本书值得所有Java技术人员读3遍,值得Java技术人员读3遍,值得读3遍!
《深入解析Java虚拟机HotSpot》
(1)作者是阿里云Java技术专家,热衷于研究编程语言的设计与实现,对Java虚拟机和编译器都有较深入的研究。
(2)深入分析HotSpot VM的核
|
內容簡介: |
《深入理解Java虚拟机:JVM高级特性与*实践(第3版)》
《深入理解Java虚拟机》是一部从工作原理和工程实践两个维度深入剖析JVM的著作,是计算机领域公认的经典,繁体版在台湾也颇受欢迎。
自2011年上市以来,前两个版本累计印刷36次,销量超过30万册,两家主要网络书店的评论近90000条,内容上近乎零差评,是原创计算机图书领域不可逾越的丰碑。
第3版在第2版的基础上做了重大修订,内容更丰富、实战性更强:根据新版JDK对内容进行了全方位的修订和升级,围绕新技术和生产实践新增逾10万字,包含近50%的全新内容,并对第2版中含糊、瑕疵和错误内容进行了修正。
《深入理解Java虚拟机》一共13章,分为五大部分:
分(第1章)走近Java:
系统介绍了Java的技术体系、发展历程、虚拟机家族,以及动手编译JDK,了解这部分内容能对学习JVM提供良好的指引。
第二部分(第2-5章)自动内存管理:
详细讲解了Java的内存区域与内存溢出、垃圾收集器与内存分配策略、虚拟机性能监控与故障排除等与自动内存管理相关的内容,以及10余个经典的性能优化案例和优化方法;
第三部分(第6-9章)虚拟机执行子系统:
深入分析了虚拟机执行子系统,包括类文件结构、虚拟机类加载机制、虚拟机字节码执行引擎,以及多个类加载及其执行子系统的实战案例;
第四部分(第10-11章)程序编译与代码优化:
详细讲解了程序的前、后端编译与优化,包括前端的易用性优化措施,如泛型、主动装箱拆箱、条件编译等的内容的深入分析;以及后端的性能优化措施,如虚拟机的热点探测方法、HotSpot的即时编译器、提前编译器,以及各种常见的编译期优化技术;
第五部分(第12-13章)高效并发:
主要讲解了Java实现高并发的原理,包括Java的内存模型、线程与协程,以及线程安全和锁优化。
全书以实战为导向,通过大量与实际生产环境相结合的案例分析和展示了解决各种Java技术难题的方案和技巧。
《深入解析Java虚拟机HotSpot》
很多JVM的底层技术细节你是否只了解表面?
面对JVMCrash或性能调优方面的问题时你是否会束手无策?
面对上层Java应用发生的偏离预期的行为是否会不知所措?
……
《深入解析Java虚拟机HotSpot》以源码分析为基础,从运行时、垃圾回收器、即时编译器3个维度全面、深入解析HotSpotVM的底层实现和工作机制,同时与上层的Java语言和库结合,指导读者解决JVM开发、JVM调优和JVM排错方面遇到的各种问题。
广度与深度兼顾:广度上涵盖GraalVM、CDS、Instrumentation、编译重放、非标准字节码、RTM锁、JIT调试工具、EpsilonGC/ShenandoahGC/ZGC、G1字符串去重等重要知识点;深度上深入解析了C1、C2、G1GC、ObjectMonitor、Mutex、模板解释器等的底层实现。
《深入解析Java虚拟机HotSpot》共11章,参考OpenJDK社区的划分方式来组织内容,分为运行时、即时编译器、垃圾回收器三个部分。
分(第1-6章)运行时:
首先,从Java生态系统的角度,简单介绍了JDK、JVM、JEP、HotSpotVM、GraalVM,引导读者快速进入Java虚拟机的世界;然后从源码的角度深入解析了HotSpotVM的类可用机制、对象和类、运行时、模板解释器和并发设施。
第二部分(第7-9章)即时编译器:
首先重点介绍了即时编译器技术、编译理论、编译器调试方法等编译器的基础知识;然后详细讲解了C1和C2两个即时编译器的实现原理、工作机制和优化方法。
第三部分(第10-11章)垃圾回收器:
首先全面介绍了EpsilonGC、SerialGC、ParallelGC、CMSGC、G1GC、ShenandoahGC、ZGC等各种垃圾回收器,然后重点剖析了G1GC。
|
關於作者: |
周志明(博士),
资深Java技术专家-机器学习技术专家和企业级开发技术专家,现任远光软件研究院院长。开源技术的积极倡导者和推动者,对计算机科学相关的多个领域都有深刻的见解,尤其是人工智能——Java技术和敏捷开发等,对虚拟机技术有非常深入的研究。撰写了《深入理解Java虚拟机》《深入理解OSGi》《智慧的疆界》等多本著作,翻译了《Java虚拟机规范》等著作。其中《深入理解Java虚拟机》已累计印刷逾36次,总销超过30万册,成为原创计算机专业图书领域难以逾越的丰碑。
杨易,
Java开发工程师,就职于阿里云基础设施部。.热衷于研究编程语言的设计与实现,对Java语言的设计与实现有非常深入的研究,尤其是Java的虚拟机HotSpot VM,在JVM的开发、调优和排错方面积累了丰富的经验。此外,在编译器领域也有较深厚的积累。.有着自由软件精神的开发者,是GitHub中国区followers数量排名前100的开源项目维护者。
|
目錄:
|
《深入理解Java虚拟机》:
前言
致谢
部分 走近Java
第1章 走近Java
1.1 概述
1.2 Java技术体系
1.3 Java发展史
1.4 Java虚拟机家族
1.4.1 虚拟机始祖:Sun Classic/Exact VM
1.4.2 武林盟主:HotSpot VM
1.4.3 小家碧玉:Mobile/Embedded VM
1.4.4 天下第二:BEA JRockit/IBM J9 VM
1.4.5 软硬合璧:BEA Liquid VM/Azul VM
1.4.6 挑战者:Apache Harmony/Google Android Dalvik VM
1.4.7 没有成功,但并非失败:Microsoft JVM及其他
1.4.8 百家争鸣
1.5 展望Java技术的未来
1.5.1 无语言倾向
1.5.2 新一代即时编译器
1.5.3 向Native迈进
1.5.4 灵活的胖子
1.5.5 语言语法持续增强
1.6 实战:自己编译JDK
1.6.1 获取源码
1.6.2 系统需求
1.6.3 构建编译环境
1.6.4 进行编译
1.6.5 在IDE工具中进行源码调试
1.7 本章小结
第二部分 自动内存管理
第2章 Java内存区域与内存溢出异常
2.1 概述
2.2 运行时数据区域
2.2.1 程序计数器
2.2.2 Java虚拟机栈
2.2.3 本地方法栈
……
第三部分 虚拟机执行子系统
第四部分 程序编译与代码优化
第五部分 高效并发
附录
《深入解析Java虚拟机HotSpot》:
前言
第1章 Java大观园
1.1 OpenJDK
1.2 JEP
1.3 Java虚拟机
1.4 HotSpot VM
1.4.1 源码模块
1.4.2 构建和调试
1.4.3 回归测试
1.5 Graal VM
1.6 本章小结
第2章 类可用机制
2.1 类的加载
2.1.1 字节码
2.1.2 类加载器
2.1.3 文件解析
2.2 类的链接
2.2.1 字节码验证
2.2.2 字节码重写
2.2.3 方法链接
2.3 类的初始化
2.4 类的重定义
2.5 本章小结
第3章 对象和类
3.1 对象与类
3.2 对象
3.2.1 创建对象
3.2.2 对象头
3.2.3 对象哈希值
3.3 类
3.3.1 字段遍历
3.3.2 虚表
3.4 本章小结
第4章 运行时
4.1 线程创生纪
4.1.1 容器化支持
4.1.2 Java线程
4.1.3 虚拟机线程
4.1.4 编译器线程
4.1.5 服务线程
4.1.6 计时器线程
4.2 Java线程
4.2.1 线程启动
4.2.2 线程停止
4.2.3 睡眠与中断
4.3 栈帧
4.4 Java/JVM沟通
4.4.1 JNI
4.4.2 JavaCalls
4.5 Unsafe类
4.5.1 堆外内存
4.5.2 内存屏障
4.5.3 阻塞和唤醒
4.5.4 对象数据修改
4.6 本章小结
……
第5章 模板解释器
第6章 并发设施
第7章 编译概述
第8章 C1编译器
第9章 C2编译器
第10章 垃圾回收
|
內容試閱:
|
Java是目前用户多、使用范围广的软件开发技术,Java的技术体系主要由支撑Java程序运行的虚拟机、提供各开发领域接口支持的Java类库、Java编程语言及许许多多的第三方Java框架(如Spring、MyBatis等)构成。在国内,有关Java类库API、Java语言语法及第三方框架的技术资料和书籍非常丰富,相比而言,有关Java虚拟机的资料却显得异常贫乏。
这种状况很大程度上是由Java开发技术本身的一个重要优点导致的:在虚拟机层面隐藏了底层技术的复杂性以及机器与操作系统的差异性。运行程序的物理机千差万别,而Java虚拟机则在千差万别的物理机上面建立了统一的运行平台,实现了在任意一台Java虚拟机上编译的程序,都能在任何其他Java虚拟机上正常运行。这一极大的优势使得Java应用的开发比传统C/C 应用的开发更高效快捷,程序员可以把主要精力放在具体业务逻辑,而不是放在保障物理硬件的兼容性上。通常情况下,一个程序员只要了解了必要的Java类库API、Java语法,学习适当的第三方开发框架,就已经基本满足日常开发的需要了。虚拟机会在用户不知不觉中完成对硬件平台的兼容及对内存等资源的管理工作。因此,了解虚拟机的运作并不是普通开发人员的,或者说首要学习的知识。
然而,凡事都具备两面性。随着Java技术的不断发展,它已被应用于越来越多的领域之中。其中一些领域,如互联网、能源、金融、通信等,对程序的性能、稳定性和扩展性方面会有极高的要求。一段程序很可能在10个人同时使用时完全正常,但是在10000个人同时使用时就会缓慢、死锁甚至崩溃。毫无疑问,要满足10000个人同时使用,需要更高性能的物理硬件,但是在绝大多数情况下,提升硬件性能无法等比例提升程序的运行性能和并发能力,甚至有可能对程序运行状况没有任何改善。这里面有Java虚拟机的原因:为了达到“所有硬件提供一致的虚拟平台”的目的,牺牲了一些硬件相关的性能特性。更重要的是人为原因:如果开发人员不了解虚拟机诸多技术特性的运行原理,就无法写出适合虚拟机运行和自优化的代码。
|
|