CONTENTS | PREV | NEXT

The Java Language Environment
A White Paper

May 1996

James Gosling
Henry McGilton




1. Introduction to Java
 
1.1 Beginnings of the Java Language Project
 
1.2 Design Goals of Java
1.2.1 Simple, Object Oriented, and Familiar
1.2.2 Robust and Secure
1.2.3 Architecture Neutral and Portable
1.2.4 High Performance
1.2.5 Interpreted, Threaded, and Dynamic
 
1.3 The Java Platform--a New Approach to Distributed Computing

2. Java--Simple and Familiar
 
2.1 Main Features of the Java Language
2.1.1 Primitive Data Types
2.1.2 Arithmetic and Relational Operators
2.1.3 Arrays
2.1.4 Strings
2.1.5 Multi-Level Break
2.1.6 Memory Management and Garbage Collection
2.1.7 The Background Garbage Collector
2.1.8 Integrated Thread Synchronization
 
2.2 Features Removed from C and C++
2.2.1 No More Typedefs, Defines, or Preprocessor
2.2.2 No More Structures or Unions
2.2.3 No Enums
2.2.4 No More Functions
2.2.5 No More Multiple Inheritance
2.2.6 No More Goto Statements
2.2.7 No More Operator Overloading
2.2.8 No More Automatic Coercions
2.2.9 No More Pointers
 
2.3 Summary

3. Java is Object Oriented
 
3.1 Object Technology in Java
 
3.2 What Are Objects?
 
3.3 Basics of Objects
3.3.1 Classes
3.3.2 Instantiating an Object from its Class
3.3.3 Constructors
3.3.4 Methods and Messaging
3.3.5 Finalizers
3.3.6 Subclasses
3.3.7 Java Language Interfaces
3.3.8 Access Control
3.3.9 Packages
3.3.10 Class Variables and Class Methods
3.3.11 Abstract Methods
 
3.4 Summary

4. Architecture Neutral, Portable, and Robust
 
4.1 Architecture Neutral
4.1.1 Byte Codes
 
4.2 Portable
 
4.3 Robust
4.3.1 Strict Compile-Time and Run-Time Checking
 
4.4 Summary

5. Interpreted and Dynamic
 
5.1 Dynamic Loading and Binding
5.1.1 The Fragile Superclass Problem
5.1.2 Solving the Fragile Superclass Problem
5.1.3 Run-Time Representations
 
5.2 Summary

6. Security in Java
 
6.1 Memory Allocation and Layout
 
6.2 Security Checks in the Class Loader
 
6.3 The Byte Code Verification Process
6.3.1 The Byte Code Verifier
 
6.4 Security in the Java Networking Package
 
6.5 Summary

7. Multithreading
 
7.1 Threads at the Java Language Level
 
7.2 Integrated Thread Synchronization
 
7.3 Multithreading Support--Conclusion

8. Performance and Comparisons
 
8.1 Performance
 
8.2 The Java Language Compared
 
8.3 A Major Benefit of Java: Fast and Fearless Prototyping
 
8.4 Summary

9. Java Base System and Libraries
 
9.1 Java Language Classes
 
9.2 Input Output Package
 
9.3 Utility Package
 
9.4 Abstract Window Toolkit

10. The HotJava World-Wide Web Browser
 
10.1 The Evolution of Cyberspace
10.1.1 First Generation Browsers
10.1.2 The HotJava Browser--A New Concept in Web Browsers
10.1.3 The Essential Difference
10.1.4 Dynamic Content
10.1.5 Dynamic Types
10.1.6 Dynamic Protocols
 
10.2 Freedom to Innovate
 
10.3 Implementation Details
 
10.4 Security
10.4.1 The First Layer--the Java Language Interpreter
10.4.2 The Next Layer--the Higher Level Protocols
 
10.5 HotJava--the Promise

11. Further Reading


CONTENTS | PREV | NEXT
Please send any comments or corrections to jdk-comments@java.sun.com
Copyright © 1997 Sun Microsystems, Inc. All Rights Reserved.