The Java Language Environment: Contents

A White Paper

May 1996
James Gosling
Henry McGilton

  1. Introduction to Java
    1. Beginnings of the Java Language Project
    2. Design Goals of Java
      1. Simple, Object Oriented, and Familiar
      2. Robust and Secure
      3. Architecture Neutral and Portable
      4. High Performance
      5. Interpreted, Threaded, and Dynamic
    3. The Java Platform--a New Approach to Distributed Computing
  2. Java--Simple and Familiar
    1. Main Features of the Java Language
      1. Primitive Data Types
      2. Arithmetic and Relational Operators
      3. Arrays
      4. Strings
      5. Multi-Level Break
      6. Memory Management and Garbage Collection
      7. The Background Garbage Collector
      8. Integrated Thread Synchronization
    2. Features Removed from C and C++
      1. No More Typedefs, Defines, or Preprocessor
      2. No More Structures or Unions
      3. No Enums
      4. No More Functions
      5. 5No More Multiple Inheritance
      6. No More Goto Statements
      7. No More Operator Overloading
      8. No More Automatic Coercions
      9. No More Pointers
    3. Summary
  3. Java is Object Oriented
    1. Object Technology in Java
    2. What Are Objects?
    3. Basics of Objects
      1. Classes
      2. Instantiating an Object from its Class
      3. Constructors
      4. Methods and Messaging
      5. Finalizers
      6. Subclasses
      7. Java Language Interfaces
      8. Access Control
      9. Packages
      10. Class Variables and Class Methods
      11. Abstract Methods
    4. Summary
  4. Architecture Neutral, Portable, and Robust
    1. Architecture Neutral
      1. Byte Codes
    2. Portable
    3. Robust
      1. Strict Compile-Time and Run-Time Checking
    4. Summary
  5. Interpreted and Dynamic
    1. Dynamic Loading and Binding
      1. The Fragile Superclass Problem
      2. Solving the Fragile Superclass Problem
      3. Run-Time Representations
    2. Summary
  6. Security in Java
    1. Memory Allocation and Layout
    2. Security Checks in the Class Loader
    3. The Byte Code Verification Process
      1. The Byte Code Verifier
    4. Security in the Java Networking Package
    5. Summary
  7. Multithreading
    1. Threads at the Java Language Level
    2. Integrated Thread Synchronization
    3. Multithreading Support--Conclusion
  8. Performance and Comparisons
    1. Performance
    2. The Java Language Compared
    3. A Major Benefit of Java: Fast and Fearless Prototyping
    4. Summary
  9. Java Base System and Libraries
    1. Java Language Classes
    2. Input Output Package
    3. Utility Package
    4. Abstract Window Toolkit