1.1 Overview
1) Java can obtain such a wide range of recognition, in addition to his own a rigorous structure, object-oriented programming language, there are a lot of things to ignore: Java out of the hardware platform constraints, the realization of "write once, run everywhere" ideal; he provides a relatively secure memory management and access mechanism, Avoids the vast majority of memory leaks and pointer out-of-bounds issues; He implemented hot spot code detection and runtime compilation and optimization, which enabled Java applications to achieve higher performance with increased uptime. He has a complete application interface, There are also numerous third-party libraries from the business structure and open source community to help him achieve a wide variety of functions.
1.2 Java Technology System
1) Broadly speaking, Clojure, Jruby, Groovy and other languages running on Java virtual machines and related programs are part of the Java technology system.
In the traditional sense, Sun's officially defined Java technology system consists of the following parts:
Java programming language
Java virtual machines on a variety of hardware platforms
Class file format
Java API Class Library
Third-party Java class libraries from business and open source communities
2) We can collectively refer to the Java programming language, Java Virtual machine, Java API Class library as JDK (Java development Kit), JDK is the smallest environment to support Java program development. In addition, you can refer to the Java API Class library of Java SE API subset and Java Virtual machine, the two parts are referred to as JRE (Java Runtime Environment). The JRE is a standard environment that supports the running of Java programs.
3) According to the functions of the various components of the division, the Java technology system contains the content
4) According to the field of technology services to divide, or according to the Java Technology focus on business areas to divide, Java technology system can be divided into 4 platforms, respectively:
Java Card: A platform that supports some Java applets (Applets) running on small memory devices (such as smart cards)
Java ME (Micro Edition): Supports the Java program running on the mobile terminal platform, the Java API has been streamlined, and added to the mobile terminal support, this version formerly known as J2ME
Java SE (Standard Edition): Supports the Java platform for desktop-level applications, such as applications under Windows, and provides a complete Java core API, formerly known as J2SE
Java EE (Enterprise Editon): A Java platform that supports business applications that use multi-tiered frameworks (such as ERP, CRM applications), in addition to the Java SE API, has been massively expanded and provides support for deployment, a version formerly known as the EE
1.3 Java History
1) Java Technology History
version |
Description |
January 1991 |
Sun has set up a green project team specializing in embedded control systems for Smart appliances |
February 1991 |
Discard C + +, develop new language, name "Oak" |
June 1991 |
Jamesgosling developed an interpreter for oak. |
January 1992 |
Green has completed the development of the green operating system, the oak language, the class library, etc. |
November 1992 |
Green plan translates into "Firstperson", a wholly owned parent company of Sun Company |
February 1993 |
Acquiring the order of Time Warner's TV set-top box interactive system, the focus of development shifted from home consumer electronics to the related platform of the TV box set-top box. |
June 1994 |
Firstperson company was closed and employees were merged into Sun company. The Liveoak program was launched with the goal of designing an operating system using the Oak language. |
July 1994 |
The first Java language web browser Webrunner (later renamed HotJava), Oak renamed Java. |
October 1994 |
java compiler written by Vanhoff for the Java language |
March 1995 |
At the Sunworld conference, Sun introduced the Java and HotJava. |
January 1996 |
JDK1.0 Release |
February 1997 |
j2se1.1 Release |
December 1998 |
j2se1.2 Release |
June 1999 |
Release three versions of Java: J2SE, EE, J2ME |
May 2000 |
j2se1.3 Release |
September 2001 |
j2ee1.3 Release |
February 2002 |
j2se1.4 Release |
September 2004 |
j2se1.5 released, renamed j2se1.5 JavaSE5.0 |
June 2005 |
JavaSE6.0 released, the name of the Javaee,j2se renamed to Javase,j2me renamed to Javame |
December 2006 |
JRE6.0 Release |
December 2006 |
JavaSE6 Release |
December 2009 |
JavaEE6 Release |
April 2009 |
Oracle acquires Sun |
July 2011 |
JavaSE7 Release |
March 2014 |
JavaSE8 Release |
2) January 23, 1996, JDK 1.0 was released, and the Java language has the first official version of the runtime environment. JDK 1.0 provides a pure explanation for executing the Java virtual machine implementation (Sun Classic VM). The JDK 1.0 version of the technology includes: Java virtual machine, Applet, AWT and so on.
3) on February 19, 1997, Sun released some of the most basic support points for JDK 1.1,java technology, such as JDBC, which were released in JDK version 1.1, and the technical representatives of JDK 1.1 are: JAR file format, JDBC, JavaBeans, RMI. Java syntax also has a certain development, such as internal classes and reflection are at this time of occurrence.
4) April 8, 1998, JDK ushered in a milestone version of JDK 1.2, the project codenamed Playground (Arena), Sun in this version of the Java technology system into 3 directions, respectively, for desktop application development j2se (Java 2 platfor M, standard Edition), Java Java 2 Platform, Enterprise Edition, and J2ME for mobile devices such as mobile phones for the development of business-class development (2 Platform, Micro Edition). There are many representative technologies in this version, such as EJB, Java plug-in, Java IDL, Swing, and so on, and in this version the Java Virtual machine is built with the JIT (Just in time) compiler (in Java 1.2, which has been in existence for 3 virtual machines. Classic VMS, HotSpot VMS, and exact VMS, where exact VMS only appear on the Solaris platform, and the last two virtual machines are built-in JIT compilers, whereas previous versions of classic VMs can only use the JIT compiler in the form of a plug-in. At the language and API level, Java adds the STRICTFP keyword to the current Java encoding, which is very commonly used in a series of Collection collection classes.
5) on April 27, 1999, the Hotspot virtual machine was released, and the hotspot was originally developed by a small company called "Longview Technologies", which was fed up by Sun in 1997 because of the excellent performance of the hotspot. HotSpot Virtual Machine Publishing is provided as an add-on for JDK 1.2, and later he became the default virtual machine for all versions of JDK 1.3 and later for Sun JDK.
6) on May 8, 2000, JDK 1.3 of the project codenamed Kestrel was released, and JDK 1.3 's improvements relative to JDK 1.2 were on some class libraries (such as math operations and new Timer APIs), and the JNDI service began as a platform level from JDK 1.3 Service Delivery (formerly JNDI is just an extension), using CORBA IIOP to implement RMI communication protocols, and so on. This version also makes a lot of improvements to the Java 2D, provides a number of new Java 2D APIs, and adds a new Javasound class library.
7) February 13, 2002, JDK 1.4 released, the project codenamed Merlin. JDK 1.4 is a really mature version of Java, and Compaq, Fujitsu, SAS, Symbian, IBM and other famous companies have to participate in and even realize their own independent JDK 1.4. Even today, more than 10 years later, there are still many mainstream applications (Spring, Hibernate, struts, etc.) that can run directly on top of JDK 1.4 or continue to release versions that run on JDK 1.4. JDK 1.4 also publishes a number of new technical features, such as regular expressions, exception chains, NIO, log classes, XML parsers, and XSLT converters.
8) September 30, 2004, JDK 1.5 released, project code Tiger. Since JDK 1.2, Java has been transformed at a very small syntactic level, and JDK 1.5 has made a great improvement in the usability of Java syntax. For example, syntax features such as auto-boxing, generics, dynamic annotations, enumerations, variable-length parameters, traversal loops (foreach loops) are all included in JDK 1.5. At the virtual machine and API level, this version improves the Java memory model (Java memory models, JMM), provides java.util.concurrent and contracts, and so on. In addition, JDK 1.5 is the official statement that can support the last JDK version of the Windows 9x platform.
9) December 11, 2006, JDK 1.6 released, project code Mustang. In this release, Sun has ended the 8-year history of the Java EE, J2SE, and J2ME naming methods that started with JDK 1.2, enabling the naming of the JavaScript SE 6, Java EE 6, and Java ME 6. Improvements in JDK 1.6 include the provision of dynamic language support (implemented via the built-in Mozilla JavaScript Rhino engine), the provision of compilation APIs, and the micro-HTTP Server API. At the same time, this version of the Java virtual machine has made a lot of improvements, including lock and synchronization, garbage collection, class loading and other aspects of the algorithm has a considerable number of changes.
10) at the JavaOne conference on November 13, 2006, Sun announced that it would eventually open up Java, and over the next year, the various parts of the JDK were disclosed under the GPL v2 (GNU general public License v2) agreement. and established the OpenJDK organization to independently manage these source codes. In addition to a very small amount of property code (encumbered code, which is mostly sun itself does not have permission to do Kaiyuan processing), OpenJDK almost all of the Sun JDK Code, OpenJDK quality director once said that in JDK 1.7, the Sun JDK and OpenJDK except that the code and the file header are just the same, the code is basically exactly the same, so OpenJDK 7 and Sun JDK 1.7 are essentially products developed with the same set of code libraries.
One) The main improvements to JDK 1.7 include the provision of a new G1 collector (G1 is still in experimental state at the time of release, until the April 2014 Update 4 was formally Zhongzheng), and enhanced call support for non-Java languages (ISR-292, this feature has so far Still not fully trained), upgrade class loading architecture, etc.
12) on April 20, 2009, Oracle acquired Sun, and the Java trademark was formally owned by Oracle (Java itself is not owned by the company, and is managed by JCP, although JCP is primarily owned by Sun or Oracle. of the Guide). Since Oracle had already acquired another large middleware company, BEA, after completing its acquisition of Sun, Oracle sent Bea and Sun to two of the three largest commercial virtual machines in the company: JRockit and Hotspot,orac Le company announces that in the next 1-2 years time will be the two outstanding virtual machines mutually complement each other, finally one.
jvm--into Java