Skip to main content

Java History and main changes over Java versions


Java SE 7

  1. Codename Dolphin.
  2. Releasing on July 28, 2011.
  3. Better integral literals allowing for underscores as digit separators.
  4. Strings in switch Statements.
  5. Improved Type Inference for Generic Instance Creation.
  6. Improved Compiler Warnings and Errors When Using Non-Reifiable Formal Parameters with Varargs Methods.
  7. Catching Multiple Exception Types and Rethrowing Exceptions with Improved Type Checking .
  8. JVM support for dynamic languages, following the prototyping work currently done on the Multi Language Virtual Machine Compressed 64-bit pointers. Available in Java 6 with -XX:+UseCompressedOops.
  9. Concurrency and collections updates: a lightweight fork/join framework, flexible and reusable synchronization barriers, transfer queues, concurrent linked double-ended queues, and thread-local pseudo-random number generators.
  10. New file I/O library to enhance platform independence and add support for metadata and symbolic links. The new packages are java.nio.file and java.nio.file.attribute.A fully-functional and supported NIO.2 filesystem provider for zip and jar files.
  11. A portable implementation of the standard Elliptic Curve Cryptographic (ECC) algorithms, so that all Java applications can use ECC.
  12. An XRender pipeline for Java 2D, which improves handling of features specific to modern GPUs.
  13. Enhanced library-level support for new network protocols, including SCTP(Stream Control Transmission Protocol) and Sockets Direct Protocol.
  14. Upgrade the components of the XML stack to the most recent stable versions: JAXP 1.4, JAXB 2.2a, and JAX-WS 2.2
  15. Upgrade the supported version of Unicode to 6.0
  16. Locale enhancement: upgrade the java.util.Locale class to support IETF BCP 47 (Tags for Identifying Languages) and UTR 35 (Local Data Markup Language).
  17. Separate user locale and user-interface locale: upgrade the handling of locales to separate formatting locales from user-interface language locales.
  18. Upgrade class-loader architecture: modifications to the ClassLoader API and implementation to avoid deadlocks in non-hierarchical class-loader topologies.
  19. Method to close a URLClassLoader: a method that frees the underlying resources, such as open files, held by a URLClassLoader.
  20. Upgrade the networking code to use the Windows Vista IPv6 stack, when available, in preference to the legacy Windows stack.
  21. Gervill sound synthesizer: drop the old, proprietary, encumbered sound synthesizer in favor of Gervill, a synthesizer created as a proposal for the Audio Synthesis Engine Project.
  22. Enhancements to the existing com.sun.management MBeans to report the recent CPU load of the whole system, the CPU load of the JVM process, and to send JMX notifications when GC events occur.
  23. Introduction to JDBC 4.1 with  the following features:


  • The ability to use a try-with-resources statement to automatically close resources of type Connection, ResultSet, and Statement.
  • RowSet 1.1: The introduction of the RowSetFactory interface and the RowSetProvider class, which enable you to create all types of row sets supported by your JDBC driver.

Find the Java 7 deprecated code @ http://download.oracle.com/javase/7/docs/api/deprecated-list.html

Oracle has published @ 27-June-2011 , the first release candidate for JDK 7 : http://jdk7.java.net/download.htmlx


Java SE 6 (December 11, 2006)

  1. Codename Mustang.
  2. 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.
  3.  The current revision is Update 26 which was released in June 2011.
  4. Support for older Win9x versions dropped. Unofficially Java 6 Update 7 is the last release of Java shown to work on these versions of Windows. This is believed to be due to the major changes in Update 10.
  5. Scripting Language Support. Generic API for tight integration with scripting languages, and built-in Mozilla JavaScript Rhino integration.
  6. Dramatic performance improvements for the core platform and Swing.
  7. Improved Web Service support through JAX-WS.
  8. JDBC 4.0 support.
  9. Java Compiler API, an API allowing a Java program to select and invoke a Java Compiler programmatically.
  10. Upgrade of JAXB to version 2.0: Including integration of a StAX parser.
  11. Support for pluggable annotations.
  12. 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).
  13. JVM improvements include: synchronization and compiler performance optimizations, new algorithms and upgrades to existing garbage collection algorithms, and application start-up performance.
  14. Java Deployment Toolkit, a set of JavaScript functions to ease the deployment of applets and Java Web Start applications.
  15. Java Kernel, a small installer including only the most commonly used JRE classes. Other packages are downloaded when needed.
  16. Java Quick Starter, to improve cold start-up time.
  17. Improved performance of Java2D graphics primitives on Windows, using Direct3D and hardware acceleration.
  18. A new Swing look and feel called Nimbus based on synth.
  19. Next-Generation Java Plug-In: applets now run in a separate process and support many features of Web Start applications.
  20. The -XX:+DoEscapeAnalysis option directs the HotSpot JIT compiler to use escape analysis to determine if local objects can be allocated on the stack instead of the heap.
  21. Includes “tiered” compilation in the Server VM that enables it to start quickly as does the Client VM, while achieving superior peak performance. This feature is enabled by specifying -server and -XX:+TieredCompilation command options.

