Want to write better Java programs? Look under the hood and see what makes the ingenious Java engine run! This easy-to-understand yet technically rich description of the Java Virtual Machine (JVM)--the engine of the Java language--is your key to writing more efficient and effective Java code. It provides a complete JVM tutorial and desktop programmer's reference that explains all aspects of the JVM architecture, facilities, and operation--everything you need to know about JVM to get the best possible performance from your Java applications. A combination of lively text and entertaining Java applets on CD-ROM demystify the elusive JVM for which all Java programs are compiled. Each chapter includes practical and invaluable Java programming tips and a major simulation applet--the source code of which is included on the CD-ROM--that interactively illustrates the concepts presented in the chapter. All key JVM concepts and issues are explored: the Java landscape and JVM structure, including the Java stack architecture and operation; class files, bytecodes, conversions, and verification during class loading; arithmetic, logical, and array operations and control flow; method invocation and return, exceptions, garbage collection and threads; the just-in-time compiler implementation of JVM. What's more, you get a complete reference to the JVM class file format, all JVM bytecodes, and their values. When you understand how the JVM behaves based on the bytecodes generated from the Java compiler--as this books helps you to do--you'll be able to write better, more efficient Java code. ABOUT THE AUTHOR: Bill Venners (Mountain View, CA) is an 11-year Silicon Valley veteran. He has developed software for the consumer electronics, semiconductor, and life insurance industries and is currently focused on Java--writing a column titled ``Under the Hood'' for JavaWorld. Bill is president of his own custom software development and consulting firm.
Table of Contents:
Preface
Acknowledgments
Chapter 1. Introduction
Chapter 2. Introduction to Java's Architecture
Chapter 3. Platform Independence
Chapter 4. Security
Chapter 5. Network Mobility
Chapter 6. The Java Virtual Machine
Chapter 7. The Java Class File
Chapter 8. The Lifetime of a Class
Chapter 9. The Linking Model
Chapter 10. Garbage Collection
Chapter 11. Stack and Local Variable Operations
Chapter 12. Type Conversion
Chapter 13. Integer Arithmetic
Chapter 14. Logic
Chapter 15. Floating-Point Arithmetic
Chapter 16. Objects and Arrays
Chapter 17. Control Flow
Chapter 18. Exceptions
Chapter 19. Finally Clauses
Chapter 20. Method Invocation and Return
Chapter 21. Thread Synchronization
Chapter 22. Instruction Set by Opcode Mnemonic
Appendices
Index