| |
|
|
|
|
| |
|
|
|
|
| |
| |
|
|
|
|
| 1. Introduction to Java |
| |
1.1Beginnings of the Java Language Project |
| |
1.2Design Goals of Java |
| |
|
1.2.1Simple, Object Oriented, and Familiar |
| |
|
1.2.2Robust and Secure |
| |
|
1.2.3Architecture Neutral and Portable |
| |
|
1.2.4High Performance |
| |
|
1.2.5Interpreted, Threaded, and Dynamic |
| |
1.3The Java Platform--a New Approach to Distributed Computing |
| |
|
|
|
|
| 2. Java--Simple and Familiar |
| |
2.1Main Features of the Java Language |
| |
|
2.1.1Primitive Data Types |
| |
|
2.1.2Arithmetic and Relational Operators |
| |
|
2.1.3Arrays |
| |
|
2.1.4Strings |
| |
|
2.1.5Multi-Level Break |
| |
|
2.1.6Memory Management and Garbage Collection |
| |
|
2.1.7The Background Garbage Collector |
| |
|
2.1.8Integrated Thread Synchronization |
| |
2.2Features Removed from C and C++ |
| |
|
2.2.1No More Typedefs, Defines, or Preprocessor |
| |
|
2.2.2No More Structures or Unions |
| |
|
2.2.3No Enums |
| |
|
2.2.4No More Functions |
| |
|
2.2.5No More Multiple Inheritance |
| |
|
2.2.6No More Goto Statements |
| |
|
2.2.7No More Operator Overloading |
| |
|
2.2.8No More Automatic Coercions |
| |
|
2.2.9No More Pointers |
| |
2.3Summary |
| |
|
|
|
|
| 3. Java is Object Oriented |
| |
3.1Object Technology in Java |
| |
3.2What Are Objects? |
| |
3.3Basics of Objects |
| |
|
3.3.1Classes |
| |
|
3.3.2Instantiating an Object from its Class |
| |
|
3.3.3Constructors |
| |
|
3.3.4Methods and Messaging |
| |
|
3.3.5Finalizers |
| |
|
3.3.6Subclasses |
| |
|
3.3.7Java Language Interfaces |
| |
|
3.3.8Access Control |
| |
|
3.3.9Packages |
| |
|
3.3.10Class Variables and Class Methods |
| |
|
3.3.11Abstract Methods |
| |
3.4Summary |
| |
|
|
|
|
| 4. Architecture Neutral, Portable, and Robust |
| |
4.1Architecture Neutral |
| |
|
4.1.1Byte Codes |
| |
4.2Portable |
| |
4.3Robust |
| |
|
4.3.1Strict Compile-Time and Run-Time Checking |
| |
4.4Summary |
| |
|
|
|
|
| 5. Interpreted and Dynamic |
| |
5.1Dynamic Loading and Binding |
| |
|
5.1.1The Fragile Superclass Problem |
| |
|
5.1.2Solving the Fragile Superclass Problem |
| |
|
5.1.3Run-Time Representations |
| |
5.2Summary |
| |
|
|
|
|
| 6. Security in Java |
| |
6.1Memory Allocation and Layout |
| |
6.2Security Checks in the Class Loader |
| |
6.3The Byte Code Verification Process |
| |
|
6.3.1The Byte Code Verifier |
| |
6.4Security in the Java Networking Package |
| |
6.5Summary |
| |
|
|
|
|
| 7. Multithreading |
| |
7.1Threads at the Java Language Level |
| |
7.2Integrated Thread Synchronization |
| |
7.3Multithreading Support--Conclusion |
| |
|
|
|
|
| 8. Performance and Comparisons |
| |
8.1Performance |
| |
8.2The Java Language Compared |
| |
8.3A Major Benefit of Java: Fast and Fearless Prototyping |
| |
8.4Summary |
| |
|
|
|
|
| 9. Java Base System and Libraries |
| |
9.1Java Language Classes |
| |
9.2Input Output Package |
| |
9.3Utility Package |
| |
9.4Abstract Window Toolkit |
| |
|
|
|
|
| 10. The HotJava World-Wide Web Browser |
| |
10.1The Evolution of Cyberspace |
| |
|
10.1.1First Generation Browsers |
| |
|
10.1.2The HotJava Browser--A New Concept in Web Browsers |
| |
|
10.1.3The Essential Difference |
| |
|
10.1.4Dynamic Content |
| |
|
10.1.5Dynamic Types |
| |
|
10.1.6Dynamic Protocols |
| |
10.2Freedom to Innovate |
| |
10.3Implementation Details |
| |
10.4Security |
| |
|
10.4.1The First Layer--the Java Language Interpreter |
| |
|
10.4.2The Next Layer--the Higher Level Protocols |
| |
10.5HotJava--the Promise |
| |
|
|
|
|
| 11. Further Reading |