|
Muitos amigos podem ser como eu, que usam JAVA há muito tempo, mas a conexão e a diferença entre JDK, JRE e JVM sempre foram vagas. Hoje vou escrever este artigo para esclarecer a relação entre os três.
JDK : Kit de Ferramentas de Desenvolvimento Java. O JDK é o núcleo de todo o JAVA, incluindo o Java Runtime Envernment, várias ferramentas Java (javac/java/jdb, etc.) e bibliotecas baseadas em Java (ou seja, APIs Java incluem rt.jar). O JDK mais popular é o JDK lançado pela Sun; além da Sun, há muitas empresas e organizações que desenvolveram seu próprio JDK, como empresas estrangeiras da IBM que também desenvolveram seu próprio JDK, o Taobao doméstico também desenvolveu seu próprio JDK, várias organizações criaram seu próprio JDK para obter melhorias em alguns aspectos, para se adaptar às suas próprias necessidades, como dizem que o JDK da IBM é muito mais eficiente que o JDK da SUN. Mas, de qualquer forma, ainda precisamos dominar o JDK básico do Sun primeiro. Existem três versões do JDK: J2SE, edição padrão, edição padrão, é uma versão que normalmente usamos J2EE, Enterprise Edtion, edição empresarial, usando esse JDK para desenvolver aplicações J2EE J2ME, microedtion, usada principalmente para aplicações Java em dispositivos móveis, dispositivos embarcados
Frequentemente usamos JDK para nos referir à Java API, Java API é a interface de programação de aplicações do Java, na verdade, são algumas classes Java escritas por nossos predecessores, incluindo algumas estruturas importantes de linguagem e gráficos básicos, I/O de rede e arquivos, etc., chamamos essas classes escritas por nossos predecessores em nossos próprios programas, como base para nosso próprio desenvolvimento. Claro, há cada vez mais bibliotecas de terceiros com melhor desempenho ou recursos mais potentes à nossa disposição.
JRE: Java Runtime Ambiental. Em outras palavras, todos os programas Java devem estar sob o JRE para serem executados. Inclui bibliotecas núcleo JVM e JAVA, além de arquivos de suporte. Comparado ao JDK, ele não inclui ferramentas de desenvolvimento – compiladores, depuradores e outras ferramentas.
JVM: Java Virtual Mechinal (Máquina Virtual JAVA). A JVM faz parte do JRE, que é um computador fictício implementado simulando várias funções de computador em um computador real. A JVM possui sua própria arquitetura de hardware completa, como processadores, pilhas, registradores, etc., e também possui um sistema de instruções correspondente. A principal função da JVM é interpretar seu próprio conjunto de instruções (ou seja, bytecode) e mapeá-lo para o conjunto de instruções da CPU local ou para as chamadas de sistema do sistema operacional. A linguagem Java roda multiplataforma, que na verdade é um sistema operacional diferente, usando regras de mapeamento JVM distintas para torná-la independente do sistema operacional e completamente multiplataforma. A JVM não se importa com os arquivos-fonte Java de nível superior, só se importa com os arquivos de classe gerados pelos arquivos fonte. O arquivo de classes consiste em um conjunto de instruções da JVM, uma tabela de símbolos e algumas informações suplementares. A figura a seguir apresenta uma boa visão geral da relação entre JDK, JRE e JVM:
A situação real do nosso desenvolvimento é que, depois de desenvolvermos nosso próprio programa JAVA usando o JDK (chame JAVA API), compilamos nossos arquivos Java de texto em bytecode JAVA através do compilador (javac) no JDK, rodamos esses bytecodes JAVA no JRE, a JVM analisa esses bytecodes e os mapeia para o conjunto de instruções da CPU ou para as chamadas de sistema do sistema operacional.
|