×

History and Evolution of Java

Java is invented by James Gosling, Patrick Naughton, Chris Warth, Ed Frank, and Mike Sheridan at Sun Microsystems, Inc. in 1991. Java is related to C++, which is inherited from the language C. The characters of Java is inherited from C and C++ language. It took approx. Eighteen months to develop the first working version. It was first named as “Oak” but was renamed as “Java” in 1995. It is publicly announced in the spring of 1995.

The basic idea behind creating this language is to create a platform-independent language that is used to develop software for consumer electronic devices such as microwave ovens, remote controls, etc. Initially, it was not designed for Internet applications.

Other languages have the problem that they are designed to compile the code for a specific platform. Let us take the example of C++, it is possible to compile C++ code for any processor but to do so it requires a full C++ compiler targeted for that particular processor and platform. That makes it expensive and time-consuming. To overcome this, Gosling and others started working on a portable and platform-independent language, this leads to the creation of Java.

Java had an extreme effect on the Internet by the innovation of a new type of networked program called the Applet. An applet is a Java program that is designed to be transmitted over the internet and executed by the web browser that is Java-compatible. Applets are the small program that is used to display data provided by the server, handle user input, provide a simple function such as calculator etc.

Java solves the Security and the portability issue of the other language that is being used. The key that allows doing so is the Bytecode. Bytecode is a highly optimized set of instruction that is designed to be executed by the Java Virtual Machine (JVM). Java programs are executed by the JVM also helps to make Java a secure programming g language because the JVM contains the application and prevents it from affecting the external systems.

Evolution of Java:

VersionRelease DateFeatures
JDK Beta1995--
JDK 1.0January 1996This is the first stable version.
    JDK 1.1    February 1997In this version, added many new library elements, redefined the way of handling events, and reconfigured most of the libraries of 1.0 and deprecated some features defined by 1.0. Added inner class, JavaBeans, JDBC, RMI, JIT (Just In time) compiler.
    J2SE 1.2    December 1998Added support for many features, such as Swing and Collection Framework. The methods suspend(), resume() and stop() of Thread class were deprecated.
J2SE 1.3May 2000A very small improvement, as it just improved the development environment.
J2SE 1.4February 2002It added some upgrades such as the new keyword assert, chained exception and a channel-based I/O subsystem. Also added some feature to the collection framework and the Networking classes.
J2SE 5.0September 2004The significant new features added to this version are – Generics, Annotation, Autoboxing and Auto-unboxing, Enumeration, for-each, variable-length argument, Static import, Formatted I/O, Concurrency utilities.
Java SE 6December 2006In this version the API libraries and several new packages got enhanced and offered improvements to the run time. It supports JDBC 4.0.
Java SE 7July 2011Added JVM support for dynamic language, String in the switch, Automatic resource management in try-statement, support for underscore in integers, binary integer literals etc…
Java SE 8March 2014Added Date and time API, Repeating annotation, JavaFX.
Java SE 9September 2017Added Java platform module system update, jshell, XML Catalog, jlink, and the JavaDB was removed from JDK
Java SE 10March 2018Added features are local variable type interface, Application class data sharing, Garbage collector interface, etc…
Java SE 11September 2018Feature added: Dynamic class file loader, HTTP client, and Transport layer security.  JavaFX, Java EE, and CORBA modules have been removed from JDK.
Java SE 12March 2019Added Microbenchmark Suite, JVM Constant API, One AArch64 Port, Default CDS Archives etc.

Related Topics

Java Integer lowestOneBit()

The lowestOneBit () method of Java Integer class returns an int value with at most a single one-bit, in the position of the lowest-order one-bit in the specified int value.  Syntax public...

2 minutes read.

How to Convert String to boolean in Java

How to Convert String to boolean in Java There are two methods to convert String to boolean: Using parseBoolean(string) method Using valueOf(string) method If the string contains "True," "true," or "TRUE,"...

3 minutes read.

Java Integer rotateRight() method

The rotateRight() method of Java Integer class returns the value obtained by rotating the  2’s complement binary representation of the given integer value right by the specified number of bits. Syntax public...

1 minute read.

Java Generate UUID

What java Generate UUID? A 128-bit long value that is universally unique serves as the basis for the terms UUID (Universally Unique Identifier) and GUID (Globally Unique Identifier). Hexadecimal (octet) digits...

5 minutes read.

Java float vs double

Java : Java is a pure object oriented language. It was introduced by James Gosling in the year 1995. The first public implementation of java was done by sun micro systems...

7 minutes read.

Java Interface Lock

A synchronisation method called the Lock interface is available as of JDK 1.5. It is comparable to a synchronised block but more complex and versatile. The package java.util.concurrent contains the...

4 minutes read.

this keyword in Java

The 'this' keyword is an essential notion in Java. We'll go through the 'this' keyword in depth and provide some examples of how it's used in Java. In Java, the term...

5 minutes read.

How to Iterate a HashMap in Java?

Hash-map is a class of Java collections framework which has the functionality to implement the Map interface of Java. It stores the data in key-value pairs and can be accessed...

5 minutes read.

Deadlock in Java

Deadlock is when two or more processes wait for the state to do their tasks, but none of them can do so. It is a very common problem that one...

6 minutes read.

Empty Statement in Java

The three sorts of statements in Java are control, expression, and declaration statements. Additionally, another statement is referred to as an empty statement. In this section, we will discuss about...

4 minutes read.

Getting the Day from the Date in Java?

To extract the day's name from the date, we will write Java application. When dealing the date and time in Java, the following classes are used. Class for Calendars: This class is...

6 minutes read.

URLConnection class in Java

A communication channel between the URL and the program is represented by the Java URLConnection class. It may be utilized to read from and write to the given resource the...

4 minutes read.

Longest Odd Even Subsequence in Java

In order to solve the Java problem known as the longest odd-even subsequence, one must identify a sequences in a non-negative array having size s that alternately includes odd and...

6 minutes read.

Array and String with Examples in Java

Array in Java: An array in Java is a group of variables with similar types that have a common name. The arrays used in Java differ from those used in C/C++. Key...

6 minutes read.

Java Thread Dump Analyzer

Thread: A thread is a PC program that is stacked into the PC's memory and is under execution. It tends to be executed by a processor or a bunch of processors....

15 minutes read.

The Diamond Operator in Java 7

The Diamond operator is a comparatively recent Java operator originally developed in JDK 7 to enhance type identification and eliminate boilerplate Java code. The Diamond operator is characterized by a...

2 minutes read.

Practical Number in Java

In this tutorial, we will understand what is meant by practical numbers. We will understand it throughthe aid of examples and implementation in a java programming language. The practical numbers...

5 minutes read.

How to check the Java version in cmd

To make programs that can run on our systems, we need to install programming language-related software in our systems. Different programming languages require different types of software, aka IDEs (Integrated...

5 minutes read.

Duodecimal in Java

Duodecimal is a notation style in which a number with a base of 12 is referred to be a duodecimal number. In Java, we can use to convert duodecimal integers...

2 minutes read.

Enterprise Java Beans

One of the many Java APIs for the common development of corporate software is Enterprise Java Beans (EJB). An EJB, a server-side software component, contains the business logic of an...

4 minutes read.