Read record tracking: Preface section
Read before reading: Introduction, catalogue and Errata!
The Java programming language is a multi-purpose, concurrent, class-based, object-oriented programming language that typically includes a byte-code representation that will be continuously converted to machine-independent. Run-time activities include loading and linking execution of the required classes, generating optional machine code, and dynamically optimizing the continuation and execution of the actual program.
Java provides code portability, a memory garbage collector, and a large API library (a huge library-high-quality resource) that provides quirky drawing capabilities, network connectivity, and database access capabilities. Java can be described from the following 11 keywords: simplicity, object-oriented, network technology, robustness, security, architecture neutrality, portability, interpretive, high performance, multithreading, and dynamics.
For simplicity, one of the goals of Java is to support the development of software that can run independently on small machines; the basic interpreter and class support are about 40KB, plus the base standard class library and support for threads (basically a self-contained microkernel) needs to increase by 175KB.
Java's networking skills are: An extended example libraries for handling TCP/IP protocols such as HTTP and FTP. Java applications can open and Access objects on the network through a URL, as easily as accessing a local file.
The robustness of the Java language is manifested in two ways: the inspection of error tendencies and the pointer model (which does not use pointers, but the encapsulation of C + + pointers). But without pointers to languages, many data structures are difficult to implement. How does Java implement these data structures?
Java security: Java is designed to protect against attacks, including runtime stack overflows, destroying memory outside of its own processing space, unauthorized reading and writing of files, and so on. (This is so similar to Linux's permission system!) )
Architecture neutrality refers to the use of virtual machines. (This section needs to be focused on) the generated intermediate code that can be applied to all machines that have correctly installed the interpreter.
Portability is reflected in: the size of the basic data types and the relevant algorithms are clearly explained; the data types in Java have a fixed size, eliminating the problems that you might encounter when porting code. Binary data is stored and transmitted in a fixed format, eliminating the problem of byte order.
Where is the explanatory type of Java? The result is a slow run for critical applications. Today, the JVM uses an instant compiler whose code runs as fast as C + +.
In some specific situations where more efficient performance is required, the Java compiled bytecode can be quickly translated (at runtime) into the specific CPU machine code that runs the application to further improve execution speed.
multithreaded execution of Java, resulting in better interactive response and real-time behavior. Threads in Java can take advantage of multiple processors as long as the operating system supports it. At the bottom, the main platform of the thread implementation mechanism are different, Java has no too much effort to achieve platform independence. In different machines, only the code that calls multithreading is exactly the same; Java gives the implementation of multithreading to the underlying operating system or line libraries to complete.
Java and applets, most Web pages use JavaScript or flash directly, not applets, if you need to display dynamic effects on your browser today.
The development of the Java language is as follows:
Visible: After adding new features in 2004, the API is exploding.
Common terminology for Java
It is easy to confuse: The JRE refers to the Java Runtime Environment, which contains virtual machines but does not contain compilers. This is not the environment that developers want, but is designed for users who do not need a compiler. JDK, very image to be known as: Development Toolkit (TOOL-KIT).
Note: When installing the JDK, it is strongly recommended that you do not accept the default pathname with spaces in the Windows environment, and use the following form: Jdk/bin or Jdk1.6.0\bin ... In addition, the Jdk/bin directory needs to be added to the execution path; the so-called execution path refers to the directory list where the operating system searches for a local executable file.
The same level directory in Jdk\bin contains the Src.zip file, which is the source code for all public classes
Get more source code (compilers, virtual machines, local methods, and private helper classes, etc.) with access to: Oracle.net.
Here is the anatomy of the JDK section:
The difference between the JDK and the JRE can be seen clearly:
There are three types of reference for Java: class type , interface type , and array type . Reference types are implemented by dynamically created objects (instances of classes or arrays), and multiple references can point to an object. There are classes for wrapping basic values inside objects, which we call wrapper classes.
Java Foundation Consolidation-Java Core Technology Fundamentals • Volume One: Fundamentals