图书介绍

深入Java虚拟机PDF|Epub|txt|kindle电子书版本网盘下载

深入Java虚拟机
  • (美)Bill Venners著;曹晓钢,蒋靖译 著
  • 出版社: 北京:机械工业出版社
  • ISBN:7111128052
  • 出版时间:2003
  • 标注页数:461页
  • 文件大小:49MB
  • 文件页数:482页
  • 主题词:JAVA语言-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

深入Java虚拟机PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 Java 体系结构介绍1

1.1 为什么使用 Java1

1.2 网络带来的挑战和机遇1

1.3 体系结构2

1.3.1 Java 虚拟机2

1.3.2 类装载器的体系结构4

1.3.3 Java class 文件7

1.3.4 Java API7

1.3.5 Java 程序设计语言8

1.4 Java 体系结构的代价10

1.5 结论13

1.6 资源页13

第2章 平台无关15

2.1 为什么要平台无关15

2.2 Java 的体系结构对平台无关的支持16

2.2.1 Java 平台16

2.2.2 Java 语言16

2.3.3 Java class 文件16

2.2.4 可伸缩性16

2.3 影响平台无关性的因素18

2.3.1 Java 平台的部署18

2.3.2 Java 平台的版本18

2.3.3 本地方法19

2.3.4 非标准运行时库20

2.3.5 对虚拟机的依赖20

2.3.6 对用户界面的依赖21

2.3.7 Java 平台实现中的 bug21

2.3.8 测试21

2.4 平台无关的七个步骤21

2.5 平台无关性的策略22

2.6 平台无关性和网络移动对象24

2.7 资源页24

第3章 安全25

3.1 为什么需要安全性25

3.2 基本沙箱26

3.3 类装载器体系结构27

3.4 class 文件检验器31

3.4.1 第一趟:class 文件的结构检查32

3.4.2 第二趟:类型数据的语义检查33

3.4.3 第三趟:字节码验证33

3.4.4 第四趟:符号引用的验证34

3.4.5 二进制兼容35

3.5 Java 虚拟机中内置的安全特性36

3.6 安全管理器和 Java API38

3.7 代码签名和认证41

3.8 一个代码签名示例45

3.9 策略49

3.10 保护域52

3.11 访问控制器54

3.11.1 implies()方法54

3.11.2 栈检查示例56

3.11.3 一个回答“是”的栈检查59

3.11.4 一个回答“不”的栈检查62

3.11.5 doPrivileged()方法64

3.11.6 doPrivileged()的一个无效使用68

3.12 Java 安全模型的不足和今后的发展方向71

3.13 和体系结构无关的安全性71

3.14 资源页72

第4章 网络移动性73

4.1 为什么需要网络移动性73

4.2 一种新的软件模式74

4.3 Java 体系结构对网络移动性的支持76

4.4 applet:网络移动性代码的示例78

4.5 Jini 服务对象:网络移动对象的示例79

4.5.1 Jini 是什么80

4.5.2 Jini 如何工作80

4.5.3 服务对象的优点81

4.6 网络移动性:Java 设计的中心83

4.7 资源页83

第5章 Java 虚拟机85

5.1 Java 虚拟机是什么85

5.2 Java 虚拟机的生命周期85

5.3 Java 虚拟机的体系结构86

5.3.1 数据类型89

5.3.2 字长的考量90

5.3.3 类装载器子系统90

5.3.4 方法区92

5.3.5 堆97

5.3.6 程序计数器102

5.3.7 Java 栈102

5.3.8 栈帧103

5.3.9 本地方法栈109

5.3.10 执行引擎110

5.3.11 本地方法接口117

5.4 真实机器118

5.5 一个模拟:“Eternal Math”119

5.6 随书光盘119

5.7 资源页120

第6章 Java class 文件121

6.1 Java class 文件是什么121

6.2 class 文件的内容122

6.3 特殊字符串127

6.3.1 全限定名127

6.3.2 简单名称127

6.3.3 描述符127

6.4 常量池129

6.4.1 CONSTANT_Utf8_info 表129

6.4.2 CONSTANT_Integer_info 表131

6.4.3 CONSTANT_Float_info 表131

6.4.4 CONSTANT_Long_info 表132

6.4.5 CONSTANT_Double_info 表132

6.4.6 CONSTANT_Class_info 表132

6.4.7 CONSTANT_String_info 表133

6.4.8 CONSTANT_Fieldref_info 表133

6.4.9 CONSTANT_Methodref_info 表134

6.4.10 CONSTANT_InterfaceMethodref_info 表135

6.4.11 CONSTANT_NameAndType_info 表135

6.5 字段136

6.6 方法137

6.7 属性138

6.7.1 属性格式139

6.7.2 Code 属性140

6.7.3 ConstantValue 属性142

6.7.4 Deprecated 属性142

6.7.5 Exceptions 属性143

6.7.6 InnerClasses 属性144

6.7.7 LineNumberTable 属性146

6.7.8 LocalVariableTable 属性147

6.7.9 SourceFile 属性148

6.7.10 Synthetic 属性149

6.8 一个模拟:“Getting Loaded”149

6.9 随书光盘151

6.10 资源页151

第7章 类型的生命周期153

7.1 类型装载、连接与初始化153

7.1.1 装载154

7.1.2 验证155

7.1.3 准备157

7.1.4 解析157

7.1.5 初始化157

7.2 对象的生命周期164

