OpenJDK est un modèle de référence et open source, tandis qu'Oracle JDK est une implémentation d'OpenJDK et n'est pas open source. Oracle JDK est plus stable qu'OpenJDK.
OpenJDK est publié sous licence GPL v2, tandis qu'Oracle JDK est sous licence Oracle Binary Code License Agreement.
OpenJDK et Oracle JDK ont presque le même code, mais Oracle JDK a plus de classes et quelques bogues corrigés.
Donc, si vous souhaitez développer un logiciel d'entreprise/commercial, je vous suggère d'opter pour Oracle JDK, car il est parfaitement testé et stable.
J'ai rencontré de nombreux problèmes avec des plantages d'applications utilisant OpenJDK, qui sont résolus simplement en passant à Oracle JDK
Les différences techniques sont une conséquence de l'objectif de chacun (OpenJDK se veut être l'implémentation de référence, ouverte à la communauté, alors qu'Oracle se veut commercial)
Ils ont tous les deux "presque" le même code des classes de l'API Java ; mais le code de la machine virtuelle elle-même est en fait différent, et en ce qui concerne les bibliothèques, OpenJDK a tendance à utiliser des bibliothèques ouvertes tandis qu'Oracle a tendance à utiliser des bibliothèques fermées ; par exemple, la bibliothèque de polices.