
|
|
|
|
|
|
| 作者 |
: |
探矽工作室
|
| ISBN |
: |
7113052142
|
| 頁數 |
: |
346
|
| 開本 |
: |
16開
|
| 封面形式 |
: |
簡裝本
|
| 出版社 |
: |
中國鐵道出版社
|
| 出版日期 |
: |
2003-5-1
|
| NT$ |
: |
180
|
|
|
|
|
配送說明: 國際快遞 , 海運郵遞 。
付款說明: 1. VISA、MASTER線上刷卡 2. 信用卡傳真刷卡付款 3.
郵政劃撥 4. 銀行匯款
|
|
|
|
|
 |
| |
·清晰講解讓移動通訊設備、PDA、智慧家電可以執行Java程式的靈魂——KVM架構。 ·引導設計人員徹底掌握嵌入式Java虛擬機的運作與原理。 ·滴水不漏地向各位讀者解開調整KVM效率的秘密。
|
|
|
|
|
|
 |
| |
本書以Java虛擬機-KVM為核心,結合豐富的圖形,運用通俗易懂的文字,講述了Java虛擬機的內部實際架構,並深入探討實際程式的編寫原理。
|
|
|
|
|
|
 |
| |
第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
|
|
|
 |
|
|