Java version history: Difference between revisions

Content deleted Content added
Leandrod (talk | contribs)
m Ref.
Leandrod (talk | contribs)
m Ref.
Line 6:
 
== JDK 1.0 ([[January 23]], [[1996]]) ==
Initial release<ref name = "pr10">[http://www.sun.com/smi/Press/sunflash/1996-01/sunflash.960123.10561.html Version 1.0 press release], Sun.</ref>
 
=== JDK 1.1 ([[February 19]], [[1997]]) ===
Major additions included:<ref name = "pr11">[http://www.sun.com/smi/Press/sunflash/1997-02/sunflash.970219.0001.html Version 1.1 press release], Sun.</ref>
* an extensive retooling of the [[Abstract Windowing Toolkit|AWT]] event model
* [[inner class]]es added to the language
Line 18:
== 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:<ref name = "pr12">[http://www.sun.com/smi/Press/sunflash/1998-12/sunflash.981208.9.html Version 1.2 press release], Sun.</ref>
* <code>[[strictfp]]</code> keyword
* [[Reflection (computer science)|reflection]] which supports Introspection only, no modification at runtime possible.
Line 29:
== J2SE 1.3 ([[May 8]], [[2000]])==
Codename '''Kestrel'''.
The most notable changes were:<ref name = "pr13">[http://www.sun.com/smi/Press/sunflash/2000-05/sunflash.20000508.3.html Version 1.3 press release], Sun.</ref><ref name = "ch13">[http://java.sun.com/j2se/1.3/docs/relnotes/features.html Version 1.3 full list of changes], Sun.</ref>
* [[HotSpot]] JVM included (the HotSpot JVM was first released in April, 1999 for the J2SE 1.2 JVM)
* [[Java remote method invocation|RMI]] was changed to be based on [[CORBA]]
Line 38:
== J2SE 1.4 ([[February 6]], [[2002]])==
Codename '''Merlin'''.
This was the first release of the Java platform developed under the Java Community Process as [http://www.jcp.org/en/jsr/detail?id=59 JSR 59]. Major changes included:<ref name = "pr14">[http://www.sun.com/smi/Press/sunflash/2002-02/sunflash.20020206.5.html Version 1.4 press release].</ref><ref name = "ch14">[http://java.sun.com/j2se/1.4.2/docs/relnotes/features.html full Version 1.4 list of changes].</ref>
* <code>[[Assertion (computing)|assert]]</code> keyword (Specified in [http://www.jcp.org/en/jsr/detail?id=41 JSR 41].)
* [[regular expressions]] modeled after [[Perl]] regular expressions
Line 51:
== J2SE 5.0 ([[September 30]], [[2004]])==
Codename '''Tiger'''.
(Originally numbered 1.5, which is still used as the internal version number.<ref name = "version 5">[http://java.sun.com/j2se/1.5.0/docs/relnotes/version-5.0.html Version 5 release notes], Sun.</ref>) Developed under [http://www.jcp.org/en/jsr/detail?id=176 JSR 176], Tiger added a number of significant new language features:<ref name = "pr15">[http://www.sun.com/smi/Press/sunflash/2004-09/sunflash.20040930.1.html Verſion 1.5 press release].</ref><ref name = "ch15">[http://java.sun.com/j2se/1.5/docs/relnotes/features.html Verſion 1.5 full list of changes].</ref>
;* [[Generic programming|Generics]]: Provides compile-time (static) [[type safety]] for collections and eliminates the need for most [[Type conversion|typecasts (type conversion)]]. (Specified by [http://www.jcp.org/en/jsr/detail?id=14 JSR 14].)
;* [[Metadata (computing)|Metadata]]: Also called [[Java annotation|annotation]]s, allows language constructs such as classes and methods to be tagged with additional data, which can then be processed by metadata-aware utilities. (Specified by [http://www.jcp.org/en/jsr/detail?id=175 JSR 175].)
;* [[Autoboxing]]/unboxing: Automatic conversions between [[primitive type]]s (such as <code>int</code>) and [[primitive wrapper class]]es (such as {{Javadoc:SE|java/lang|Integer}}). (Specified by [http://www.jcp.org/en/jsr/detail?id=201 JSR 201].)
;* [[Enumeration (programming)|Enumerations]]: The <code>enum</code> keyword creates a [[type safety|typesafe]], ordered list of values (such as <code>Day.MONDAY</code>, <code>Day.TUESDAY</code>, etc.). Previously this could only be achieved by non-typesafe constant integers or manually constructed classes (typesafe enum pattern). (Specified by [http://www.jcp.org/en/jsr/detail?id=201 JSR 201].)
;* [[Variadic function|Varargs]]: The last parameter of a method can now be declared using a type name followed by three dots (e.g. <code>void drawtext(String... lines)</code>). 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.
;* Enhanced '<code>for</code> [[program loop|loop]]': The <code>for</code> loop syntax is extended with special syntax for iterating over each member of either an array or any {{Javadoc:SE|java/lang|Iterable}}, such as the standard {{Javadoc:SE|java/util|Collection}} classes, using a construct of the form:
 
<!-- The table below indents the code example and following text by 16 pixels -->
Line 79:
 
=== Major changes ===
Major changes included in this version:<ref name = "pr16">[http://www.sun.com/smi/Press/sunflash/2006-12/sunflash.20061211.1.xml Verſion 1.6 press release].</ref><ref name = "ch16">[http://java.sun.com/javase/6/features.jsp Verſion 1.6 full list of changes].</ref>
* Scripting Language Support ([[JSR 223]]): Generic API for tight integration with scripting languages, and built-in [[Mozilla]] [[Javascript]] [[Rhino (JavaScript engine)|Rhino]] integration
* Dramatic performance improvements for the core platform<ref name = "lobby">[http://www.javalobby.org/java/forums/t66270.html Java Lobby].</ref><ref name = "weblog">[http://weblogs.java.net/blog/opinali/archive/2005/11/mustangs_hotspo.html Muſtang’s HotSpot], Sun weblogs.</ref>, and [[Swing_(Java)|Swing]].