Oracle JDK vs OpenJDK
O OpenJDK é a implementação de código-aberto (open-source) do JDK. Atualmente, quase não há diferença entre a versão SE da Oracle e o OpenJDK, uma vez que a Oracle decidiu adotar este último como referência para implementação do JDK.
Traduzo, a seguir, o trecho deste blog oficial da Oracle, que esclarece as diferenças entre as duas implementações:
Pergunta: Qual é a diferença entre o código-fonte encontrado no repositório do OpenJDK e o código que vocês usam para implementar o JDK da Oracle?
Resposta: São muito parecidas — nosso processo de implementação das edições do JDK da Oracle são elaboradas em cima do OpenJDK acrescentando apenas uma ou outra peça, tal como o código para distribuição, que inclui a implementação da Oracle do Plugin Java e da Java WebStart, bem como alguns componentes de código proprietário de terceiros, como o Rhino, e mais algumas outras coisinhas aqui e ali, tais como documentação adicional ou fontes de terceiros. Olhando mais além, nossa intenção será abrir todas as peças do JDK da Oracle, exceto aquilo que consideramos características comerciais, a exemplo do JRockit Mission Control (ainda não disponível no JDK da Oracle), e substituir componentes sobrecarregados de terceiros com alternativas de código aberto para alcançar uma paridade mais próxima entre as bases de código.
Dependendo da versão usada, a VM (Máquina Virtual) pode diferir. Consulte esta tabela: Correspondência entre o JDK da Sun/Oracle, OpenJDK e versões da HotSpot VM.