Find the Java 6 deprecated code @ http://download.oracle.com/javase/6/docs/api/deprecated-list.html



J2SE 5.0 (September 30, 2004)

  1. Codename Tiger.
  2. J2SE 5.0 entered its end-of-life on April 8, 2008 and is no longer supported by Sun as of November 3, 2009.
  3. Enhanced for loop(for each for loop).
  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. Assertions added in java 1.5
  6. AutoBoxing/Unboxing, automatic conversions between primitive types (such as int) and primitive wrapper classes (such as Integer).
  7. Generics (example: typed Collections, Set(<String>) , provides compile-time (static) type safety for collections).
  8. Varagrs, variable arguments. (example : for printf() function,allows variable number of different arguments).
  9. StringBuilder class in jdk 1.5 (java.lang package).
  10. Annotations, allows language constructs such as classes and methods to be tagged with additional data, which can then be processed by metadata-aware utilities.
  11. Static imports.
  12. Fix the previously broken semantics of the Java Memory Model, which defines how threads interact through memory.
  13. Automatic stub generation for RMI objects.
  14. Swing: New skinnable look and feel, called synth.
  15. The concurrency utilities in package java.util.concurrent.
  16. Scanner class for parsing data from various input streams and buffers.
  17. Java 5 is the last release of Java to officially support the Microsoft Windows 9x line (Windows 95, Windows 98, Windows ME) :  http://www.java.com/en/download/faq/java_5_eol.xml

Unofficially, Java SE 6 Update 7(1.6.0.7) is the last version of Java to be shown working on this family of operating systems. http://java.com/en/download/help/sysreq.xml.

Find the Java 5 deprecated code @ http://download.oracle.com/javase/1.5.0/docs/api/deprecated-list.html.


J2SE 1.4 (February 6, 2002)

  1. Codename Merlin.
  2. This was the first release of the Java platform developed under the Java Community Process as JSR 59.
  3. Assert keyword.
  4. Regular expressions modeled after Perl regular expressions.
  5. Exception chaining allows an exception to encapsulate original lower-level exception.
  6. Internet Protocol version 6 (IPv6) support.
  7. Non-blocking NIO (New Input/Output).
  8. Logging API.
  9. Image I/O API for reading and writing images in formats like JPEG and PNG.
  10. Integrated XML parser and XSLT processor (JAXP).
  11. Integrated security and cryptography extensions (JCE, JSSE, JAAS).
  12. Java Web Start included.
  13. Preferences API (java.util.prefs)


J2SE 1.3 (May 8, 2000)

  1. Codename Kestrel.
  2. HotSpot JVM included.
  3. RMI was modified to support optional compatibility with CORBA.
  4. JavaSound.
  5. Java Naming and Directory Interface (JNDI) included in core libraries (previously available as an extension).
  6. Java Platform Debugger Architecture (JPDA).
  7. Synthetic proxy classes.


J2SE 1.2 (December 8, 1998)

  1. Codename Playground.
  2. This and subsequent releases through J2SE 5.0 were rebranded as 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).
  3. strictfp keyword.
  4. The Swing graphical API was integrated into the core classes.
  5. Sun’s JVM was equipped with a JIT compiler for the first time.
  6. Java Plug-in.
  7. Java IDL, an IDL implementation for CORBA interoperability.
  8. Collections framework.



