Java has, over the years, undergone a series of changes and evolved into the robust language that it is today.
Java Origins: Embedded Systems (1991-1994)
In 1991, at Sun, c++ was found to be unsuitable for a project on embedded electronics and a need for a portable and platform-independent language arose. Therefore, James Gosling and others created a new language, initially called “Oak” and later renamed to Java. Java failed to capture the market.
Java: A Client-side Wonder (1995-1997)
In 1995, web pages did not have dynamic capability. Java provide this capability. Later, Java gained popularity and served as ideal software for networked computers.
Java: Moved into the middle-tier (1997 to Present)
In the late 1990’s, Sun revised middle-tier capabilities for Java to ensure that it runs on Web/Application Servers. In 1997, Sun defined servlets for java to generate dynamic HTML web pages. Sun also defined Enterprise JavaBeans (EJB) so that business logic can be developed in java. In 1999, sun offered a middle-tier solution for java called java 2 Enterprise Edition (J2EE).
A platform is a hardware or software environment in which a program runs. Some of the commonly used platforms are Microsoft Windows, Linux and Solaris. A number of these platforms such as Linux and Solaris are a combination of operating system and underlying hardware components
The java platform can be considered as an execution engine referred to as virtual engine and not a specific operating system or hardware.
The java platform comprises two essential components:-
The java virtual machine (JVM): The java virtual machine (JVM) is the java runtime environment and is available on different operating systems. It serves as the intermediary between a java program and a host computer. JVM executes compiled java programs (byte codes).
The Java Application Programming Interface (API): Java APIs contain vast libraries of classes and other software components such as interfaces. These are included as a part of the java SDK. Newer releases of Java APIs provide enhanced features with introduction of new class libraries and packages.