Para entender melhor o conceito inicial da linguam Java , temos que entender que é uma linguagem altamente tipada e precida ser compilada e gera um bytecode e interpreta somente em uma maquina virtual para executar, dessa maneira :
Código Fonte --> Compilador --> Bytecode --> maquina Virtual --> Execução
vantagens Compilação ==> velocidade do programa / auxilio do compilador antes da execução
vantagens interpretação ==> flexibilidade de manutenção do aplicativo em produção/ expressividade da linguagem / codigo fonte não precisa ser recompilado para rodar em plataformas diferentes
Alem de Linguagem de programação o java é tambem uma plataforma de desenvolvimento ou seja, oferece API'S e ambientes de execução
JAVA ME -- > para dispositivos moveis JAVA SE ==> core --> desktop e servidores JAVA EE --> para empresas