First of all, this article is pasted from the Internet. The original address is: http://www.cnblogs.com/wangaohui/archive/2012/11/28/2791999.html. It feels good to write, so paste it down and record it.
These days, looking at some Java things, because just start, not very understanding of Java, the results of some Java nouns do not have a clear context, and now a little to tidy up
I am struggling with Jdk,sdk,jre,jvm,ide,adt, cross-platform, j2ee,j2se, these nouns make me foggy.
First, what is the SDK?
Software Develop Kit, as the name implies, is the software development package. Software developers implement the underlying modules and encapsulate them in a class library, configured as a high-level development environment to support programmer development at the top level. such as the Google APP SDK. The SDK is designed to help developers work more efficiently. A variety of different types of software development, can have their own SDK. Windows has a DirectX 9 SDK for Windows Sdk,directx. NET development also has the Microsoft. NET Framework SDK. Java development is also unambiguous and has its own Java SDK.
The following paragraph is from Baidu know, may be able to help you understand the point.
Microsoft in order to let more users use his window system, he let some senior software engineer to develop some convenient programmer in window under the "method, source code, instance", these "methods, source code, instance" is encapsulated, the name is called: SDK. If this is not the case, it is difficult for programmers to quickly and efficiently develop software under Windows, without Windows software, of course, no user Use window, MS over.
So what's the JDK again?
The Jdk,java SDK was originally called the Java Software Develop Kit and later renamed the JDK, the Java Develop Kit. The JDK is used as the Java SDK for building applications, applets, and components that run on the Java platform.
What is a JVM?
The JVM, Java Virtual machine, is the most central part of the entire Java implementation across platforms, All Java programs are first compiled into a. class file, which can be executed on a virtual machine, which means that class does not correspond directly to the machine's operating system, but instead interacts with the operating system indirectly by the virtual machine, which interprets the program to the local system for execution.
The JVM is the foundation of the Java platform, which, like the actual machine, has its own set of instructions and operates in different memory areas at runtime. By abstracting the operating system and CPU structure, the JVM provides a platform-independent code execution method that is independent of the special implementation method, host hardware, and host operating system. But in some small ways, the implementation of the JVM is not the same, such as garbage collection algorithm, thread scheduling algorithm (perhaps different OS have different implementations).
The main task of the JVM is to explain its own set of instructions (that is, bytecode) to the CPU's instruction set or OS system calls to protect the user from malicious program harassment. The JVM does not care about the upper Java source files, it only focuses on the class file generated by the source file. The composition of the class file includes the JVM instruction set, the symbol table, and some subsidy information.
What is a JRE? (Here is some content from different places, hoping to help you understand)
The JRE refers to the Java Runtime environment. The JVM cannot be executed as a class, because the JVM needs to invoke the class library lib that is needed to interpret the classes. In the JDK installation directory you can find the JRE directory, there are two folders Bin and Lib, here you can think that the bin is Jvm,lib is the JVM to work the class library, and the JVM and Lib are called the JRE. So, after you've finished compiling the Java program into. class, you can package the. class file with the JRE and send it to your friends so that your friends can run your program. (There are java.exe running. Class in the JRE)
The JRE is a larger system released by Sun, and it has a JVM inside it. The JRE is related to the specific CPU structure and operating system, and we see different versions when we download the JRE from Sun. There are also APIs (such as AWT, swing, and so on) that make up the JRE together with the JVM. The JRE is essential for running Java programs.
JRE (Java Runtime Environment) is essential for running Java programs (unless compiled into an. exe executable with some other compiled environment ...). ), the JRE is like a PC, and our WIN32 application requires the operating system to run it, and the Java program we write must also have the JRE to run.
There is a JVM in the JRE, the JRE is related to the specific CPU structure and operating system, we see different versions when we download the JRE from Sun, there are some APIs (such as AWT, swing, etc.) that make up the JRE with the JVM, and the JRE is running Ja VA program is essential.
Now, we figure out a relationship in which the JDK has a jre,jre inside the JVM.
So, how does Java's cross-platform understand?
First of all, the self-perception of the cross-platform of Java is mainly for Web applications. If there is no, please advise.
In traditional application development, Windows was developed for Windows and cannot be run under Linux. When you develop a program that directly generates machine code that runs under Windows, and the machine code is different between different operating systems, it is not used under Linux. That means you can't cross the platform. So what does the cross-platform of Java mean?
Java's iconic slogan, "Write Once, run anywhere (once written, running everywhere)" is built on the JRE. How is it achieved? Is the addition of a virtual layer--jre between the Java application and the operating system. The program source code is not directly compiled, linked to machine code, but first converted to bytecode (bytecode) This special intermediate form, bytecode conversion to machine code or system call. The former is a traditional compiling method, and the generated machine code is inevitably related to the special operating system and the special machine structure.
Java program's bytecode files can be placed on any of the installed JRE computer running, and then by the different JRE to the corresponding machine code, which enables the portability of Java programs. In this way, programmers do not have to care about the specific environment in which the program runs, but can concentrate on writing software. The idea of layered abstraction and hidden detail is visible in computer science, such as the design of machine organization structure and the realization of network protocol. Niklaus Wirth, the inventor of the Pascal language, predictably pointed out that there should be a portable language in which the intermediate code generated could run on an imaginary machine (a hypothetical machines). The Java Virtual machine (Java VM or JVM) is one such machine that simulates the structure of the actual processor and interprets the bytecode. How can one say that it is the JRE, and then it becomes the JVM, and are the two different names? The answer is in the negative.
The JRE is like a PC, and our WIN32 application requires the operating system to run it, and the Java program we write must also have the JRE to run.
If you want to develop Java application/web application, you have to install JRE+JDK in the development section. If a typical user runs a Java Web program, the browser has to have a JVM embedded, and if not, it has to be installed, that is, creating the JRE environment on the client.
What is J2EE,J2SE,J2ME?
j2ee--Full name Java 2 Enterprise Edition, Java is a business Edition for enterprise-level application development.
The j2se--full name Java 2 Standard Edition, is the Java Standards version, for standard application development, is also Java basic version.
j2me--Full name Java 2 Micro Edition, is a miniature version of Java, for mobile phones, PDA and other embedded development, for mobile phone development, there is a dedicated J2ME Wireless Toolkit free package provided.
All in all, J2ee,j2se,j2me is Java that provides different services for different categories of use, that is, providing different types of class libraries. Java EE (Java 2 Enterprise Edition) for enterprise applications, J2SE for common PC applications (Java 2 standard Edition) and J2ME for embedded devices and consumer appliances (2 Micro Edition) three versions.
What is an IDE?
The integrated development environment (IDE) software is an application for a program development environment, typically including code editors, compilers, debuggers, and graphical user interface tools. is the integration of code writing functions, analysis functions, compile functions, debug functions and other integrated development software sets. All software or software sets (groups) with this feature can be called Ides. such as Microsoft's Visual Studio series, Borland's C + + Builder,delphi series.
The Java IDE has jbuider,netbeans,eclipse,jcreator and so on.
Understanding of some basic concepts when getting Started with Java (J2EE,J2SE,J2ME,JDK,SDK,JRE,JVM, cross-platform)