Home : Course Map : Chapter 1 : Java :
Versions of Java
JavaTech
Course Map
Chapter 1
Introduction
History
What is Java?
Versions
Java 5.0
Features

Java Process
Tools
Documentation
Compatibility
Getting Started
Simple Applet
Simple Application
Starters
Exercises

    Supplements
Interpret/Compile

Making WebPages
Plug-in
Java 5.0 Features
The JVM
Advanced JVMs
Alt. Compilers
Alt. JVMs
Java Deployment

     About JavaTech
     Codes List
     Exercises
     Feedback
     References
     Resources
     Tips
     Topic Index
     Course Guide
     What's New

Since its introduction, Sun has released a new version of the Java language every two years or so. These new versions brought enhancements, new capabilities and fixes to bugs. Until recently, the versions were numbered 1.x, where x reached up till 4. (Intermediate revisions were labeled with a third number - 1.x.y - as in 1.4.2.) The newest version, however, is called Java 5.0 rather than Java 1.5.

Below is a timeline of the different versions of the basic, or Standard Edition (SE), of Java along with some of the new features that each one introduced. This edition contains the core language packages (the name for code libraries in Java) and is aimed for desktop programming.

  • 1995: Version 1.0 of the Java Development Kit (JDK) was released for free by Sun.
    • 8 packages with 212 classes
    • Netscape 2.0-4.0 included Java 1.0.
    • Microsoft and other companies licensed Java.

  • 1997: Version 1.1:
    • 23 packages - 504 classes
    • Improvements include better event handling, inner classes, improved JVM.
    • Microsoft developed its own 1.1. compatible Java Virtual Machine for the Internet Explorer.
    • Many browsers in use are still compatible only with 1.1.
    • Swing packages of greatly improved graphics became available during this time but not included with the core language.

  • 1999: Version 1.2, also called the Java 2 Platform
    • 59 packages - 1520 classes
    • Code and tools distributed as The Software Development Kit (SDK)
    • Java Foundation Classes (JFC), based on Swing, for improved graphics and user interfaces, now included with the core language.
    • Collections API included support for various lists, sets, and hash maps.

  • 2000: Version 1.3:
    • 76 packages - 1842 classes
    • Performance enhancements including the Hotspot virtual machine.

  • 2002: Version 1.4:
    • 135 packages - 2991 classes
    • Improved IO, XML support, etc.

  • 2004: Version 5.0 (previously numbered 1.5):
    • 165 packages, over 3000 classes
    • Faster startup and smaller memory footprint
    • Metadata
    • Formatted output
    • Generics
    • Improved multithreading features

We discuss Java 5.0 further in this chapter and examine individual features in later chapters like those listed above. See the Code Compatiblity page for a discussion of issues related to dealing with codes, compilers, and JVMs from different versions.

Other Editions of Java

In the late 1990s, Sun split off two other more specialized branches, or editions, of Java. One is aimed at small, embedded applications and the other for large scale middleware applications:

Micro Java
Embedded systems such as cell phones and device controllers typically offer reduced resources as compared to desktop PCs. This means substantially less disk space or no disk at all, and less of other types of nonvolatile memory. It also usually means a smaller display or perhaps no display at all.

For such systems Sun offers slimmed down versions of Java.

  • JavaCard - extremely limited Java for systems with only 16kb nonvolatile memory and 512 bytes volatile

  • EmbeddedJava - based on Java 1.1 for 32 bit system with about 512kb each for ROM and RAM. Individual packages, classes and even methods in the core language can be thrown out to make room.

  • PersonalJava - based on Java 1.1.8 for larger systems with 2MB ROM and more than 1MB RAM.

  • Java 2 Platform, Micro Edition (J2ME) - based on the Java 2 Platform, J2ME replaces the Java 1.1 based systems (EmbeddedJava and PersonalJava but not JavaCard). The developer will choose from different configurations to suit the capacity of a given system.

See Chapter 24: Embedded Java for further discussion of the J2ME.

J2EE - Java 2 Platform, Enterprise Edition
With the Java 2 Platform came a separate version with enhanced resources targeted at enterprise applications. The Java 2 Enterprise Edition now provides a wide array of tools for building middleware software such as for database access applications, online storefronts, and other services.

Naming Conventions

All of these editions and version numbers can be a bit confusing for newcomers. Also, terms change such as Java Development Kit becoming Software Development Kit. For this course, however, you can just use the latest version - Java 5.0 - and not worry about all these historical issues.

Note that we use the terms Java 1.x, SDK 1.x, and J2SE 1.x interchangeably and similarly, for Java 5.0, SDK 5.0, and J2SE 5.0. This course was originally developed with Java 1.4.2 but we have now converted the codes to Java 5.0.

We also will occasionally refer simply to the "platform" to indicate the whole Java progamming environment provided by the compiler, JVM, and the various other tools available for working with the language.

References and Web Resources

Latest update: Oct.9.2004

            Tech
Java in Science
    & Engineering
Benefits
Shortcomings
RealWorld Examples

           Physics
Java in Physics
SimulationTypes
Simulate&Analyze
Sim. in Experiments
  Demo 1: Event
  Demo 2: Continuous
  Demo 3: Static

Learn by Coding
Exercises

  Part I Part II Part III
Java Core 1  2  3  4  5  6  7  8  9  10  11  12 13 14 15 16 17
18 19 20
21
22 23 24
Supplements

1  2  3  4  5  6  7  8  9  10  11  12

Tech 1  2  3  4  5  6  7  8  9  10  11  12
Physics 1  2  3  4  5  6  7  8  9  10  11  12

Java is a trademark of Sun Microsystems, Inc.