7.2.1 类实例化164

7.2.2 垃圾收集和对象的终结174

7.3 卸载类型174

7.4 随书光盘176

7.5 资源页176

第8章 连接模型177

8.1 动态连接和解析177

8.1.1 解析和动态扩展178

8.1.2 类装载器与双亲委派模型180

8.1.3 常量池解析181

8.1.4 解析 CONSTANT_Class_info 入口182

8.1.5 解析 CONSTANT_Fieldref_info 入口187

8.1.6 解析 CONSTANT_Methodref_info 入口188

8.1.7 解析 CONSTANT_Interface_Methodref_info 入口188

8.1.8 解析 CONSTANT_String_info 入口189

8.1.9 解析其他类型的入口190

8.1.10 装载约束191

8.1.11 编译时常量解析192

8.1.12 直接引用193

8.1.13 _quick 指令199

8.1.14 示例:Salutation 程序的连接200

8.1.15 示例:Greet 程序的动态扩展209

8.1.16 使用1.1版本的用户自定义类装载器213

8.1.17 使用1.2版本的用户自定义类装载器218

8.1.18 示例:使用 forName()的动态扩展221

8.1.19 示例:卸载无法触及的 greeter 类224

8.1.20 示例:类型安全性与装载约束229

8.2 随书光盘237

8.3 资源页237

第9章 垃圾收集239

9.1 为什么要使用垃圾收集239

9.2 垃圾收集算法240

9.3 引用计数收集器240

9.4 跟踪收集器241

9.5 压缩收集器241

9.6 拷贝收集器241

9.7 按代收集的收集器242

9.8 自适应收集器243

9.9 火车算法243

9.9.1 车厢、火车和火车站244

9.9.2 车厢收集245

9.9.3 记忆集合和流行对象246

9.10 终结246

9.11 对象可触及性的生命周期247

9.11.1 引用对象248

9.11.2 可触及性状态的变化249

9.11.3 缓存、规范映射和临终清理251

9.12 一个模拟:“Heap of Fish”252

9.12.1 分配鱼253

9.12.2 设置引用254

9.12.3 垃圾收集255

9.12.4 压缩堆256

9.13 随书光盘257

9.14 资源页257

第10章 栈和局部变量操作259

10.1 常量入栈操作259

10.2 通用栈操作261

10.3 把局部变量压入栈262

10.4 弹出栈顶部元素,将其赋给局部变量263

10.5 wide 指令264

10.6 一个模拟:“Fibonacci Forever”265

10.7 随书光盘267

10.8 资源页267

第11章 类型转换269

11.1 转换操作码269

11.2 一个模拟:“Conversion Diversion”271

11.3 随书光盘273

11.4 资源页274

第12章 整数运算275

12.1 二进制补码运算275

12.2 Inner Int:揭示 Java int 类型内部性质的 applet276

12.3 运算操作码276

12.4 一个模拟:“Prime Time”278

12.5 随书光盘282

12.6 资源页282

第13章 逻辑运算283

13.1 逻辑操作码283

13.2 一个模拟:“Logical Results”284

13.3 随书光盘286

13.4 资源页286

第14章 浮点运算287

14.1 浮点数287

14.2 Inner Float:揭示 Java float 类型内部性质的 applet289

14.3 浮点模式290

14.3.1 浮点值集合291

14.3.2 浮点值集的转换291

14.3.3 相关规则的本质291

14.4 浮点操作码292

14.5 一个模拟:“Circle of Squares”293

14.6 随书光盘295

14.7 资源页295

第15章 对象和数组297

15.1 关于对象和数组的回顾297

15.2 针对对象的操作码297

15.3 针对数组的操作码299

15.4 一个模拟:“Three-Dimensional Array”301

15.5 随书光盘304

15.6 资源页304

第16章 控制流305

16.1 条件分支305

16.2 无条件分支307

16.3 使用表的条件分支308

16.4 一个模拟:“Saying Tomato”309

16.5 随书光盘311

16.6 资源页311

第17章 异常313

17.1 异常的抛出与捕获313

17.2 异常表317

17.3 一个模拟:“Play Ball!”318

17.4 随书光盘320

17.5 资源页320

第18章 finally 子句321

18.1 微型子例程321

18.2 不对称的调用和返回322

18.3 一个模拟:“Hop Around”324

18.4 随书光盘328

18.5 资源页328

第19章 方法的调用与返回329

19.1 方法调用329

19.1.1 Java 方法的调用330

19.1.2 本地方法的调用330

19.2 方法调用的其他形式330

19.3 指令 invokespecial331

19.3.1 指令 invokespecial 和<init>()方法331

19.3.2 指令 invokespecial 和私有方法333

19.3.3 指令 invokespecial 和 super 关键字334

19.4 指令 invokeinterface335

19.5 指令的调用和速度336

19.6 方法调用的实例336

19.7 从方法中返回341

19.8 随书光盘341

19.9 资源页341

第20章 线程同步343

20.1 监视器343

20.2 对象锁346

20.3 指令集中对同步的支持347

20.3.1 同步语句347

20.3.2 同步方法350

20.4 Object 类中的协调支持353

20.5 随书光盘353

20.6 资源页353

附录 A 按操作码助记符排列的指令集355

附录 B 按功能排列的操作码助记符437

附录 C 按操作码字节值排列的操作码助记符445

附录 D Java 虚拟机的一个模拟:“Slices of pi”453

热门推荐