Read this article and you will learn:

Java is now a hot programming language in the Internet industry, such as Ali, Meituan and other big companies, the technical system is built on Java. These big factories are also the technology vane of many emerging Internet enterprises, so the use of Java is quite wide, and the demand for Java programmers is quite large.

Java is not just a hot cup of coffee, it can be a dependable rice bowl!

Snail has been in touch with Java since college, and has always used Java as the programming language after work. I hope to combine my own knowledge system and practical experience to produce a series of tutorials on Java learning, which can help students who are interested in Java or who are interested in the position of Java programmer.

To learn a thing, we should first know what it is, based on what kind of background, and how to evolve afterwards. This article gives you a brief history of Java.

Java is a programming language, and other programming languages, it solves the problem of communication and communication between people and computers, programmers this special crowd can write, the computer can identify, so as to design the function of the computer, convenient people’s work and life.

So how did Java come about? Why do you need it when there are other programming languages?

Since programming languages run on computers, let’s first look at the evolution of computer system hierarchies and programming languages.

Early computer systems were programmed in machine Language, which is also known as the First Generation Programing Language (1GL).

Machine language is simply a string of instructions made up of the binary numbers 0 and 1. Computer hardware can be controlled by a set of instructions.

But if you were to design a program using only zeros and ones, you’d be in trouble, because machine languages are so bad at readability, fault tolerance, and convenience.

So later computer systems use some easy to understand and remember the letters or words to replace a specific instruction, such as: “ADD” to stand for the logical addition and subtraction of numbers, this is the second generation of programming language – assembly language.

Assembly language needs to be converted into machine instructions, so the operating system provides an interface for assembly language and machine interaction. The operating system encapsulates the instruction set architecture and abstracts it into interfaces used by upper users, including user interfaces and underlying services.

Those of you who have studied assembly language will know that assembly language is a low-level language that still has to deal directly with computer hardware, for example by calling memory to store data.

This means that assembly language is not only complex and error-prone to write, it is also poorly portable! If I switch to a slightly different computer hardware, the application will hang.

To solve this problem, modern computer systems support high-level languages. First came the third generation of programming languages — procedural high-level languages that were written to describe the implementation, or “how to do it,” like C.

With the widespread use of procedural high-level languages, more and more people find that they actually do not care about the solution and execution process, they only care about their own input records and the final output results, and expect the rest to be done by the system.

In this way came the fourth generation of programming languages — non-procedural high-level languages, like The Java language, that write “what to do” instead of algorithmic implementation details.

Java was not originally called Java, and its emergence was not inevitable.

In the late 1990s, an American company called Sun set out to develop embedded systems for home appliances. James Gosling was assigned to lead the development of what was internally called project Green. The goal was to write a common control system for the next generation of smart appliances (televisions, microwaves, telephones).

The popular programming language was C++, but C++ wasn’t very useful. First, C++ is complex and prone to misuse by developers. Second, C++ lacks features such as a garbage collection system, portability, distribution and multithreading.

Therefore, Sun chief scientist Bill Joy proposed to develop a new language, based on C++, to develop an object-oriented environment.

James Gosling was working on a new language, and a new language needed a name to show it was alive. When He saw the Oak tree outside his office, He named it Oak.

In the summer of 1992, Green planned to complete development of Oak programming language, class library and Green operating system.

By November 1992, Green planned to convert to Sun’s wholly owned subsidiary, FirstPerson Inc., and was ready to go big.

But when they take this product to carry out business cooperation, but repeatedly hit a wall. The cable industry felt the platform gave customers too much control and refused to work with FirstPerson.

FirstPerson realized he had no future in the TELEVISION industry and brought the company back to Sun.

With the advent of the Internet and the browser, James Gosling’s team was acutely aware that the Internet was evolving in the direction of highly remote interaction.

This was the direction they saw in doing cable networks, so they decided to redirect their efforts and apply the technology from the Green project to the World Wide Web.

In the fall of 1994, the team completed the first Oak-language web browser, WebRunner, which was well received by top management.

As the Oak trademark was registered by a graphics card manufacturer, the name was changed to Java. Java gets its name from the Indonesian island of Java, which is famous for its coffee.

The Java language has a lot to do with coffee, too.

For example, a binary (.class file) compiled from Java source code, if you open it in a hexadecimal editor, will show the first 32 bits as CAFE BABE, which translates to the phrase CAFE BABE.

The following is what I saw when I compiled the demo. Java file into the demo. class file. If you are interested, please try it yourself.

public class Demo{

}

(Attached) file hexadecimal view website:67 tool.com/details/wjs…

For example, there are many library classes in the Java language that have names related to coffee, such as JavaBeans (coffee beans), NetBeans (network beans) and ObjectBeans(ObjectBeans). The SUN and JAVA logo is also a steaming cup of coffee.

In early 1995, Sun released the Java language as a free download and made it available to everyone on the Internet. The Java release is JDK BETA.

JDK stands for Java Development ToolKit, which refers to the Java language Development ToolKit.

WebRunner, a web browser that runs Java programs (also known as Java applets) on web pages, was also released and renamed HotJava.

