深入嵌入式Java虚拟机:Inside KVM

深入嵌入式Java虚拟机:Inside KVM
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者: , ,
2003-05
版次: 1
ISBN: 9787113052140
定价: 36.00
装帧: 平装
开本: 其他
纸张: 胶版纸
页数: 346页
20人买过
  • 本书特色:清晰讲解让移动通讯设备、PDA、智能家电可以执行Java程序的灵魂——KVM架构;引导设计人员彻底掌握嵌入式Java虚拟机的运作与原理;滴水不漏地向各位读者解开调整KVM效率的秘密…… 第1章 Java与KVM的关系 1

    1-1 Java的概念 2

    1-2 Java平台结构 2

    1-3 Java的特色 4

    1-4 Java的世界 5

    1-5 企业版J2EE 6

    1-6 标准版J2SE 7

    1-7 微型版J2ME 9

    1-7-1 J2ME的架构 11

    1-7-2 J2ME的特性 11

    1-7-3 目前的J2ME环境 12

    1-8 K Virtual Machine 15

    1-8-1 为什么要用KVM 19

    1-8-2 KVM移植技术 20

    1-9 Java Card 27

    1-10 小结 28

    第2章 Java类文件格式 29

    2-1 magic number 31

    2-2 minor_version,major_version 31

    2-3 constant_pool_count,constant_pool[ ] 32

    2-3-1 CONSTANT_Class 33

    2-3-2 CONSTANT_Fieldref 33

    2-3-3 CONSTANT_Methodref 34

    2-3-4 CONSTANT_InterfaceMethodref 34

    2-3-5 CONSTANT_String 35

    2-3-6 CONSTANT_Integer 35

    2-3-7 CONSTANT_Float 35

    2-3-8 CONSTANT_Long 36

    2-3-9 CONSTANT_Double 36

    2-3-10 CONSTANT_NameAndType 37

    2-3-11 CONSTANT_Utf8 39

    2-4 access_flags 40

    2-5 this_class 41

    2-6 super_class 41

    2-7 interfaces_count,interfaces[ ] 42

    2-8 fields_count,fields[ ] 43

    2-9 methods_count,methods[ ] 45

    2-10 attributes_count,attributes[ ] 47

    2-10-1 SourceFile attribute 48

    2-10-2 ConstantValue attribute 49

    2-10-3 Code attribute 50

    2-10-4 Exceptions attribute 53

    2-10-5 InnerClasses attribute 54

    2-10-6 Synthetic attribute 56

    2-10-7 LineNumberTable attribute 56

    2-10-8 LocalVariableTable attribute 58

    2-10-9 Deprecated attribute 59

    2-11 HelloWorld_simple.class 60

    2-12 小结 70

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

    3-1 执行时期的instance结构 72

    3-2 执行时期的class结构 78

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

    3-4 加载Java类的过程 83

    3-4-1 loadClassfileInternal( ) 90

    3-4-2 loadClassfileHelper( ) 97

    3-5 小结 103

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

    4-1 The pc Register 106

    4-2 Java heap 106

    4-2-1 allocateHeap( ) 111

    4-2-2 InitializeHeap( ) 112

    4-2-3 callocPermanentObject( ) 115

    4-3 Java execution stack 118

    4-4 Runtime Constant Pool 120

    4-5 Frames 133

    4-5-1 Local variable array 139

    4-5-2 Operand stacks 140

    4-5-3 Dynamic linking 141

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

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

    4-6 小结 142

    第5章 KVM内部的Interpreter 145

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

    5-2 Split infrequent byte codes 156

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

    5-3-1 bytecodes.c 158

    5-3-2 execute.c 163

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

    5-5 小结 171

    第6章 Methods invokation 173

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

    6-1-1 loadOneMethod( ) 178

    6-1-2 getUTF8String(POINTERLIST_HANDLE, unsigned short) 185

    6-1-3 verifyMethodFlags( ) 185

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

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

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

    6-1-7 change_Name_to_Key( ) 202

    6-1-8 verifyMethodType( ) 208

    6-1-9 loadMethodAttributes( ) 210

    6-1-10 loadCodeAttribute( ) 215

    6-1-11 loadExceptionHandlers( ) 219

    6-2 调用Method 224

    6-2-1 pushFrame( ) 224

    6-3 小结 238

    第7章 Exceptions 239

    7-1 何时会抛出exceptions 240

    7-2 KVM如何抛出exceptions 241

    7-2-1 raiseException( ) 241

    7-2-2 raiseExceptionMsg( ) 243

    7-2-3 fatalVMError( ) 244

    7-2-4 fatalError( ) 244

    7-2-5 throwException( ) 248

    7-3 处理一个exception 253

    7-3-1 findHandler( ) 254

    7-4 小结 256

    第8章 Garbage Collection 257

    8-1 Tracing garbage collection 259

    8-2 Copying garbage collection 260

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

    8-4 目前的KVM版本所使用的garbage collection机制 262

    8-4-1 Object header 262

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

    8-4-3 Compacting 270

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

    8-4-5 Temporary root 278

    8-4-6 Global root 280

    8-5 小结 281

    第9章 编写KVM的native methods 283

    9-1 一个简单的范例 286

    9-1-1 Java端的处理 287

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    9-6 Synchronized block的改写 318

    9-6-1 Java的synchronization 318

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

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

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

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

    9-7 Garbage collection 324

    9-7-1 handle 326

    9-7-2 Temporary root 327

    9-7-3 Global root 329

    9-8 小结 329

    第10章 The Technology Compatibility Kit(TCK) 331

    10-1 JavaTest简介 334

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

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

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

    10-5 执行JavaTest 342

    10-6 小结 345
  • 内容简介:
    本书特色:清晰讲解让移动通讯设备、PDA、智能家电可以执行Java程序的灵魂——KVM架构;引导设计人员彻底掌握嵌入式Java虚拟机的运作与原理;滴水不漏地向各位读者解开调整KVM效率的秘密……
  • 目录:
    第1章 Java与KVM的关系 1

    1-1 Java的概念 2

    1-2 Java平台结构 2

    1-3 Java的特色 4

    1-4 Java的世界 5

    1-5 企业版J2EE 6

    1-6 标准版J2SE 7

    1-7 微型版J2ME 9

    1-7-1 J2ME的架构 11

    1-7-2 J2ME的特性 11

    1-7-3 目前的J2ME环境 12

    1-8 K Virtual Machine 15

    1-8-1 为什么要用KVM 19

    1-8-2 KVM移植技术 20

    1-9 Java Card 27

    1-10 小结 28

    第2章 Java类文件格式 29

    2-1 magic number 31

    2-2 minor_version,major_version 31

    2-3 constant_pool_count,constant_pool[ ] 32

    2-3-1 CONSTANT_Class 33

    2-3-2 CONSTANT_Fieldref 33

    2-3-3 CONSTANT_Methodref 34

    2-3-4 CONSTANT_InterfaceMethodref 34

    2-3-5 CONSTANT_String 35

    2-3-6 CONSTANT_Integer 35

    2-3-7 CONSTANT_Float 35

    2-3-8 CONSTANT_Long 36

    2-3-9 CONSTANT_Double 36

    2-3-10 CONSTANT_NameAndType 37

    2-3-11 CONSTANT_Utf8 39

    2-4 access_flags 40

    2-5 this_class 41

    2-6 super_class 41

    2-7 interfaces_count,interfaces[ ] 42

    2-8 fields_count,fields[ ] 43

    2-9 methods_count,methods[ ] 45

    2-10 attributes_count,attributes[ ] 47

    2-10-1 SourceFile attribute 48

    2-10-2 ConstantValue attribute 49

    2-10-3 Code attribute 50

    2-10-4 Exceptions attribute 53

    2-10-5 InnerClasses attribute 54

    2-10-6 Synthetic attribute 56

    2-10-7 LineNumberTable attribute 56

    2-10-8 LocalVariableTable attribute 58

    2-10-9 Deprecated attribute 59

    2-11 HelloWorld_simple.class 60

    2-12 小结 70

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

    3-1 执行时期的instance结构 72

    3-2 执行时期的class结构 78

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

    3-4 加载Java类的过程 83

    3-4-1 loadClassfileInternal( ) 90

    3-4-2 loadClassfileHelper( ) 97

    3-5 小结 103

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

    4-1 The pc Register 106

    4-2 Java heap 106

    4-2-1 allocateHeap( ) 111

    4-2-2 InitializeHeap( ) 112

    4-2-3 callocPermanentObject( ) 115

    4-3 Java execution stack 118

    4-4 Runtime Constant Pool 120

    4-5 Frames 133

    4-5-1 Local variable array 139

    4-5-2 Operand stacks 140

    4-5-3 Dynamic linking 141

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

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

    4-6 小结 142

    第5章 KVM内部的Interpreter 145

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

    5-2 Split infrequent byte codes 156

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

    5-3-1 bytecodes.c 158

    5-3-2 execute.c 163

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

    5-5 小结 171

    第6章 Methods invokation 173

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

    6-1-1 loadOneMethod( ) 178

    6-1-2 getUTF8String(POINTERLIST_HANDLE, unsigned short) 185

    6-1-3 verifyMethodFlags( ) 185

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

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

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

    6-1-7 change_Name_to_Key( ) 202

    6-1-8 verifyMethodType( ) 208

    6-1-9 loadMethodAttributes( ) 210

    6-1-10 loadCodeAttribute( ) 215

    6-1-11 loadExceptionHandlers( ) 219

    6-2 调用Method 224

    6-2-1 pushFrame( ) 224

    6-3 小结 238

    第7章 Exceptions 239

    7-1 何时会抛出exceptions 240

    7-2 KVM如何抛出exceptions 241

    7-2-1 raiseException( ) 241

    7-2-2 raiseExceptionMsg( ) 243

    7-2-3 fatalVMError( ) 244

    7-2-4 fatalError( ) 244

    7-2-5 throwException( ) 248

    7-3 处理一个exception 253

    7-3-1 findHandler( ) 254

    7-4 小结 256

    第8章 Garbage Collection 257

    8-1 Tracing garbage collection 259

    8-2 Copying garbage collection 260

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

    8-4 目前的KVM版本所使用的garbage collection机制 262

    8-4-1 Object header 262

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

    8-4-3 Compacting 270

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

    8-4-5 Temporary root 278

    8-4-6 Global root 280

    8-5 小结 281

    第9章 编写KVM的native methods 283

    9-1 一个简单的范例 286

    9-1-1 Java端的处理 287

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    9-6 Synchronized block的改写 318

    9-6-1 Java的synchronization 318

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

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

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

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

    9-7 Garbage collection 324

    9-7-1 handle 326

    9-7-2 Temporary root 327

    9-7-3 Global root 329

    9-8 小结 329

    第10章 The Technology Compatibility Kit(TCK) 331

    10-1 JavaTest简介 334

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

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

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

    10-5 执行JavaTest 342

    10-6 小结 345
