[Resolvido] Java Interpretada ou compilada?

E ae pessoal…

Sou novo em java e tenho um pergunta que está me deixando intrigado. Eu sei que a linguagem java é interpretada, porém eu posso compilar meu código? Java pode ser compilada para uma plataforma especifica?

Desde já, obrigado pelas respostas. :slight_smile:

Ola Tudo bem?

O Java é uma poderosa linguagem interpretada, o seu código é sim “compilado” pela Java Compiler, mas ele será tranformado em uma código intermediario, que sera interpretado pela JVM(Java Virtual Machine).

Se esta querendo dizer rodar um programa java sem a VM, isso não é possivel até onde eu sei, pois o código gerado tem de ser interpretado pela VM.

Abraço

Java na verdade é compilado para um formato intermediario chamado Java bytecode.

Assim como uma máquina física executa instruções(código compilado) para arquitetura dela, uma máquina virtual java executa esse código compilado em bytecode.

A diferença é que a JVM traduz o bytecode para uma instrução de máquina física. Hoje em dia esse processo de tradução inclui o Just-in-Time compiler, que analisa o bytecode e efetivamente compila para código nativo. Algumas JVMs tem uma versão mais avançada de JIT chamada Hotspot, que analisa o ambiente e as chamadas que estão sendo executadas contra o bytecode, e otimiza ainda mais o código nativo.

TL;DR: Java não é uma linguagem interpretada no sentido mais puro.

1 curtida

E respondendo a pergunta se há compiladores de Java para linguagem de máquina (Ahead-of-Time compiler):

http://gcc.gnu.org/java/



https://www.google.com.br/search?q=java+aot+compiler

Java é compilada e interpretada.

Vc compila o arquivo .java para .class, esse class é o bytecode que será interpretado pela jvm.

Valeu pessoal, ótimas explicações.

Obrigado Bruno Laturner pelos links sobre Ahead-of-Time compiler

:smiley: