Java is a platform independent programming language which is presently most prominent, familiar and programmer friendly among all other products used in the development and deployment of web based, mobile, and computer applications. The ability to run on any Operating system and the consistency and uniformity in rendering the visual interface on different platforms is the key strength of the language. Also, Sun’s motive to release Java as an open source programming language defines what it is today in terms of popularity and its wide usage in different fields.
From OAK To Java
“Green Team” members James Gosling, Mike Sheridan and Patrick Naughton are the designers of the Java Language. The newly developed language was named Oak after an oak tree that stood outside the office of James Gosling. It was later renamed as Green and then to Java as it is said that the creators were very fond of Java (Coffee) and that they had consumed it in large quantities during the course of the development of the language. Though the initial intent of Oak was directed at consumer electronics, it was found to be well suited for the world wide web by Bill Joy, one of the co-founders of Sun. Oak was renamed to Java as it was too close to another product. Java Applets were initially used over the web.
The first major release was JDK 1.0 on January 21, 1996. (The initial version of Java, code named Oak) JDK 1.1 was released on Feb 19, 1997 with features like inner classes, JDBC, RMI, reflection, JIT and Java Beans.
J2SE 1.2 was released on Dec 8, 1998 which featured Swing and Java IDL (an implementation for CORBA
interoperability). Java Collection framework was also part of this release.
J2SE 1.4 released on Feb 6, 2002 featured regular expressions, Java Web Start, IPV6 support, image I/O API’s and Preference API’s.
A host of features like Autoboxing, Enumerations and Generics was incorporated into J2SE5.0 released on September 30, 2004.
Java SE 6.0 released on Dec 11, 2006 featured Java Compiler API, Pluggable annotations, GUI improvements and significant improvements to the JVM with regard to compiler performance optimizations and new garbage
Java SE 7 released on July 28,2011 features include JVM Support for dynamic languages, compressed 64-bit
pointers, XRenderer pipeline for Java 2D.
Most Familiar Java Products
JavaFX is used to develop rich internet applications which runs over a wide variety of devices. They operate consistently across diverse platforms. They are not a replacement to Swing. However, swing components can be embedded into JavaFX applications using the swing library supported by JavaFX.
2. Java ME
The Java Micro Edition was built with the intention to facilitate development and deployment for mobile and embedded devices like set top boxes, mobiles, PDA’s and printers. These applications can be ported across devices.
3. Java DB
An open source Database (Apache Derby) which supports standard ANSI/ISO SQL through JDBC. Java DB is
included as part of the JDK.
Some other products are Java Embedded, Java EE, Web Tier and the like.
Change in Ownership – Impact on Java
When oracle took over Sun, the Java community had fears on how the acquisition would impact Java negatively as Oracle was not Open source friendly. However these fears have not materialized. Oracle moved positively with Java and got vendors like IBM, Apple and SAP to the OpenJDK open source implementation of Java. Java SE 7 was shipped and there are realistic deadlines being set for the future Java releases. The situation with Java is better now than it was before the 2 years of the acquisition.
Java is secure. There are mechanisms in place to ensure the execution of only legitimate code by means of a byte code verifier. It ensures that there is no violation of Java specifications present in the class files being executed. It also checks for violations of memory management, stack underflows/overflows and illegal data type casts. Moreover, java ensures security by means of access modifiers present as part of the java language specification. Applet safety is maintained by means of policy file specifications on the client machines, in order to prevent unsafe applets from making modifications to critical resources on client systems. Apart from these Java also provides security packages for programmers to bring about an encryption model for critical communications that an application would need to provide its users with. Most of the encryption algorithms are covered as part of the package.
Java can also be used to develop time critical applications. Real Time Specification for Java (RTSJ) defines and addresses the issues pertaining to the support to be provided by Java for realtime environments. The priority based threading model in java provides for realtime capabilities.
Here is the Java tutorial for absolute beginners: