* Oracle JDK has a different font rasteriser, maybe some other bits like sound are different as well
* Oracle JDK has Flight Recorder support (that's a commercial feature)
* Oracle JDK supports both C1 and C2 JITs on ARM64, AFAIK an open source implementation of this is coming to OpenJDK 9, likely Oracle JDK will keep the existing implementation
* Oracle JDK has additional commercial features like resource management [2] and application class data sharing
OpenJDK vanilla is AFAIK not TCK-certified. However there are TCK-certified OpenJDK distributions [3].
TL;DR: OpenJDK is fully open source
[1] https://docs.oracle.com/javacomponents/
[2] https://www.youtube.com/watch?v=0WZpmylHbFM&index=8&list=PLX...
- ARM compilers are different
- The Swing font engine used to be different
- Tooling that many devs depend on, like the Mission Control
- The AOT native compilers and tooling for embedded Java
Not an exhaustive list.
phrased another way, which bits are missing that prevent an individual from compiling and running Java programs on the JVM using open source software.