查看详情
相关图书 / 更多
深入嵌入式Java虚拟机:Inside KVM
深入浅出全链路压测
吴骏龙
深入嵌入式Java虚拟机:Inside KVM
深入解析Windows操作系统 (第7版)(卷2)
(美)安德里亚·阿列维(Andrea Allievi)
深入嵌入式Java虚拟机:Inside KVM
深入理解移动互联网
吴功宜 吴英 编著
深入嵌入式Java虚拟机:Inside KVM
深入实施“四个育人”,彰显本科人才培养特色——云南大学本科教育改革与创新优秀论文集
主编唐旭光
深入嵌入式Java虚拟机:Inside KVM
深入浅出存储引擎 文小飞
文小飞
深入嵌入式Java虚拟机:Inside KVM
深入浅出C语言程序设计(第3版·微课版)
李俊·c;强振平;荣剑;张晴晖;赵毅力;钟丽辉
深入嵌入式Java虚拟机:Inside KVM
深入理解物联网 吴功宜 吴英
吴功宜 吴英
深入嵌入式Java虚拟机:Inside KVM
深入学习习近平关于科技创新的重要论述
科学技术部编写组 著
深入嵌入式Java虚拟机:Inside KVM
深入浅出Spring Boot 3.x
杨开振
深入嵌入式Java虚拟机:Inside KVM
深入浅出数字经济
郭全中
深入嵌入式Java虚拟机:Inside KVM
深入地心 少儿科普 新华正版
英国尤斯伯恩出版公司
深入嵌入式Java虚拟机:Inside KVM
深入理解FFmpeg
刘歧 赵军 杜金房 赵文杰 宋韶颍
您可能感兴趣 / 更多
深入嵌入式Java虚拟机:Inside KVM
商务中文
刘颖;崔一方
深入嵌入式Java虚拟机:Inside KVM
实用病理学技术及特殊染色方法
刘颖;刘秀萍
深入嵌入式Java虚拟机:Inside KVM
会计信息化技能实训教程——畅捷通T3+云平台版
刘颖;王治;严珮;张金菊;任冰
深入嵌入式Java虚拟机:Inside KVM
谈谈中医治未病
刘颖;郭威;宋婧杰
深入嵌入式Java虚拟机:Inside KVM
汽车保险与理赔
刘颖;朱颖
深入嵌入式Java虚拟机:Inside KVM
中国税制
刘颖;高伟华
深入嵌入式Java虚拟机:Inside KVM
经济应用数学
刘颖;于丽妮;刘汝臣