Oracle JDK vs OpenJDK

OpenJDK is a project formed by Sun's open source Java at the end of 2006. The "open source" here refers to the open source form in the usual sense, that is, the source code can be reused. For example, IcedTea and UltraViolet are all releases derived from OpenJDK source code. Version.

Oracle JDK uses a commercial implementation, while OpenJDK uses the open source FreeType. Of course, the "same" is based on the common components of the two. There will also be some commercial closed-source functions in the Oracle JDK that are not available in the Open JDK, such as the Java Flight Recorder transplanted from JRockit. It is expected that after JRockit's MissionControl is ported to HotSpot, it will also be provided in the form of Oracle JDK proprietary and closed source.

The introduction of the relationship between the two at OSCON 2011 by Joe Darcy, the project release manager of Oracle, also confirmed that OpenJDK 7 and Oracle JDK 7 are very close in program, and they share a lot of the same code (as shown in the figure below, pay attention to the prompt in the figure) The proportion of common code between the two is much higher than the proportion seen on the graph), so the OpenJDK we compiled can basically be considered to be consistent with the official Oracle JDK in terms of performance, function and execution logic.

 


The difference between OpenJDK and JDKhttps:
//www.cnblogs.com/straybirds/p/8746532.html

In most LINUX distributions, the built-in JDK or installed from the software source is the installed OpenJDK,

One, so what exactly is OpenJDK?

The historical reason is that OpenJDK is the open source version of the JDK, released under the GPL license. (General Public License) 

At the time of JDK7, OpenJDK has become the main development version of JDK7. SUN JDK7 is released on the basis of OpenJDK7. Most of its source code is the same, and only a small part of the source code has been replaced.
Released using JRL (Java Research License).
As for OpenJDK6, it is even more complicated. First of all, OpenJDK6 is a branch of JDK7, and try to remove the new features of Java SE7 to make it conform to the standard of Java6 as much as possible.

Second, the difference between JDK and OpenJDK can be summarized as follows: 

Differences in licensing agreements: 

OpenJDK is released under the GPL V2 agreement, while JDK is released under the JRL agreement. 
Although both protocols are open source, the difference in use is that GPL V2 allows commercial use, while JRL only allows personal research and use.

OpenJDK contains only the most stripped-down JDK: 

OpenJDK does not contain other software packages, such as Rhino Java DB JAXP..., and the software packages that can be separated are also separated as much as possible, but most of them are free software, you can download and join by yourself.

The OpenJDK source code is incomplete: 

It is easy to think that in the OpenJDK that adopts the GPL protocol, part of the source code of SUN JDK cannot be used by OpenJDK due to property rights. The most important part is the code of the optional component SNMP in JMX. 
Therefore, these can not open source code to make it into a plug for OpenJDK compile time, you can also choose not to use plug.
And Icedtea developed the source code (OpenJDK6) of the same function for these incomplete parts, making OpenJDK more complete.

The relationship between OpenJDK and IcedTea:

copy code
The IcedTea project was originally created due to the incompleteness of OpenJDK (an obstacle due to property rights), and the community needed a complete open source toolchain and code base. 
IcedTea has long been a set of patches for OpenJDK, and as I said earlier, it has a different build system based on "./configure".
In OpenJDK, we have replaced encumbered code, so there are no more barriers.
Because of our efforts, the IcedTea project has reduced the number of patches used.
One of the nice things about IcedTea is that its configure script makes it easy to build OpenJDK in many different modes, such as using the Zero Assembler Port to support compilation on non-x86/sparc chips, etc.
A big piece of what IcedTea provides is the plugin/java-web-start infrastructure.
copy code

Part of the source code is replaced with open source code: 

Due to property rights issues, many source codes of SUN JDK are replaced by some open source codes with the same functions, such as font rasterization engine, which is replaced by Free Type.

Java trademarks cannot be used: 

This is easy to understand, on the machine where OpenJDK is installed, typing "java -version" shows OpenJDK, but if it is OpenJDK with the Icedtea patch, it shows java. (Unverified)

 


 

refs:

Google Guava Official Tutorial (Chinese Version)
http://ifeve.com/google-guava/

Guava: Google Core Libraries for Java

Guava src and api doc:
https://github.com/google/guava
https://google.github.io/guava/releases/snapshot-jre/api/docs/

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325061280&siteId=291194637