Introduction to Java

Java was the first programming language, introduced by the Sun Microsystems which is not tied to a particular operating system or a microprocessor. It was originally developed to build software for consumer electronics.

Before Java, C++ was used to develop software for consumer electronics, but C++ emphasise on speed not on reliability. In consumer electronics reliability is more important than speed. It occurred to James Gosling to create a new language, which they called Oak. It happened in August 1991.

Several years later, Oak renamed to Java. In 1993, Arthur Van Hoff joined Sun Microsystems. He implemented Java compiler in Java which Gosling had previously implemented in C language. In December 1995, Sun announced Borland, Mitsubishi Electronics, Sybase and Symantec, IBM and Adobe to license Java. Microsoft also signed a letter of interest with Sun Microsystems for Java technology source license.

About Dr. James Gosling

James Gosling
  • James Gosling received a B.Sc in Computer Science from the University of Calgary, Canada in 1977.
  • He received a PhD in Computer Science from Carnegie mellon University in 1983.
  • He worked for many years as VP and Fellow at Sun Microsystems.
  • He built Satellite Data Acquisition System, a multiprocessor version of Unix, several compilers, mail systems, window managers, text editor, drawing editor etc.
  • He created the original design of the Java programming language and implemented its original compiler and virtual machine.
  • He was the Chief Technology officer of Sun’s Developer Products Group and CTO of Sun’s Client Software Group.

Java Development Kit (JDK)

Java Development Kit (JDK) is a software development environment used for developing Java applications. It contains tools needed to develop the Java programs and JRE to run it.
JDK include the following tools:
  • Java Runtime Environment (JRE)
  • Compiler (javac)
  • Interpreter/Loader (java)
  • Archiver (jar)
  • Appletviewer
  • Documentation generator (javadoc)
  • other tools needed in Java development.

You will need JDK, if you want to write your own programs, compile and interpret them but if you want to run java programs only, then JRE is sufficient. JRE is targeted for execution of byte code (.class files),
i.e., JRE = JVM+Java-API (a collection of prewritten packages, classes and interfaces) +runtime libraries.

As shown below:
real java jdk jre

JDK Versions

Versions Released In Code Name New Features
JDK 1.0 Jan 23, 1996 Oak Java 1.0 is offi cially released,consisting a few hundred classes.
JDK 1.1 Feb 19, 1997 - JDBC, Inner Classes, RMI,Refl ection API.
JDK 1.2 Dec 08, 1998 Playground Collections Framework, Swings Graphical API, JIT Compiler, JIDL (Java Interface Defination Language).
JDK 1.3 May 08, 2000 Kestrel Java Sound, Hotspot JVM, JDNI (Java Naming and Directory Interface), JPDA (Java Platform Debugger Architecture)
JDK 1.4 Feb 06, 2002 Merlin Internet Protocol version 6 (IPv6) support, logging API, image I/O API, JAXP (integrated XML parser and XSLT processor), Preferences API
JDK 1.5 Sep 30, 2004 Tiger Static Import, Generics, Enhanced for loop, var-args, Annotations, Enumerations, Concurrency Utilities, Scanner Class.
JDK 1.6 Dec 11, 2006 Mustang Improved JVM, Java Compiler API, JDBC 4.0, Scripting Language Support.
JDK 1.7 July 28, 2011 Dolphin Strings with switch statement, new network protocols etc.
JDK 1.8 Sep. 09, 2013 Spider Lambda Expressions, Small VM,Parallel Array Sorting, New Date & Time API etc.

Java Runtime Environment(JRE)

Java Runtime Environment contains JVM, class libraries, and other supporting files. It does not contain any development tool such as compiler, debugger etc.

Actually JVM runs the program, and it uses the class libraries, and other supporting files provided in JRE. If you want to run any java program (.class file), you need to have JRE installed in the system.

The Java Virtual Machine provides a platform-independent way of executing code. Programmers can concentrate on writing software, without having to be concerned with how or where it will run. But note that JVM itself is not platform independent. It only helps java to be executed in a platform-independent way.

When JVM has to interpret the byte codes to machine language, then it has to use some native or operating system specific language to interact with the system. One has to be very clear on platform independence concept. Even there are many JVMs written on Java, however they too have little bit of code that is specific to the operating system.

About the Author
Rajesh K. Bansal (SCJP-Sun Certified Java Programmer)
20 Years experience in Training & Development. Founder of realJavaOnline.com, loves coding in Java(J2SE, J2EE), C++,PHP, Python, AngularJS, Android,MERN Stack(MongoDB,Express,ReactJS,NodeJS). If you like tutorials and want to know more in depth about Java , buy his book "Real Java" available on amazon.in.
#Email : bcebti@gmail.com #Contact : 98722-46056
Available on Amazon
Card image cap
Under the guidance of Founder & Author of "realJavaOnline.com". M:9872246056
Card image cap