Book description
The core of Java technology, the Java virtual machine is an abstract computing machine that enables the Java platform to host applications on any computer or operating system without rewriting or recompiling. Anyone interested in designing a language or writing a compiler for the Java virtual machine must have an in-depth understanding of its binary class format and instruction set. If you are programming with the Java programming language, knowledge of the Java virtual machine will give you valuable insight into the Java platform's security capabilities and cross-platform portability. It will increase your understanding of the Java programming language, enabling you to improve the security and performance of your programs.
The author employs a tutorial approach that provides a detailed look into the central workings of the technology and teaches the reader how to write real programs for the Java virtual machine. He describes methods for becoming a better programmer through an advanced understanding of the Java virtual machine and Java technology. Programming for the Java Virtual Machine offers comprehensive coverage of all the major elements of the Java virtual machine--classes and objects, control instructions, debugging, class loaders, compiling the Java programming language, performance issues, security, and threads and synchronization. The book provides an introduction to the Java Virtual Machine Specification (JVMS), with a collection of topics that help programmers understand the Java virtual machine and the JVMS better. In addition, the book features implementations of Prolog and Scheme, a language that runs on top of the Java virtual machine, generating Java virtual machine code as it runs and using a Java virtual machine class loader to load the generated code into the system.
You will find detailed information on such topics as:
The Java virtual machine verification algorithm
How Java virtual machine security works, and what it can and can't do
Using class loaders to incorporate code and dynamically generated code from the Internet, the Java Foundation Classes, database queries, and other languages
The mechanics of compiling the Java programming language for the Java virtual machine
Implementing other languages using the Java virtual machine, including Scheme, Prolog, Sather, Eiffel, and regular expressions
Numerous examples illustrate techniques and concepts, and exercises with solutions help you gain practical experience.
0201309726B04062001
Table of contents
- Copyright
- Preface
- 1. Introduction to the Java Virtual Machine
- 2. Oolong
- 3. Writing Methods
- 4. Classes and Objects
- 5. Control Instructions
-
6. Verification Process
- 6.1. How the Verification Algorithm Works
- 6.2. Is It a Structurally Valid class File?
- 6.3. Are All Constant References Correct?
- 6.4. Are All the Instructions Valid?
- 6.5. Will Each Instruction Always Find a Correctly Formed Stack and Local Variable Array?
- 6.6. Do External References Check Out?
- 6.7. Java Language and Verification Algorithm
- 6.8. Other Safety Requirements
- 6.9. Checking Verification
- 7. Debugging
- 8. Class Loaders
- 9. Inside a Java class File
-
10. Compiling Java
- 10.1. Expressions and Statements
- 10.2. Expression Types
- 10.3. Compiling Statements and Expressions
- 10.4. Local Variable Declarations
- 10.5. Fields and Variables
- 10.6. Creating New Objects
- 10.7. Class Name Abbreviations
- 10.8. Arithmetic Expressions
- 10.9. Method Calls
- 10.10. Expressions as Statements
- 10.11. Ifs and Booleans
- 10.12. Other Control Structures
- 10.13. Returns
- 10.14. Field Declarations
- 10.15. Method Declarations
- 10.16. Constructors
- 10.17. Conclusion
- 11. Compiling Other Languages
- 12. Implementing Scheme
- 13. Implementing Prolog
- 14. Performance
-
15. Security and the Virtual Machine
- 15.1. Java Platform and Need for Security
- 15.2. Security Promises of the JVM
- 15.3. Security Architecture and Security Policy
-
15.4. Some Potential Attacks
- 15.4.1. Implementation Details
- 15.4.2. Protecting the Security Manager
- 15.4.3. Bypassing Java Security
- 15.4.4. Using Unconstructed Objects
- 15.4.5. Invalid Casts
- 15.4.6. Changing the Class of a Reference
- 15.4.7. Reading Uninitialized Fields
- 15.4.8. Array Bounds Checks
- 15.4.9. Catching Exceptions
- 15.4.10. Hidden Code
- 15.5. Conclusion
- 16. Threads and Synchronization
- A. Tables
-
B. Oolong Reference
- B.1. Using the Oolong Assembler
- B.2. Gnoloo
- B.3. DumpClass
- B.4. Oolong Language
- B.5. Instructions
- C. Answers to Selected Exercises
- Further Reading
Product information
- Title: Programming for the Java™ Virtual Machine
- Author(s):
- Release date: June 1999
- Publisher(s): Addison-Wesley Professional
- ISBN: 9780201309720
You might also like
book
Tidy First?
Messy code is a nuisance. "Tidying" code, to make it more readable, requires breaking it up …
book
Python Crash Course, 3rd Edition
Python Crash Course is the world's best-selling guide to the Python guide programming language, with over …
audiobook
Technically Wrong
Buying groceries, tracking our health, finding a date: whatever we want to do, odds are that …
audiobook
Software Architecture for Busy Developers
A quick start guide to learning essential software architecture tools, frameworks, design patterns, and best practices …