揭秘Java虚拟机JVM设计原理与实现封亚飞pdf下载pdf下载

揭秘Java虚拟机JVM设计原理与实现封亚飞百度网盘pdf下载

作者:
简介:本篇主要提供揭秘Java虚拟机JVM设计原理与实现封亚飞pdf下载
出版社:学源图书专营店
出版时间:
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

 

基本信息

书    名

    揭秘Java虚拟机 JVM设计原理与实现 

外文书名

  

出版社

  电子工业出版社

作    者

  封亚飞

定   价 

  129.00元

出版时间

  2017.07

I S B N

  9787121315411

套装书

  否

引进版

  否

装    帧

  平装

版    次

  1

字    数

 

配套资源  

页    数

 

开    本

  16开

内容简介

《揭秘Java虚拟机:JVM设计原理与实现》从源码角度解读HotSpot的内部实现机制,本书主要包含三大部分——JVM数据结构设计与实现、执行引擎机制及内存分配模型数据结构部分包括Java字节码文件格式、常量池解析、字段解析、方法解析。每一部分都给出详细的源码实现分析,例如字段解析一章,从源码层面详细分析了Java字段重排、字段继承等关键机制。再如方法解析一章,给出了Java多态特性在源码层面的实现方式《揭秘Java虚拟机:JVM设计原理与实现》通过直接对源代码的分析,从根本上梳理和澄清Java领域中的关键概念和机制执行引擎部分包括Java方法调用机制、栈帧创建机制、指令集架构与解释器实现机制。这一话题是《揭秘Java虚拟机:JVM设计原理与实现》技术含量高的部分,需要读者具备一定的汇编基础。不过千万不要被“汇编”这个词给吓着,其实在作者看来,汇编相比于语言而言,语法简单,语义也十分清晰。执行引擎部分重点描述Java源代码如何转换为字节码,又如何从字节码转换为机器指令从而能够被物理CPU所执行的技术实现。同时详细分析了Java函数堆栈的创建全过程,在源码分析的过程中,带领读者从本质上理解到底什么是Java函数堆栈和栈帧,以及栈帧内部的详细结构。 内存分配部分主要包括类型创建与加载、对象实例创建与内存分配,例如new关键字的工作机制,import关键字的作用,再如java.lang.ClassLoader.loadClass()接口的本地实现机制《揭秘Java虚拟机:JVM设计原理与实现》并不是简单地分析源码实现,而是在描述HotSpot内部实现机制的同时,分析了HotSpot如此这般实现的技术必然性。读者在阅读《揭秘Java虚拟机:JVM设计原理与实现》的过程中,将会在很多地方看到作者本人的这种思考。

目    录

第1章Java虚拟机概述 1 
1.1从机器语言到Java——詹爷,你好 1 
1.2兼容的选择:一场生产力的革命 6 
1.3中间语言翻译 10 
1.3.1从中间语言翻译到机器码 11 
1.3.2通过C程序翻译 11 
1.3.3直接翻译为机器码 13 
1.3.4本地编译 16 
1.4神奇的指令 18 
1.4.1常见汇编指令 20 
1.4.2JVM指令 21 
1.5本章总结 24 
第2章Java执行引擎工作原理:方法调用 25 
2.1方法调用 26 
2.1.1真实的机器调用 26 
2.1.2C语言函数调用 41 
2.2JVM的函数调用机制 47 
2.3函数指针 53 
2.4CallStub函数指针定义 60 
2.5_call_stub_entry例程 72 
2.6本章总结 115 
第3章Java数据结构与面向对象 117 
3.1从Java算法到数据结构 118 
3.2数据类型简史 122 
3.3Java数据结构之偶然性 129 
3.4Java类型识别 132 
3.4.1class字节码概述 133 
3.4.2魔数与JVM内部的int类型 136 
3.4.3常量池与JVM内部对象模型 137 
3.5大端与小端 143 
3.5.1大端和小端的概念 146 
3.5.2大小端产生的本质原因 148 
3.5.3大小端验证 149 
3.5.4大端和小端产生的场景 151 
3.5.5如何解决字节序反转 154 
3.5.6大小端问题的避免 156 
3.5.7JVM对字节码文件的大小端处理 156 
3.6本章总结 159 
第4章Java字节码实战 161 
4.1字节码格式初探 161 
4.1.1准备测试用例 162 
4.1.2使用javap命令分析字节码文件 162 
4.1.3查看字节码二进制 165 
4.2魔数与版本 166 
4.2.1魔数 168 
4.2.2版本号 168 
4.3常量池 169 
4.3.1常量池的基本结构 169 
4.3.2JVM所定义的11种常量 170 
4.3.3常量池元素的复合结构 170 
4.3.4常量池的结束位置 172 
4.3.5常量池元素总数量 172 
4.3.6第一个常量池元素 173 
4.3.7第二个常量池元素 174 
4.3.8父类常量 174 
4.3.9变量型常量池元素 175 
4.4访问标识与继承信息 177 
4.4.1access_flags 177 
4.4.2this_class 178 
4.4.3super_class 179 
4.4.4interface 179 
4.5字段信息 180 
4.5.1fields_count 180 
4.5.2field_infofields[fields_count] 181 
4.6方法信息 185 
4.6.1methods_count 185 
4.6.2method_infomethods[methods_count] 185 
4.7本章回顾 205 
第5章常量池解析 206 
5.1常量池内存分配 208 
5.1.1常量池内存分配总体链路 209 
5.1.2内存分配 215 
5.1.3初始化内存 223 
5.2oop-klass模型 224 
5.2.1两模型三维度 225 
5.2.2体系总览 227 
5.2.3oop体系 229 
5.2.4klass体系 231 
5.2.5handle体系 234 
5.2.6oop、klass、handle的相互转换 239 
5.3常量池klass模型(1) 244 
5.3.1klassKlass实例构建总链路 246 
5.3.2为klassOop申请内存 249 
5.3.3klassOop内存清零 253 
5.3.4初始化mark 253 
5.3.5初始化klassOop._metadata 258 
5.3.6初始化klass 259 
5.3.7自指 260 
5.4常量池klass模型(2) 261 
5.4.1constantPoolKlass模型构建 261 
5.4.2constantPoolOop与klass 264 
5.4.3klassKlass终结符 267 
5.5常量池解析 267 
5.5.1constantPoolOop域初始化 268