Part I: Into Java
The first chapter walks into Java
Overview
Advantages:
Rigorous structure, object-oriented programming language;
Get rid of the hardware platform constraints, the realization of "write once, run everywhere" ideal;
Provides a relatively secure memory management and access mechanism to avoid the most memory leaks and pointer out-of-bounds problems;
The Hotspot Code detection and runtime compilation and optimization are realized.
A complete set of application interface program interface and countless third-party class library;
Java Technology System
JDK is the smallest environment to support Java development, including Java programming language, Java Virtual machine, Java API class library three parts;
The JRE is a standard environment that supports the Java program running, including the Java SE API subset and the Java virtual machine in the Java API Class library.
The Java technology system can be divided into 4 platforms according to the key business areas that Java technology focuses on:
Java Card: A platform that supports applets (Java applets) running on small memory devices (such as smart cards);
Java ME (Micro Edition): Support for Java running on the mobile terminal platform; (now with the Android SDK)
Java SE (Standard Edition): Supports the Java platform for desktop-level applications;
Java Edition: A Java platform that supports enterprise applications that use multi-tiered architectures, such as ERP, CRM applications;
Java history
JDK 1.0:java virtual machine, Applet, AWT and so on;
JDK 1.1:jar file format, JDBC, JavaBeans, RMI, inner class, reflection;
JDK 1.2: Split into J2se/j2ee/j2me, built-in JIT compiler, a series of collections collection classes;
JDK 1.3:jndi Service, using CORBA IIOP to implement RMI communication protocol, Java 2D improvement;
JDK 1.4: Regular expressions, exception chains, NIO, log classes, XML parsers, and XSLT converters;
JDK 1.5: Auto-boxing, generics, dynamic annotations, enumerations, variadic parameters, traversal loops, improved Java memory model, java.util.concurrent and contract delivery;
JDK 1.6: Provides dynamic language support, provides compilation APIs and micro HTTP Server APIs, virtual machine optimizations (lock and Sync, garbage collection, class loading, etc.);
JDK 1.7:G1 Collector, enhanced call support for Java language, upgrade class loading schema;
JDK 1.8:LAMBDA expression, function interface, etc.;
Java Virtual machine History
Sun classic/extract vm: Classic VM is the first commercial virtual machine, pure parser way to execute Java code, if you want to use the JIT compiler must be plug-in, the parser and compiler do not work together, compiler execution is very inefficient The exact VM is a virtual machine that the Sun virtual machine team has published on the Solaris platform, supports two-level instant compilers, mixed compilers and interpreters, uses accurate memory management (virtual machines can know exactly what type of data is in a location in memory), but is quickly replaced by hotspot VMs;
Sun hotspot VMS: Virtual machines with sun JDK and OPENJDK, currently the widest range of use, inherited the benefits of the top two virtual machines, and also supports hotspot code probing (using counters to find the most compiled value code) In 2006, Sun announced that the JDK includes hotspot VM Open source, on the basis of the establishment of OPENJDK;
Sun mobile-embedded vm/meta-circular VMS: Some sun-developed virtual machines facing mobile and embedded releases and experimental nature;
BEA JROCKIT/IDM J9 vm: Jrockit VM once claimed to be the world's fastest Java virtual machine, focused on server-side applications, without parser implementation, all by the instant compiler compiled execution; J9 VM is located near 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 that is proprietary to a specific hardware platform;
Apache harmony/google android Dalvik VM: Apache Harmony contains its own virtual machines and Java libraries, but not TCK certified; Dalvik VMs are a core part of the Android platform. It does not follow the Java Virtual Machine specification and cannot execute the class file directly, using the register schema rather than the common stack architecture of the JVM;
Microsoft JVM and others : Microsoft was once a hardcore supporter of Java Technology, developed the best-performing Java Virtual machine under Windows, but was later sued by Sun to end its development;
Looking ahead to the future of Java technology