深入嵌入式Java虚拟机

深入嵌入式Java虚拟机
作 者: 探矽工作室著
出版社: 中国铁道出版社
丛编项: 中国铁道出版社
版权说明: 本书为出版图书,暂不支持在线阅读,请支持正版图书
标 签: Java
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

暂缺《深入嵌入式Java虚拟机》作者简介

内容简介

近几年来,由于移动终端设备的蓬勃发展,各式各样的硬件设备、软件平台都被开发出来加入这场对世纪的移动通讯大战。在硬件设备上有Intel公司的StrongARM系列,Motorola公司的Dingonball系列等;软件平台有著名的Unux操作系统,Microsoft的pocketPC,AcceleratedTechnology公司的NucleusPLUS等。一个程序设计员如果想要写出能够横跨这么多平台的应用程序来,是一件不容易的事。因此,本身具有跨平台特性的Java程序语言就成为目前在手机、PDA等嵌入式系统中越来越受欢迎的热门软件平台了。在本书中,作者以嵌入式平台上最常见、最合适的Java虚拟机——KVM为核心,讲述Java虚拟机的内部实际架构,深入探讨实际程序代码的编写原理,并以丰富的图形来向各位读者阐述Java虚拟机的奥妙与秘密。作者还融汇了过去在实际工作中的调试经验和测试结果,向读者解开调整KVM效率的秘密,希望读者凭借本书来一窥嵌入式Java虚拟机的奥秘。本书由学贯行销股份有限公司提供版权,经中国铁道出版社计算机图书中心审选,彭林、贾英茂、游广志、刘宇、朱远波、张新东、张琦等同志完成了本书的整稿工作,陈兰芳、崔仙翠、程瑞芬等同志完成了本书的编排工作。书中难免有疏漏之处,诚请各位专家和读者批评指正,我们也会在适当时间进行修订和补充,并发布在天勤网站:http://www.tqbooks.net“图书修订”栏目中。中国铁道出版社2003年4月

图书目录

第1章 Java与KVM的关系

1-1 Java的概念

1-2 Java平台结构

1-3 Java的特色

1-4 Java的世界

1-5 企业版J2EE

1-6 标准版J2SE

1-7 微型版J2ME

1-7-1 J2ME的架构

1-7-2 J2ME的特性

1-7-3 目前的J2ME环境

1-8 K Virtual Machine

1-8-1 为什么要用 KVM

1-8-2 KVM移植技术

1-9 Java Card

1-10 小结

第2章 Java类文件格式

2-1 maglc number

2-2 minor_version, major_version

2-3 constant_pool_count,constant_pool[]

2-3-1 CONSTANt_Class

2-3-2 CONSTANT_Fieldref

2-3-3 CONSTAN_Methodref

2-3-4 CONSTANT_InterfaceMethodref

2-3-5 CONSTANT_String

2-3-6 CONSTANT_Integer

2-3-7 CONSTANT_Float

2-3-8 CONSTANT_Long

2-3-9 CONSTANT_Double

2-3-10 CONSTANT_NameAndType

2-3-11 CONSTANT_Utf8

2-4 access_flags

2-5 this_class

2-6 super_class

2-7 interfaces_count,iuterfaces[]

2-8 fields_count,fields[]

2-9 methods_count,methods[]

2-10 attributes_count,attributes[]

2-10-1 SourceFile attribute

2-10-2 ConstantValue attrimbute

2-10-3 Code attribute

2-10-4 Exceptions attribute

2-10-5 InnerClasses attribute

2-10-6 Synthetic attribute

2-10-7 LineNumberTable attribute

2-10-8 LocalVariableTable attribute

2-10-9 Deprecated attribute

2-11 HelloWorld_simple.class

2-12 小结

第3章 KVM执行时所用的class与instance结构

3-1 执何时期的instance结构

3-2 执行时期的class结构

3-3 执行时,class与 class之间的关系

3-4 加载Java类的过程

3-4-1 loadClassfilelnternal()

3-4-2 loadClassfileHelper()

3-5 小结

第4章 KVM执行时所用的数据结构

