O Java é uma das linguagens de programação mais populares usadas em ambientes de desenvolvimento atualmente. É usado principalmente para projetos de desenvolvimento de back-end, desenvolvimento de jogos e computação de desktop e móvel. Continue lendo e descubra como as máquinas virtuais Java (JVM), o Java Runtime Environment (JRE) e o Java Development Kit (JDK) desempenham um papel no processo de desenvolvimento Java. Você também aprenderá sobre o relacionamento entre si e as diferenças entre eles.
Boletim informativo do setor
Mantenha-se atualizado sobre as tendências mais importantes (e intrigantes) do setor em IA, automação, dados e muito mais com o boletim informativo Think. Consulte a Declaração de privacidade da IBM.
Sua assinatura será entregue em inglês. Você pode encontrar um link para cancelar a assinatura em todos os boletins informativos. Você pode gerenciar suas inscrições ou cancelar a inscrição aqui. Consulte nossa Declaração de privacidade da IBM para obter mais informações.
A máquina virtual Java, ou JVM, carrega, verifica e executa o bytecode Java. É conhecida como o intérprete ou o núcleo da linguagem de programação Java porque executa a programação Java.
A JVM é responsável pela conversão de bytecode em código específico da máquina e é necessária em JDK e JRE. Também é dependente de plataforma e executa muitas funções, incluindo gerenciamento de memória e segurança. Além disso, a JVM pode executar programas que são escritos em outras linguagens de programação que foram convertidas para bytecode Java.
A Java Native Interface (JNI) é frequentemente chamada em conexão com a JVM. A JNI é um framework que permite que o código Java em execução no JVM se comunique com (ou seja, chame e seja chamado por) aplicações associados a um hardware e a uma plataforma específica do sistema operacional. Essas aplicações são chamadas de aplicações nativas e, geralmente, podem ser escritas em outras linguagens. Os métodos nativos são usados para migrar código nativo escrito em outras linguagens para uma aplicação Java.
O JVM consiste em três componentes principais ou subsistemas:
O Java Runtime Environment, ou JRE, é um conjunto de ferramentas de software responsáveis pela execução do programa ou aplicação Java em seu sistema.
O JRE usa espaço de heap para alocação dinâmica de memória para objetos Java. O JRE também é usado no JDB (depuração de Java).
Se um programador quiser executar um programa Java usando o comando Java, ele deve instalar o JRE. Se ele estiver apenas instalando (não desenvolvendo ou compilando código), somente o JRE será necessário.
Além da máquina virtual Java, o JRE é composto por várias outras ferramentas e funcionalidades de software de suporte para você aproveitar ao máximo suas aplicações Java.
O Java Development Kit, ou JDK, é um kit de desenvolvimento de software que é um superconjunto do JRE. É o componente fundamental que permite o desenvolvimento de aplicações Java e de miniaplicativos Java. É específico da plataforma, portanto, são necessários instaladores separados para cada sistema operacional (por exemplo, Mac, Unix e Windows).
O JDK contém todas as ferramentas necessárias para compilar, depurar e executar um programa desenvolvido com a plataforma Java. (Vale lembrar que os programas Java também podem ser executados usando linha de comando.)
O JDK inclui todas as ferramentas, executáveis e binários Java necessários para executar programas Java. Isso inclui JRE, um compilador, um depurador, um arquivador e outras ferramentas usadas no desenvolvimento Java.
Java é sinônimo de Java Standard Edition (Java SE) ou Core Java. Todos os três eufemismos se referem à especificação básica do Java que inclui o ato de definir tipos e objetos. O Java EE, por outro lado, fornece APIs e normalmente é usado para executar aplicações maiores. O conteúdo deste blog concentra-se no Java SE.
Vamos primeiro ver como os três componentes principais do Java funcionam juntos e, em seguida, podemos examinar as diferenças. O diagrama a seguir fornece uma imagem de como o JVM, JRE e JDK se encaixam no cenário Java.
Se você imaginar uma bola de basebol em fatias, ela contém três componentes principais: o núcleo redondo e acolchoado, a seção central de lã e algodão e o exterior de pelo. Uma bola sem todas essas três camadas não desempenhará sua função pretendida. Assim como as três partes básicas de uma bola de basebol, JVM, JRE e JDK têm funções específicas. Sem os três, o Java não operará com sucesso.
No vídeo a seguir, Jamil Spain explica ainda mais como JRE e JDK se relacionam:
E agora, as diferenças:
Há muitas tecnologias complementares que podem ser usadas para aprimorar o JVM, JRE ou JDK. As seguintes tecnologias estão entre aquelas utilizadas com mais frequência:
A Java Virtual Machine (JVM) é utilizada para criar — você adivinhou —máquinas virtuais (VMs). As VMs são servidores que permitem que várias aplicações sejam executadas no mesmo hardware físico subjacente sem afetar umas às outras. Isso proporciona um melhor uso dos recursos e torna muito mais fácil e econômico para escalar do que a infraestrutura tradicional. As VMs também são facilmente descartáveis devido à sua independência. Quando você não precisar mais da aplicação, basta desativar a VM.
Os contêineres levam essa abstração para o próximo nível e virtualizam o kernel do sistema operacional. A ausência do sistema operacional torna os contêineres ainda mais leves, rápidos e flexíveis do que as máquinas virtuais.
Para muitas organizações, o Java continua sendo uma parte vital do desenvolvimento de aplicação e fornece uma base sólida para a criação de soluções portáteis e escaláveis. Ele também pode desempenhar um papel fundamental na modernização de aplicações na jornada para a nuvem.
Dê o próximo passo ao explorar o OpenJDK e IBM Runtimes for Business, com compatibilidade comercial confiável e econômica para implementar, monitorar e gerenciar aplicações Java.
Um serviço de locatário único, totalmente gerenciado, para desenvolver e entregar aplicações Java.
Utilize softwares e ferramentas de DevOps para desenvolver, implementar e gerenciar aplicações nativas da nuvem em diversos dispositivos e ambientes.
Com o desenvolvimento de aplicações na nuvem você só constrói uma única vez, itera rapidamente e implementa em qualquer lugar.