A brief history of Java
Java was started by James Gosling and his colleagues at Sun Microsystems in 1991. It was originally from the idea of programming to control without relying on CPU used for electronic devices such as TVs, washing machines, microwaves, etc. Therefore, they embarked on building a fast, compact, efficient, device-independent language. Eventually, the “Oak” language was born, which was later renamed Java.
At first, Java was named “Oak” because they are commonly grown in the US, Germany, Romania, and so on. They are also considered as a symbol of that country and a symbol of power. Addictionally, around the office of James Gosling were a lot of oak trees also planted.
In 1995, Oak was renamed Java because the name Oak was previously registered by a company called Oak Technologies. In the same year, the first version of Java was born. In order to get the first Java version, Sun Microsystems engineers had been working very hard for 4 years, from 1991 to 1995. During this time they worked day and night, and drank a lot of Coffee and Tea. The drinks helped them a lot, the cups appeared in their office all the time.
Why was the name Java chosen?
There are many suggested names for the members to select, such as Dynamic, Revolutionary, Silk, Jolt, DNA, … However, they wanted a name reflecting the true nature of technology, which is revolutionary, highly dynamic, unique, and easy to pronounce, etc.
Java is an island in Indonesia, where the first coffee product was produced (called java coffee). Moreover, coffee had been attached to the engineers working for 4 years to create the first version of Java. That is the reason why most of the team members chose Java and as a result, the Java logo is a smoky, flavorful coffee cup.

According to James Gosling, Java is one of the top choices along with Silk. However, due to the uniqueness of Java, most team members selected 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:
Version | Release Date | Features |
JDK Beta | 1995 | — |
JDK 1.0 | January 1996 | This is the first stable version. |
JDK 1.1 | February 1997 | In 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 1998 | Added support for many features, such as Swing and Collection Framework. The methods suspend(), resume() and stop() of Thread class were deprecated. |
J2SE 1.3 | May 2000 | A very small improvement, as it just improved the development environment. |
J2SE 1.4 | February 2002 | It 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.0 | September 2004 | The 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 6 | December 2006 | In 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 7 | July 2011 | Added 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 8 | March 2014 | Added Date and time API, Repeating annotation, JavaFX. |
Java SE 9 | September 2017 | Added Java platform module system update, jshell, XML Catalog, jlink, and the JavaDB was removed from JDK |
Java SE 10 | March 2018 | Added features are local variable type interface, Application class data sharing, Garbage collector interface, etc… |
Java SE 11 | September 2018 | Feature added: Dynamic class file loader, HTTP client, and Transport layer security. JavaFX, Java EE, and CORBA modules have been removed from JDK. |
Java SE 12 | March 2019 | Added Microbenchmark Suite, JVM Constant API, One AArch64 Port, Default CDS Archives etc. |