JDK 1.1 (February 19, 1997)

  1. An extensive retooling of the AWT event model
  2. Inner classes added to the language
  3. JavaBeans
  4. JDBC
  5. RMI
  6. Reflection which supported Introspection only, no modification at runtime was possible.



JDK 1.0 (January 23, 1996)

  1. Codename Oak.
  2. Initial release
  3. The first stable version was the JDK 1.0.2 is called Java 1

Comments

Popular posts from this blog

Eclipse plug-in to create Class and Sequence diagrams

ModelGoon is an Eclipse plug-in avaiable for UML diagram generation from Java code. It can be used to generate Package Dependencies Diagram, Class Diagram, Interaction Diagram and Sequence Diagram. You coud get it from http://marketplace.eclipse.org/content/modelgoon-uml4java Read more about it and see some vedios about how to create the class and sequence diagram @ http://www.modelgoon.org/?tag=eclipse-plugin Find some snapshots below which gives an idea about the diagram generation.

How to convert your Blogger Blog to PDF ?

You can use a website called "blogbooker" @  http://www.blogbooker.com/blogger.php   to convert your Blogger Blog to a PDF . Please find the steps below : 1. Save your blog as an xml using Blogger Settings - Other - Export Blog option 2. Go to the website " http://www.blogbooker.com/blogger.php " and select this XML , give your blog address and select the options like date range, page size, font, ... 3. Click the  "Create Your BlogBook" button to view and save your blog as PDF

ATG Search Indexing - behind the scene steps explained

Read more about the search indexing @  http://tips4ufromsony.blogspot.com/2011/11/atg-search-architectural-flow-search.html ATG search indexing involves index file creation, deploying and copying the index file to the search engine's box. The steps can be divided into Initial stage, Preparing Content, Indexing and Deploying. Please find below the detailed analysis of each step. 1. Initial stage:        a. Check whether the folder deployshare configured correctly @ LaunchingService.deployShare  ( \atg\search\routing\LaunchingService.deployShare ). Lets assume that it is configured to \Search2007.1\SearchEngine\i686-win32-vc71\buildedIndexFiles.        b. Lets assume that the index file folder ( \Search2007.1\SearchEngine\i686-win32-vc71\indexFiles)  has the following segments (folders) currently :                     66900009 @ index engine box        66900010 @ search engine box        c. Lets assume that the component SearchEngineService has the "

SSL configuration in JBoss

To configure an SSL port with keystore , check the following steps: 1. Generate the keystore with the following command ( using the java keytool command) keytool -genkey -alias tomcat -keyalg RSA -keystore NAME_OF_KEYSTORE -validity NUMBER_OF_DAYS ( For more details check the url http://download.oracle.com/javase/1.5.0/docs/tooldocs/windows/keytool.html ) 2. Copy the file into the jboss/server/<NAME>/conf/ directory 3. Edit the server.xml in the following path JBoss version 4.0.4 = jboss/server/<NAME>/deploy/jbossweb-tomcat55.sar/ JBoss version 4.2.2 = jboss/server/<NAME>/deploy/jboss-web.deployer/ 4. For JBOSS 4.0.4 the SSL-connector should be configured like: <!– SSL/TLS Connector configuration using the admin devl guide keystore     –> <Connector port=”THE_PORT_YOU_LIKE” address=”${jboss.bind.address}” maxThreads=”100? strategy=”ms” maxHttpHeaderSize=”8192? emptySessionPath=”true” scheme=”https” secure=”true” clientAuth=”false” keystore

ATG Search architectural flow : Search and Index

I would like to explain the high level ATG Search implementation architecture ( for an online store) through the above diagram. In this diagram 1.x denotes the search functionality and 2.x denotes the indexing functionality. I have given JBoss as the application server. Physical Boxes and Application Servers in the diagram ( as recommended by ATG )  : Estore ( Commerce ) Box --> The box with the estore/site ear (with the site JSPs and Java codes). Search Engine Box --> The box with the search engine application running. Indexing Engine Box --> The box with the indexing engine application running. CA (Content Administration) Box --> The box with the ATG CA ear ( where we could take CA -BCC - Search Administration and configure the search projects) . Search Indexer Box --> The box with the ATG Search Index ear ( to fetch the index data from repository). Note that the engine performing indexing will need access to the data it is indexing, which for production