4-1 The pc Register

4-2 Java heap

4-2-1 allocateHeap()

4-2-2 InitializeHeap()

4-2-3 callocPermanentObject()

4-3 Java eXecution StaCk

4-4 Runtime COnstant Pool

4-5 Frames

4-5-1 Local variable array

4-5-2 Operand stacks

4-5-3 Dynamic linking

4-5-4 Method 正常结束执行的情况

4-5-5 Method不正常结束执行的情况

4-6 小结

第5章 KVM内部的Interpreter

5-1 KVM运行时间取代byte code的机制

5-2 Split infrequent byte codes

5-3 在KVM内与interpreter相关的文件

5-3-1 bytecodes.c

5-3-2 execute.c

5-4 更进一步加快interpreter的速度:使用汇编语言

5-5 小结

第6章 Methods invokation

6-1 从Java类文件中加载method属性到内存中

6-1-1 loadOneMethod()

6-1-2 getUTF8string(PO1NTERLIST_HANDLE,unsigned short)

6-1-3 verifyMethodFlags()

6-1-4 verfyName(const char*, enum verifyName_type,bool_t)

6-1-5 skipOverFieldType(const char*,bool_t,unsigned short)

6-1-6 skipOverFieldName(const char*,bool_t,unsigned short)

6-1-7 change_Name_to_Key()

6-1-8 verifyMethodTyPe()

6-1-9 loadMethodAttributes()

6-1-10 loadCodeAttribute()

6-l-11 loadExceptionHandlers()

6-2 调用Method

6-2-l pushFrame()

6-3 小结

第7章 Exceptions

7-1 何时会抛出exceptions

7-2 KVM如何抛出except1ons

7-2-1 raiseException()

7-2-2 raiseExceptlonMsg()

7-2-3 fatalVMError()

7-2-4 fatalError()

7-2-5 throwExceptlon()

7-3 处理一个 exception

7-3-1 findHandler()

7-4 小结

第8章 Garbage Collection

8-1 Tracing garbage collection

8-2 CoPying garbage collection

8-3 KVM1.0版所使用的garbage collection机制

8-4 目前的KVM版本所使用的garbageg COllection机制

8-4-1 Object header

8-4-2 Free list以及 available memory chunk

8-4-3 Compacting

8-4-4 KVM内的garbage collector函数

8-4-5 Temporary root

8-4-6 Global root

8-5 小结

第9章 编写KVM的native methods

9-1 一个简单的范例

9-1-1 Java端的处理

9-1-2 C程序瑞需要作的处理

9-2 在KVM内,对native code的编写有帮助的functions

9-3 Java code与native code之间传递参数的方法

9-3-1 导入primitive data type类型的参数或返回值

9-3-2 导人instance或array类型的参数或返回值

9-3-3 导入instance类型的参数或返回值

9-3-4 导入array类型的参数或返回值

9-4 抓取Java class内某个var1able的方法

9-4-l 在instance method中抓取instance variable的方法

9-4-2 在instance method中抓取static variable的方法

9-4-3 在static method中抓取static variable的方法

9-5 在native code中如何抛出exception

9-5-l 三种主要的native functions用来抛出exceptions

9-5-2 其他能抛出exceptions的native functions

9-5-3 KVM内部已经定义好的exception class字符串

9-6 Synchronized block的改写

9-6-1 Java的synchronization

9-6-2 Monitor的notify队列与等候队列

9-6-3 在native code中如何完成Java的synchronized关键字

9-6-4 KVM提供了如下的函数可供我们来使用

9-6-5 在native code中如何完成Java中的notify()函数

9-7 Garbage collection

9-7-1 handle

9-7-2 Temporary root

9-7-3 Global rOOt

9-8 小结

第10章 The Technology Compatibilitv Kit(TCK)

10-1 JavaTest简介

10-2 利用JavaTest来进行验证工作的架构

10-3 配合JavaTest来执行Java程序之前的准备操作

10-4 告诉JavaTest你的每一个测试用Java程序的详细信息

10-5 执行JavaTest

10-6 小结