扫描二维码,下载手机APP
下载安卓APP箭头
客服QQ
箭头给我发消息

客服QQ:2698585038

Java虚拟机精讲

综合评级:
★★★★★

定价:
¥69.00

作者:
高翔龙 编著

出版社:
电子工业出版社

出版日期:
2015年5月

页数:
268

字数:
448000

ISBN:
9787121257056

书籍介绍

HotSpot VM 是目前市面上高性能JVM 的代表作之一,它采用解释器+JIT 编译器的混合执行引擎,使得Java 程序的执行性能从此有了质的飞跃。本书以极其精练的语句诠释了HotSpot VM 的方方面面,比如:字节码的编译原理、字节码的内部组成结构、通过源码的方式剖析HotSpot VM 的启动过程和初始化过程、Java 虚拟机的运行时内存、垃圾收集算法、垃圾收集器(重点讲解了Serial 收集器、ParNew 收集器、Parallel 收集器、CMS(Concurrent-Mark-Sweep)收集器和G1(Garbage-First)收集器)、类加载机制,以及HotSpot VM 基于栈的架构模型和执行引擎(解释器的工作流程、JIT 编译器的工作流程、分层编译策略、热点探测功能)等技术。

作者简介

高翔龙,曾任平安科技高级架构师,负责高并发即时通讯系统“天下通”的系统架构设计、架构优化、核心功能研发等工作,目前就职于一家互联网创业公司,担任系统架构师,负责企业内部Hadoop大数据平台的推广和实施、系统性能调优、对新员工技术培训等工作,对系统架构设计、大数据、Java虚拟机等技术领域有着浓厚的兴趣和丰富的实战经验。

目录

第1章 java体系结构

 1.1 认识Java

  1.1.1 与生俱来的优点

  1.1.2 语法结构和对象模型

  1.1.3 历史版本追溯

 1.2 Java重要概念

  1.2.1 Java编程语言

  1.2.2 字节码

  1.2.3 JavaAPI。

  1.2.4 Java虚拟机

 1.3 安装与配置Java运行环境

  1.3.1 Windows环境下的安装与配置

  1.3.2 Linux环境下的安装与配置

  1.3.3 编写Java程序

  1.3.4 编译与运行

  1.3.5 关键字与标示符

 1.4 Java技术的新特性

  1.4.1 Java模块化与OSGi技术

  1.4.2 语言无关性

  1.4.3 使用Fork/Join框架实现多核并行

  1.4.4 丰富的语法特性

  1.4.5 过渡到64位虚拟机

 1.5 实战:玩转OpenJDK

  1.5.1 JDK与OpenJDK的关系

  1.5.2 基于OpenJDK深度定制的

 淘宝JVM(TaobaoVM)

  1.5.3 下载OpenJDK源代码

  1.5.4 构建编译环境

  1.5.5 执行整个OpenJDK的编译

  1.5.6 执行单独HotSpot的编译

  1.5.7 导致编译失败的一些疑难杂症

  1.5.8 使用GDB工具Debug HotSpot

 1.6 本章小结

第2章 字节码的编译原理

 2.1 javac编译器简介

  2.1.1 javac与Eclipse Compiler for Java编译器

  2.1.2 javac的使用与标准选项配置

  2.1.3 编译原理

  2.1.4 下载javac编译器源码

  2.1.5 调用compile()方法执行编译

 2.2 词法解析步骤

 ……

第3章 字节码文件

第4章 剖析HotSpot的Launcher

第5章 剖析HotSpot的初始化过程

第6章 内存分配与垃圾回收

第7章 类加载机制

第8章 剖析HotSpot的架构模型与执行引擎

附录A Java7新增语法特性

附录B 指令助记符

前言

  大部分 Java 开发人员,除会在项目中使用到与 Java 平台相关的各种高精尖技术,对于 Java技术的核心 Java 虚拟机了解甚少。这其中最主要的原因或许是在实际的开发过程中,开发人员根本没有机会或是没有必要与 Java 虚拟机等底层技术打交道,更多的只是简简单单地将Java 虚拟机作为载体,让程序能够顺利运行其上即可。

  笔者在面试的过程中,经常会对面试者询问一些与 Java 虚拟机相关的技术问题,但大部

  分开发人员对于笔者所提及的问题,几乎都有一个统一的答案,那就是不知道、不清楚。有些刚从校门出来的应届毕业生,甚至还包括一些有一定工作经验的开发人员,打心眼儿里觉得 Struts、Spring 和 Hibernate 等上层技术才是重点,基础技术并不重要,这其实是一种本末倒置的“病态”。这就好比金庸武侠小说《笑傲江湖》里的令狐冲,尽管独孤九剑看上去很酷炫,但由于本身内功修炼得不够,与敌人对抗时又能撑得了几个回合呢?

  对于那些成熟的第三方开源产品,笔者始终只是把它们当作一种工具,用的时候是宝,

  不用的时候就丢弃,尽管有些残忍,但确实就是这么现实。以互联网项目为例,对于高性能和稳定性的要求往往大于企业级项目的规范化和流程化,因此架构师每天都会不停地思考,应该如何让我的系统更快?如何避免系统出现瓶颈?如果换作你来做架构师并负责解决这些问题,假如你对 Java 虚拟机一无所知,那么可想而知,你又有什么能力做到系统的性能调优?毕竟性能调优不仅仅只是单纯地从应用代码结构上进行调整,也不是纯粹地依靠物理堆机就能够解决的。