Part I: Getting into Java
Advantages:
Rigorous structure, object-oriented programming language;
Get rid of the constraints of the hardware platform and realize the ideal of "write once, run anywhere";
Provides a relatively safe memory management and access mechanism to avoid Most of the memory leaks and pointer out-of-bounds problems;
implements hot code detection and runtime compilation and optimization;
has a complete set of Application interface program interface and countless third-party class libraries;
JDK is used to support Java development The minimum environment, including Java programming language, Java virtual machine, and Java API class library;
JRE is a standard environment that supports the running of Java programs, including the Java SE API subset in the Java API class library and Java virtual machine is divided into two parts;
According to the key business areas that Java technology focuses on, the Java technology system can be divided into 4 platforms:
Java Card: supports Applets (Java applet) A platform that runs on small memory devices (such as smart cards);
Java ME (Micro Edition): A platform that supports Java running on mobile terminals; (Today there are Android SDK)
Java SE (Standard Edition): supports the Java platform for desktop applications;
Java EE (Enterprise Edition): Java platform that supports enterprise-level applications (such as ERP and CRM applications) using multi-layer architecture;
JDK 1.0: Java virtual machine, Applet, AWT, etc.;
JDK 1.1: JAR file format, JDBC, JavaBeans, RMI, internal classes, reflection;
JDK 1.2: split into J2SE/J2EE/J2ME, built-in JIT compiler, and a series of Collections collection classes;
JDK 1.3: JNDI service , use CORBA IIOP to implement RMI communication protocol, Java 2D improvements;
JDK 1.4: regular expressions, exception chains, NIO, log classes, XML parsers and XSLT converters;
JDK 1.5: autoboxing, generics, dynamic annotations, enumerations, variable parameters, traversal loops, improved Java memory model, and provides the java.util.concurrent concurrent package;
JDK 1.6: Provides dynamic language support, provides compilation API and micro HTTP server API, virtual machine optimization (locking and synchronization, garbage collection, class loading, etc.);
JDK 1.7: G1 collector, enhanced calling support for Java language, upgraded class loading architecture;
JDK 1.8: Lambda expressions, functional interfaces, etc.;
Sun Classic/Extract VM: Classic VM is the first commercial virtual machine , a pure parser method to execute Java code. If you want to use a JIT compiler, you must plug in. The parser and compiler cannot work together, and the compiler execution efficiency is very poor; Exact VM was released by the Sun virtual machine team on the Solaris platform. The virtual machine supports a two-level just-in-time compiler, mixed work of compilers and interpreters, and uses accurate memory management (the virtual machine can know the specific type of data at a certain location in the memory), but it was quickly replaced by HotSpot VM;
Sun HotSpot VM: The virtual machines provided by Sun JDK and OpenJDK are currently the most widely used; they inherit the advantages of the first two virtual machines and also support Hot code detection technology (finding the code with the most compilation value through counters); In 2006, Sun announced that JDK included HotSpot VM as open source, and OpenJDK was established on this basis;
Sun Mobile-Embedded VM/Meta-Circular VM: Some released and experimental virtual machines developed by Sun for mobile and embedded applications;
BEA Jrockit /IDM J9 VM: JRockit VM was once claimed to be the fastest Java virtual machine in the world. It focuses on server-side applications and does not include parser implementation. It is all compiled and executed by a just-in-time compiler; J9 VM is positioned relatively close to HotSpot. The main purpose is to serve as an execution platform for IBM's various Java products;
Azul VM/BEA Liquid VM: a high-performance virtual machine proprietary to a specific hardware platform;
Apache Harmony/Google Android Dalvik VM: Apache Harmony contains its own virtual machine and Java library, but it is not TCK certified; Dalvik VM is the core of the Android platform It does not follow the Java virtual machine specification and cannot directly execute Class files. It uses a register architecture instead of the common stack architecture of JVM;
Microsoft JVM and others : Microsoft was once a die-hard supporter of Java technology and developed the best-performing Java virtual machine under Windows, but was later sued by Sun to terminate its development;
Modularity
Гибридный язык: используйте предметно-ориентированные языки для решения проблем в конкретных областях
Многоядерный параллелизм
Расширенный синтаксис
64-разрядная виртуальная машина
Рекомендации по теме:
Развитие Java (история) Траектория и исторические изменения
Подробный обзор виртуальной машины Java
The above is the detailed content of Understanding Java--Into the development history of Java and Java virtual machine. For more information, please follow other related articles on the PHP Chinese website!