Java has been born since 1995, has been more than 20 years of history.
Java is the source of the name: Java is the English name of the Indonesian island of Java, known for its rich coffee. Many of the library class names in the Java language are related to coffee, such as javabeans (coffee beans), NetBeans (network beans), and Objectbeans (object beans) and so on. Sun and Java's logo is also a cup of steaming coffee.
According to James Gosling, the language originally designed for TV set-top boxes has been called the Green Project within Sun. We need a name for our new language. Gosling noticed a dense oak tree outside his office, a very common one in Silicon Valley. So he named Oak the new language. But Oak is the name of another registered company. The name can't be used again.
In the name collection meeting, we put forward a lot of names. Finally, according to everyone's selection order, more than 10 names are arranged into a table, reported to the trademark lawyer. In the first place is silk. Although everyone liked the name, James Gosling the firm objection. The second and third are not through the lawyer. Only the fourth name, everyone's approval and the lawyer's passage, the name is java.
For more than more than 20 years, Java has been world famous like Java Coffee, becoming the dominant enterprise-class application platform. And the Java language is as mellow as coffee.
Sun's Java language Development Group was founded in 1991 to develop consumer electronics markets such as interactive TVs, toasters, and more. Sun insiders called the Project Green (a sun company called Patrick Naughton's engineer was overwhelmed by the C and C language compilers he developed because the APIs were extremely difficult to use. Patrick Naughton decided to switch to next, and he was given the opportunity to study a project called the Stealth program.
The Stealth program was later renamed to the Green Program, and James Gosling and Mike Sheridan joined the Patrick Naughton working Group. The leader of the group was James gosling,41 years old. Joined Sun Microsystem in 1984 and previously worked for an IBM research organization. He was the chief designer of the Sun News window system, though the news was technically successful, but failed commercially, without the good luck of Java. Gosling is a very outstanding programmer, Gosmacs is also written by Gosling, it is the first text editor to implement Emacs in C. In the course of research and development, Gosling a profound understanding of the difference between the development philosophy of consumer electronics and workstation products: Consumer electronics products require high reliability, low cost, standardization, ease of use, and workstation users demand powerful computing power, not the complexity of price and operation. Consumer electronics users do not care about the CPU model or the dedicated expensive RISC processor, they need to build on a standard basis, a series of optional solutions, from 8086-80586 can be on. Starting with C in order to make the entire system platform-independent, Gosling first begins with rewriting the C compiler. The Working Group uses an embedded type platform, which can be used with very limited resources. Many members found that C was too complex to be used incorrectly by many developers. They found that C lacked a garbage collection system, as well as portable security, distributed programming, and multithreading capabilities. Finally, they want a platform that is easily ported to a variety of devices.
Based on the funds available, Bill Joy decided to develop a new language for the C and Mesa languages, and in a report that Joey called "The Future," he suggested that Sun's engineers should develop an object-oriented environment based on C. Initially, Gosling tried to modify and extend the function of C, who himself called the new language C--but later he gave up. He is about to create a new language, named "Oak" by him, named after the tree outside his office. This is the predecessor of the Java language. (It was later discovered that Oak was already a registered trademark of Sun's other language before it was renamed Java). Gosling began to write Java, is not limited to the expansion of the language mechanism itself, more attention to the language of the hardware and software environment, he wants to establish a system, the system runs in a huge, distributed, heterogeneous network environment, to complete the communication between the electronic devices and collaboration work. The virtual machine code method is used in the design of Gosling. That is, the Java language compiled after the virtual machine code, virtual machine code running on an interpreter, each operating system has an interpreter, so that Java becomes platform-independent language. This has the same technical flavor as the Gosling Design Sun News Window System, which is unified in the news user interface with PostScript descriptions, different displays have different PostScript interpreters,
This ensures a good portability of the user interface.
When Patrick Naughton joined the team, the whole work progressed rapidly. Naughton is also the technical backbone of sun, who was once the head of the open Windows project. After 17 months of fighting (like many secret projects to develop new technologies, the Working Group worked day and night for 1992 summers, and they were able to demonstrate part of the new platform, including the green operating system, Oak's programming language, class library, and its hardware. The initial attempt was to target a class of PDA devices, named STAR7, which had a vivid graphical interface and a smart proxy called "Duke" to help the user. The device was shown on December 3, 1992. ), the entire system is completed successfully. It is composed of an operating system, a language (Java), a user interface, a new hardware platform, and three blocks of dedicated chips. and normally, such a project would take 75 people to do three years in sun company. After the project was completed, a presentation and identification was made within sun, and the audience responded by adopting new, very bold techniques in all aspects. Many visitors were very impressed with Java, especially with the attention of Sun's two leaders Scott McNealy and Bill Joy, but the future of Java was uncertain and Prelude was defeated. In November, the green project was transformed into "Firstperson Co., Ltd.", a wholly owned subsidiary of Sun Company, and the team was rescheduled to Artaud. The Firstperson team was interested in building a highly interactive device, and when Time Warner released a request for a proposal for a TV set-top box (request for Proposal), Firstperson changed their goal as a response to the request for comment, A proposal for a set-top box platform is presented. But the cable industry feels Firstperson's platform gives users too much control, so Firstperson's bid is lost to SGI. Another deal with 3DO's set-top box was unsuccessful, as their platform could not produce any benefit in the television industry, and the company returned to Sun. Firstperson has been insisting on the development of a dedicated top-box operating system until the beginning of 1994, but the practice proves that the market is not yet mature. For example, several interactive cable TV networks have failed in their experiments. Naughton immediately realized that the direction of research should be shifted. With Naughton's efforts, research began to shift to online services, CD-ROM and web-based desktops. Finally Firstperson dissolved, some people went to Sun Interactive to develop digital video data servers, and the other part began to use Java for Web-based desktop systems.
The turning point of the Java language was 1994 (Java application July 1994, after a three-day brainstorming discussion, John Gaigi, James Gosling, Bill Joy, Patrick Naughton, Wayne Ross for and Eric Skumi, the team decided to once again change the goal of the effort, this time they decided to apply the technology to the World Wide Web. They believe that with the advent of mosaic browsers, the Internet is evolving to the same highly interactive vision that they see in the cable network. As a prototype, Patrick Naughton wrote a small web browser, Webrunner, and later renamed HotJava. In the same year, Oak was renamed Java. ), WWW has developed in full swing. Gosling realizes that WWW requires a neutral browser that does not rely on any hardware platform or software platform. It should be a high-real-time, reliable and secure, interactive browser. So Gosling decided to develop a new web browser in Java.
2 History of the Java language
The work was carried out by Naughton and Jonathan Payne, and by The fall of 1994 (October 1994, the HotJava and the Java platform presented the company's top-level presentations. The Java 1.0a version was available for download in 1994, but the first public release of Java and HotJava browser took place at the Sunworld conference on May 23, 1995. Sun's scientific guidance John Gaigi announces Java technology. The announcement was made in conjunction with the astonishing release of the executive vice president of Netscape, Marc Andreessen, announcing that Netscape would include support for Java in its browser. In January 1996, the company set up a Java business group, specializing in the development of Java technology. ), completed the development of the webrunner work. Webrunner was the predecessor of HotJava, a prototype system that showcased the broad market prospects that Java could bring, and it was important to impress Sunlab two leaders: Bert Sutherland and Eric Schmidt, Because these two people are Sun's chief technical officer. In particular, Sun's president, McNealy, has a strong belief in Java, for Java to enter the www. As McNealy expected, Webrunner renamed to HotJava, and published on May 23, 1995, causing a huge stir in the industry, the status of Java has been affirmed. McNealy's superior insight and decisive decision-making saved the technology that almost locked into the file cabinet. After a year of trial and improvement, Java version 1.0 was finally officially published in early 1996. Java has entered the mainstream computing model: At present, 67% of the world's large enterprises in the use of Java to develop their own information systems; More than 200 companies have obtained Java technology license from Sun Company; more than 400 applications get 100% pure Java certificates Java developer Camp has more than 2.5 million members .... Java from a small programming development tool in the 1995, developed to today can drive from smart cards, small consumer devices to large data center Java platform, its development speed is amazing, let us review its development process:
May 23, 1995, the Java language was born;
January 1996, the first jdk-jdk1.0 was born;
In April 1996, 10 of the most important operating system vendors affirmed that Java technology would be embedded in their products;
In September 1996, about 83,000 Web pages were created using Java technology;
February 18, 1997, JDK1.1 released;
April 2, 1997, the JavaOne meeting, the participation of more than 10,000 people, the record of similar meetings in the world at that time;
In September 1997, Javadeveloperconnection community members exceeded 100,000;
In February 1998, JDK1.1 was downloaded more than 2,000,000 times;
Java 2 Enterprise Platform (j2ee1.2) was released on December 8, 1998;
In June 1999, Sun released three versions of Java: Standard Edition (J2SE), Enterprise Edition (EE) and mini-version (J2ME);
May 8, 2000, JDK1.3 released;
May 29, 2000, JDK1.4 released;
Nokia announced June 5, 2001 that it will sell 100 million Java-enabled handsets by 2003;
September 24, 2001, j2ee1.3 released;
j2se1.4 was released on February 26, 2002, and since then Java has significantly improved computing power;
September 30, 2004, j2se1.5 released as another milestone in the development of the Java language. To indicate the importance of this version, j2se1.5 renamed Java SE 5.0;
In June 2005, the JavaOne conference was held and Sun disclosed Java SE 6. At this point, various versions of Java have been renamed to remove the number "2": J2me renamed Java ME,J2SE renamed Java SE,J2EE to Java EE;
December 2006, Sun Company released JRE6.0;
December 2009, Sun releases Java EE 6;
In November 2010, because Oracle was unfriendly to the Java community, Apache threatened to quit JCP;
July 2011, Oracle releases Java SE 7;
March 2014, Oracle published Java SE 8;
Java SE 9 Oracle announces September 2016 release
J2me
J2me--java 2 Micro Edition for embedded Java consumer platform;
In December 2000, Sun announced that it would launch the JAVA2 platform Micro (J2ME) development and the Mid Mobile Information Device Specification profile for the Palm OS platform. The launch of these new products will make it easier for more than 2.5 million Java technology developers to create applications for the common Palm OS platform. In addition, sun and Palm will also work with other experts in the industry through the JCP (Java communityprocess) project to determine the technical specifications of the programming interface for personal digital assistants (PDAs). Developers benefit from the ability to use their Java technology experience to configure solutions on the Palm OS platform, and end users benefit from the ability to use J2ME-written applications for new business, business, entertainment, and communications solutions. With the Java Technology Development Plan relative to the Palm OS platform, developers will have standardized solutions for industry applications.
J2se
J2se--java 2 standard Edition for workstations, PC Java standards platform.
Following the release of the JAVA2 platform JDK1.2, Sun has released the J2SDK1.4BETA2 version of j2sdk1.3,j2sdk1.3.1,2001 in September. They're all support-based calculations.
JAVA2 standard platform for the fee. JAVA2 Standard Platform embodies the open spirit of sun, known as "Esperanto on the Internet", published on the internet for everyone to enjoy free, even the source code is not confidential, can be downloaded for free online.
J2ee
The J2EE--JAVA2 Enterprise Edition scalable Business-class application JAVA2 platform.
In January 2001, Sun held a press conference in San Francisco about the JAVA2 Platform Enterprise Edition (Java EE). Java EE is a specification for distributed enterprise Software component architectures with Web performance, higher performance, flexibility, simplified integration, convenience, and interoperability between Java EE servers. There are currently 9 companies that have licensed Java EE technology to launch a compatibility product based on the Java EE technology. These companies have passed various tests in the Java EE Compatibility Test (CTS) to meet all the requirements of the Java EE Technology brand. Currently, 25 companies hold licenses for the Java EE platform, and they represent the 76%~90% vendors in the application server market.
Scott McNealy, President of SUN Microsystem, says Java has opened up a new era for the Internet and WWW. The birth of Java will have a profound impact on the entire computer industry!
JDK Version 1.0
- The development Code is Oak (oak), which was released in 1996-01-23.
JDK Version 1.1
- Issued in 1997-02-19.
- The new features introduced include:
- Introduction of JDBC (Java Database Connectivity);
- Support for internal classes;
- Introducing Java Beans;
- Introduction of RMI (Remote Method invocation);
- Introduce reflection (for introspection only).
J2SE Version 1.2
- The development code is playground (Playground), released in 1998-12-08.
- The new features introduced include:
- Introduction of the Set (Collection) framework;
- Do memory mapping for string constants;
- Introducing the JIT (Just in time) compiler;
- Introduce the digital signature of packaged Java files;
- Introducing a policy tool to control authorization access to system resources;
- Introduction of JFC (Java Foundation Classes), including Swing 1.0, drag-and-drop and Java class library;
- Introduction of Java plug-ins;
- Introduction of scrollable result sets, blobs, CLOB, bulk updates, and user-defined types in JDBC;
- Add sound support to applets.
J2SE Version 1.3
- The development code is Kestrel (Red Falcon), released in 2000-05-08.
- The new features introduced include:
- Introduction of Java Sound API;
- Jar file index;
- A lot of optimizations and enhancements have been made to all aspects of Java.
J2SE Version 1.4
- The development code is Merlin (Hayabusa), released in 2004-02-06 (first issued under JCP).
- The new features introduced include:
- XML processing;
- Java Print Service;
- introduction of logging API;
- Introduction of Java Web Start;
- Introducing the JDBC 3.0 API;
- introduction of assertions;
- Introduction of Preferences API;
- Introduction of chain-type exception handling;
- Support IPv6;
- supports regular expressions;
- Introduces the image I/O slot machine API.
Java Version SE 5.0
- The development code was tiger, which was released in 2004-09-30.
- The new features introduced include:
- introduction of generics;
- Enhance the loop, you can use the iterative mode;
- Automatic box packing and automatic unpacking;
- Type-Safe enumeration;
- variable parameters;
- static introduction;
- Meta data (annotations);
- Introduce instrumentation.
Java Version SE 6
- The development code is Mustang (Mustang), which was released in 2006-12-11.
- The new features introduced include:
- Support scripting language;
- Introducing the JDBC 4.0 API;
- Introduction of Java Compiler API;
- pluggable annotations;
- Add the native PKI (public Key Infrastructure), Java GSS (Generic Security Service), Kerberos, and LDAP (lightweight Directory Access Protocol) support;
- Inherit Web Services;
- Do a lot of optimization.
Java Version SE 7
- The development Code is Dolphin (Dolphin), released in 2011-07-28.
- The new features introduced include:
- A string is allowed as a branching condition in a switch statement block;
- Applying type inference when creating a generic object;
- Capturing multiple exceptions in a block of statements;
- Support Dynamic language;
- Support Try-with-resources;
- Introduction of Java nio.2 Development package;
- Numeric types can be represented by a 2-character string, and an underscore can be added to the string representation;
- Diamond type grammar;
- Automatic processing of NULL values.
Java Version SE 8
- The development code is spider, which was released in 2014-03-18.
- Support for lambda support;
- Enhance the functionality of the date and time API;
- The performance of garbage collection has also been improved;
- and removed the PermGen area.
- Lambdas Expressions and functional interfaces
- Default and static methods for interfaces
- Method reference
- repeating annotations
- Better type-guessing mechanism
- Support for extended annotations
The main features of the Java language:
The Java language has the following features: Simple, object-oriented, distributed, interpreted execution, robust, secure, architecture-neutral, portable, high-performance, multithreaded, and dynamic.
1. Object-oriented
The design of the Java language focuses on objects and their interfaces, which provide a simple class mechanism and a dynamic interface model. The object encapsulates its state variables and the corresponding methods, implements Modularization and information hiding, while the class provides a prototype of a class of objects, and through inheritance mechanism, subclasses can use the methods provided by the parent class to implement the code reuse.
2. Distribution
Java is a network-oriented language. It provides a class library to handle the TCP/IP protocol that allows users to easily access other objects on the network via a URL address.
3. Simplicity
The Java language is an object-oriented language that can be used to write applications that are appropriate for a variety of situations by providing the most basic way to accomplish a given task by simply understanding some basic concepts. Java omits the concepts of operator overloading, multiple inheritance and so on, and simplifies the memory management of program designers by implementing automatic garbage collection. In addition, Java is also suitable for running on a small machine, its basic interpreter and class support only about 40KB, plus the standard class library and thread support is only about 215KB. Support for libraries and threads is only about 215KB.
4. Robustness
Java, when compiling and running programs, checks for possible problems to eliminate errors. It provides automatic garbage collection for memory management, preventing programmers from making mistakes when managing memory. With an integrated object-oriented exception handling mechanism, Java prompts for possible but unhandled exceptions at compile time, helping programmers to choose correctly to prevent system crashes. In addition, Java can capture many common errors in the type declaration at compile time, preventing the occurrence of a dynamic run-time mismatch problem.
5. Portability
Platform-independent features allow Java programs to be easily ported to different machines on the network. At the same time, Java's class library also implements the interface with different platforms, so that these libraries can be ported. In addition, the Java compiler is implemented by the Java language, and the Java Runtime system is implemented by standard C, which makes the Java system inherently portable.
6. Architecture Neutrality
The Java interpreter generates architecture-independent bytecode directives that Java programs can run on any processor as long as the Java Runtime system is installed. These bytecode directives correspond to the representations in the Java Virtual machine, and the Java interpreter gets the bytecode and converts it to run on a different platform.
7. Security
Java for network and distributed environments must be protected from virus intrusion. Java does not support pointers, and all access to memory must be implemented by instance variables of the object, which prevents programmers from accessing the private members of the object using deceptive means such as Trojan horse, and avoids errors that are prone to error in pointer operation.
8. Interpretation of implementation
The Java interpreter interprets the Java bytecode directly for execution. The bytecode itself carries many compile-time information, making the connection process simpler.
9. Dynamic Nature
The Java design makes it suitable for an evolving environment. New methods and instance variables can be freely added to the class library without affecting the execution of the user program. and Java uses interfaces to support multiple inheritance, making it more flexible and extensible than strict class inheritance.
10. Multithreading
Multithreading enables applications to execute in parallel, and the synchronization mechanism guarantees the correct operation of shared data. By using multi-threading, programmers can use different threads to accomplish specific behaviors, instead of having to adopt the global event loop mechanism, which makes it easy to implement real-time interactive behavior on the network.
11. High Performance
Unlike other languages such as BASIC and Tcl, Java bytecode is designed so that it can be easily converted directly to the machine code corresponding to a specific CPU, resulting in higher performance.
Some reference URLs for Java SE 8:
http://www.java.com/zh_CN/
Http://www.java-cn.com/index.html
Https://www.oracle.com/index.html
Http://www.oschina.net/translate/everything-about-java-8
Http://www.jb51.net/article/48304.htm
Http://developer.51cto.com/art/201404/435591.htm
https://en.wikipedia.org/wiki/Java_version_history#Java_SE_8_.28March_18.2C_2014.29
Http://www.oracle.com/technetwork/java/javase/8-whats-new-2157071.html
http://docs.oracle.com/javase/tutorial/
The history of Java development