At the same time, netscape decided to support Java in its browser.

In the months that followed, Java exploded on the Internet, with tens of thousands of people visiting Sun’s website to download the language. There were immediately countless Java applets on the Internet, demonstrating little animations, little games, and so on.

To make it easier for developers to quickly develop complex applications, Sun has a separate Java business line dedicated to Java technology.

In January 1996, Sun released JDK 1.0. This release integrates the Java runtime environment and development tools.

In February 1997, Sun released JDK 1.1. This version adds JDBC, reflection, and more.

With the advent of Java, the web pages of the Internet moved. But the popularity of Adobe’s Flash, a program that can create animations without any knowledge of the programming language, has eroded Java’s position on the browser side.

Why use Java when you have Flash? What is the point of Java? The problem of Java positioning has been plaguing Sun.

It wasn’t until December 1998 that Sun released the second-generation Java Enterprise Platform with JDK 1.2, the first milestone release of Java.

This version introduces the collection framework, Java base class library and other capabilities, while publishing JSP/Servlet, EJB and other enterprise platform specifications.

In June 1999, Sun released three versions of Java: J2SE, J2EE, and J2ME.

J2SE(Java 2 Platform, Standard Edition) : The Standard Edition of Java, which is used for common PC application development. It is the core and foundation of Java technology and also the foundation of J2ME and J2EE programming. J2EE(Java 2 Platform, Enterprise Edition) : Enterprise version of Java for Enterprise application development. J2ME(Java 2 Platform, Micro Edition) : A miniature version of Java, used for the development of embedded devices and consumer appliances. As you can see, Sun has a clear vision for Java: PC, enterprise, and mobile.

JDK 1.2 was hugely influential, with many revolutionary changes to Java and many of its capabilities and specifications still in use today. At this point, The Sun era of Java’s initial period ended, entered the stage of rapid development.

Java Development Phase In May 2000, J2SE 1.3 was released. This version implements Hotspot as the default VIRTUAL machine for Java.

At the same time, the Servlet specification became popular. Along with the rise of the Internet, it became popular with other MVC frameworks in Web1.0.

In February 2002, J2SE 1.4 was released. This version of Java is relatively mature, with full language features like NIO, regular expressions, and XML processors.

At the same time, open source frameworks based on Java language, such as Struts, Hibernate, Spring, and a large number of enterprise application servers, such as WebLogic and JBoss, have emerged, which makes the Java language continue to develop rapidly.

In September 2004, J2SE 1.5 was released. This is the second milestone release of Java, and in recognition of its importance, J2SE 1.5 was renamed J2SE 5.0.

This version adds generics, for-each loops, auto-boxing and unboxing, enumerations, mutable arguments, static imports, annotations, and packages.

In 2005, Sun renamed the three versions of Java to Java SE, Java EE, and Java ME. J2SE 5.0 has also been renamed Java SE 5.

In December 2006, Java SE 6 was released. This version has few improvements in language syntax, but a lot of improvements have been made in virtual machines, making it a relatively mature and stable version. As a result, many enterprises use this version as the Java development version.

That same year Sun made a great decision to open source Java. The Java virtual machine, Java compiler, and Java class libraries are exposed as GPL through the OpenJDK initiative.

At this point, the Java ecosystem has begun to take shape, and the way Java is authorized to use is clear. The development period of Java in the Sun era is over, and it is moving towards its maturity and stability.

Java stabilization In 2009, Oracle acquired Sun and Java continued to be maintained by Oracle. The Sun era of Java is over and the Oracle era is officially over.

In July 2011, Oracle released Java SE 7, which features NIO2 and Fork/Join and packages.

In March 2014, Oracle released Java SE 8(LTS), the third milestone release of Java and one that is supported for a long time (typically 3-5 years).

Not only does this release introduce functional programming capabilities for Lambda expressions, but it also adds many new language features, such as Streams, Date/Time apis, and parallel computation for collections.

Java SE 8, like Java SE 6, is used as a development release by many enterprises. Especially for new Java applications, of course, there are enterprises that choose to upgrade Java 6 applications to Java 8 applications.

In September 2017, Oracle released Java SE 9, which features modularity.

In March 2018, Oracle released Java SE 10, which added features such as local type inference var.

In September 2018, Oracle released Java SE 11(LTS), the next long-supported release after Java SE 8, which began supporting ZGC.

Due to the phasing out of maintenance updates for Java SE 8, plus the excellent features of Java SE 11 and its long term support, it is predicted that many enterprises will use Java SE 11 as a development release in the future.

Starting that year, Oracle also announced that Java would continue to be updated every six months with a major release.

Let’s take a look at the history of Java SE:

1995.5: JDK Beta 1996.1: JDK 1.0 1998.12: JDK 1.2 2000.5: J2SE 1.3 2002.2: J2SE 1.4 2004.9: J2SE 5.0 2006.12: Java SE 6 2011.7: Java SE 7 2014.3: Java SE 8(LTS) 2017.9: Java SE 9 2018.3: Java SE 10 2018.9: Java SE 11(LTS) will be updated with a larger version every six months.