In this blog, 25.000 books will be uploaded, so far more than 1400 books are available. Books, will be added daily, please check this blog daily.
Wednesday, August 11, 2010
Inside The Java Virtual Machine
Acknowledgments
Introduction
Part One: Java's Architecture
1 Introduction to Java's Architecture
Why Java?
The Architecture
The Java Virtual Machine
The Class Loader Architecture
The Java Class File
The Java API
The Java Programming Language
Architectural Tradeoffs
Future Trends
On the CD-ROM
The Resources Page
2 Platform independence
Why Platform Independence?
Java's Architectural Support for Platform Independence
Scalability
Factors that Influence Platform Independence
The Java Platform
Native Methods
Other Factors
Seven Steps to Platform Independence
The Politics of Platform Independence
The Resources Page
3 Security
Why Security?
The Sandbox
The Class Loader Architecture
The Class File Verifier
Phase One: Internal Checks
Phase Two: Verification of Symbolic References
Safety Features Built Into the Java Virtual Machine
The Security Manager and the Java API
The Security API
Security Beyond the Architecture
The Resources Page
4 Network-mobility
Why Network Mobility?
A New Software Paradigm
Java's Architectural Support for Network-Mobility
The Applet: An Example of Network-Mobile Java
The Resources Page
Part Two: Java Internals
5 The Java Virtual Machine
What is a Java Virtual Machine?
The Lifetime of a Java Virtual Machine
The Architecture of the Java Virtual Machine
Data Types
Word Size
The Class Loader Subsystem
Loading, Linking and Initialization
The Primordial Class Loader
Class Loader Objects
Name Spaces
The Method Area
Type Information
The Constant Pool
Field Information
Method Information Class Variables
A Reference to Class ClassLoader
A Reference to Class Class
Method Tables
An Example of Method Area Use
The Heap
Garbage Collection
Object Representation
Array Representation
The Program Counter
The Java Stack
The Stack Frame
Local Variables
Operand Stack
Frame Data
Possible Implementations of the Java Stack
Native Method Stacks
Execution Engine
The Instruction Set
Execution Techniques
Threads
Native Method Interface
The Real Machine
Eternal Math: A Simulation
On the CD-ROM
The Resources Page
6 The Java Class File
What is a Java Class File?
What's in a Class File?
Special Strings
Fully Qualified Names
Simple Names
Descriptors
The Constant Pool
The CONSTANT_Utf8_info Table
The CONSTANT_Integer_info Table
The CONSTANT_Float_info Table
The CONSTANT_Long_info Table
The CONSTANT_Double_info Table
The CONSTANT_Class_info Table
The CONSTANT_String_info Table
The CONSTANT_Fieldref_info Table
The CONSTANT_Methodref_info Table
The CONSTANT_InterfaceMethodref_info Table
The CONSTANT_NameAndType_info Table
Fields
Methods
Attributes
The Code Attribute
The ConstantValue Attribute
The Exceptions Attribute
The InnerClasses Attribute
The LineNumberTable Attribute
The LocalVariableTable Attribute
The SourceFile Attribute
The Synthetic Attribute
Getting Loaded: A Simulation
On the CD-ROM
The Resources Page
7 The Lifetime of a Class
Class Loading, Linking, and Initialization
Loading
Verification
Preparation
Resolution
Initialization
The Class Initialization Method
Active versus Passive Use
The Lifetime of an Object
Class Instantiation
Garbage Collection and Finalization of Objects
Unloading and Finalization of Classes
On the CD-ROM
The Resources Page
8 The Linking Model
Dynamic Linking and Resolution
Resolution and Dynamic Extension
Constant Pool Resolution
Resolution of CONSTANT_Class_info Entries
Array Classes
Non-Array Classes and Interfaces
Resolution of CONSTANT_Fieldref_info Entries
Resolution of CONSTANT_Methodref_info Entries
Resolution of CONSTANT_InterfaceMethodref_info Entries
Resolution of CONSTANT_String_info Entries
Resolution of Other Types of Entries
Compile-Time Resolution of Constants
Direct References
_quick Instructions
Example: The Linking of the Salutation Application
Example: The Dynamic Extension of the Greet Application
Example: Unloading Unreachable Greeters
On the CD-ROM
The Resources Page
9 Garbage Collection
Why Garbage Collection?
Garbage Collection Algorithms
Reference Counting Collectors
Tracing Collectors
Compacting Collectors
Copying Collectors
Generational Collectors
Adaptive Collectors
Finalization
Heap of Fish: A Simulation
Allocate Fish
Assign References
Garbage Collect
Compact Heap
On the CD-ROM
The Resources Page
10 Stack and Local Variable Operations
Pushing Constants Onto the Stack
Generic Stack Operations
Pushing Local Variables Onto the Stack
Popping to Local Variables
The wide Instruction
Fibonacci Forever: A Simulation
On the CD-ROM
The Resources Page
11 Type Conversion
The Conversion Opcodes
Conversion Diversion: A Simulation
On the CD-ROM
The Resources Page
12 Integer Arithmetic
Two's Complement Arithmetic
Inner Int: A Java int Reveals its Inner Nature
Arithmetic Opcodes
Prime Time: A Simulation
On the CD-ROM
The Resources Page
13 Logic
The Logic Opcodes
Logical Results: A Simulation
On the CD-ROM
The Resources Page
14 Floating Point Arithmetic
Floating Point Numbers
Inner Float: A Java float Reveals its Inner Nature
The Floating Point Opcodes
Circle of Squares: A Simulation
On the CD-ROM
The Resources Page
15 Objects and Arrays
A Refresher on Objects and Arrays
Opcodes for Objects
Opcodes for Arrays
Three-Dimensional Array: A Simulation
On the CD-ROM
The Resources Page
16 Control Flow
Conditional Branching
Unconditional Branching
Conditional Branching with Tables
Saying Tomato: A Simulation
On the CD-ROM
The Resources Page
17 Exceptions
Throwing and Catching Exceptions
The Exception Table
Play Ball!: A Simulation
On the CD-ROM
The Resources Page
18 Finally Clauses
Miniature Subroutines
Asymmetrical Invocation and Return
Hop Around: A Simulation
On the CD-ROM
The Resources Page
19 Method Invocation and Return
Method Invocation
Invoking a Java Method
Invoking a Native Method
Other Forms of Method Invocation
The invokespecial instruction
invokespecial and init()
invokespecial and Private Methods
invokespecial and super
The invokeinterface Instruction
Invocation Instructions and Speed
Examples of Method Invocation
Returning from Methods
On the CD-ROM
The Resources Page
20 Thread Synchronization
Monitors
Object Locking
Synchronization Support in the Instruction Set
Synchronized Statements
Synchronized Methods
Coordination Support in Class Object
On the CD-ROM
The Resources Page
Appendix A. Instructions by Opcode Mnemonic
Appendix B. Opcode Mnemonic by Functional Group
Appendix C. Opcode Mnemonic by Opcode
Appendix D. Slices of Pi: A Simulation of the Java Virtual Machine
Index
About the Author
Download
Another Java books
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment