Skip to content

Java and its Versions

August 7, 2009


JDK is the ‘java development kit’. It normally comes bundled with a JRE and also allows you to compile Java source files into Java class files. The JDK allows you to both write and run programs.
JRE is the ‘java runtime environment’. It is responsible for creating a Java Virtual Machine to execute Java class files (e.g., run Java programs).


J2SE” (Java 2 Platform, Standard Edition) replaced JDK to distinguish the base platform from J2EE (Java 2 Platform, Enterprise Edition) and J2ME (Java 2 Platform, Micro Edition).
J2EE “Java 2 Enterprise Edition” which allows you to write middleware or server code more easily.
J2ME ¬タワJava 2 Micro Edition¬タ? which allows you to write code for 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.
Versions of Java:
JDK 1.0 (January 23, 1996)
Initial release
JDK 1.1 (February 19, 1997)
Major additions included:
  1. an extensive retooling of the AWT event model
  2. inner classes added to the language
  3. JavaBeans
  4. JDBC
  5. RMI
J2SE 1.2 (December 8, 1998)
Codename Playground. This and subsequent releases through J2SE 5.0 were rebranded retrospectively Java 2 and the version name “J2SE” (Java 2 Platform, Standard Edition) replaced JDK to distinguish the base platform from J2EE (Java 2 Platform, Enterprise Edition) and J2ME (Java 2 Platform, Micro Edition). Major additions included:
  1. strictfp keyword
  2. reflection which supports Introspection only, no modification at runtime possible.
  3. the Swing graphical API was integrated into the core classes
  4. Sun’s JVM was equipped with a JIT compiler for the first time
  5. Java Plug-in
  6. Java IDL, an IDL implementation for CORBA interoperability
  7. Collections framework
J2SE 1.3 (May 8, 2000)
Codename Kestrel.
Major additions included:
  1. HotSpot JVM included (the HotSpot JVM was first released in April, 1999 for the J2SE 1.2 JVM)
  2. RMI was modified to support optional compatibility with CORBA
  3. JavaSound
  4. Java Naming and Directory Interface (JNDI) included in core libraries (previously available as an extension)
  5. Java Platform Debugger Architecture (JPDA)
J2SE 1.4 (February 6, 2002)
Codename Merlin. This was the first release of the Java platform developed under the Java Community Process as JSR 59.
Major changes included:
  1. assert keyword
  2. regular expressions modeled after Perl regular expressions
  3. exception chaining allows an exception to encapsulate original lower-level exception
  4. Internet Protocol version 6 (IPv6) support
  5. non-blocking NIO (New Input/Output)
  6. logging API image I/O API for reading and writing images in formats like JPEG and PNG
  7. integrated XML parser and XSLT processor (JAXP)
  8. integrated security and cryptography extensions (JCE, JSSE, JAAS)
  9. Java Web Start included (Java Web Start was first released in March, 2001 for J2SE 1.3)
J2SE 5.0 (September 30, 2004)
Codename Tiger. (Originally numbered 1.5, which is still used as the internal version number.) Developed under JSR 176, Tiger added a number of significant new language features:
  1. Generics: Provides compile-time (static) type safety for collections and eliminates the need for most typecasts (type conversion).
  2. Metadata: Also called annotations, allows language constructs such as classes and methods to be tagged with additional data, which can then be processed by metadata-aware utilities.
  3. Autoboxing/unboxing: Automatic conversions between primitive types (such as int) and primitive wrapper classes (such as Integer).
  4. Enumerations: The enum keyword creates a typesafe, ordered list of values (such as Day.MONDAY, Day.TUESDAY, etc.). Previously this could only be achieved by non-typesafe constant integers or manually constructed classes (typesafe enum pattern).
  5. Swing: New skinnable look and feel, called synth.
  6. Varargs: The last parameter of a method can now be declared using a type name followed by three dots (e.g. void drawtext(String... lines)). In the calling code any number of parameters of that type can be used and they are then placed in an array to be passed to the method, or alternatively the calling code can pass an array of that type.
  7. Fix the previously broken semantics of the Java Memory Model, which defines how threads interact through memory.

  8. Automatic stub generation for RMI objects.

  9. Enhanced ‘ loop‘: The for loop syntax is extended with special syntax for iterating over each member of either an array or any Iterable, such as the standard Collection classes, using a construct of the form:
void displayWidgets (Iterable<Widget> widgets) {
    for (Widget w: widgets) {
This example iterates over the Iterable object widgets, assigning each of its items in turn to the variable w, and then calling the Widget method display() for each item.

Java SE 6 (December 11, 2006)

Codename Mustang.Beta versions were released in February and June 2006. The final release occurred on December 11, 2006. Updates 2 and 3 were released during 2007. Update 4 was released in January 2008.
Release nomenclature
As of this version, Sun replaced the name “J2SE” with Java SE and dropped the “.0” from the version number. Internal numbering for developers remains 1.6.0.
Major changes
Major changes included in this version:
  1. Support for older Win9x versions dropped. The last version for Win98 is
  2. Scripting Language Support Generic API for tight integration with scripting languages, and built-in Mozilla Javascript Rhino integration
  3. Dramatic performance improvements for the core platform, and Swing.
  4. Improved Web Service support through JAX-WS
  5. JDBC 4.0 support
  6. Java Compiler API: an API allowing a Java program to select and invoke a Java Compiler programmatically.
  7. Upgrade of JAXB to version 2.0: Including integration of a StAX parser.
  8. Support for pluggable annotations
  9. Many GUI improvements, such as integration of SwingWorker in the API, table sorting and filtering, and true Swing double-buffering (eliminating the gray-area effect).
Java SE 7
Codename Dolphin. This is in the early planning and development stages. The Dolphin Project started up in August 2006, with release estimated in 2008.
Java is a revolutionary language
The properties that make Java so attractive are present in other programming languages. Many languages are ideally suited for certain types of applications, even more so than Java. But Java brings all these properties together, in one language. This is a revolutionary jump forward for the software industry.
Let’s look at some of the properties in more detail: –
  • object-oriented
  • portable
  • multi-threaded
  • automatic garbage collection
  • secure
  • network and “Internet” aware
  • simplicity and ease-of-use
Java is a compiled and interpreted language. When we compile java program a class file will be created which is called bytecode. When we run the java program the bytecode is converted into machine understandable code.
No comments yet

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: