Eu sei que jvm é a maquina virtual do java, bytecode e tals… mas o que é que tem por dentro da jvm ? os métodos e classes do java ficam na jvm ou na ide? o que tem por tras da jvm?
e duvida sobre o jdk tbm.
Eu sei que jvm é a maquina virtual do java, bytecode e tals… mas o que é que tem por dentro da jvm ? os métodos e classes do java ficam na jvm ou na ide? o que tem por tras da jvm?
e duvida sobre o jdk tbm.
Não amigo…
Você confundiu… JDK é o Java Development Kit que internamente possui as bibliotecas junto com a JRE (Java Runtime Environment).
É através do JDK que você cria seus programas gerando o bytecode, onde esse é lido pela JVM (Java Virtual Machine). Os métodos e classes ficam dentro dos arquivos SeuArquivo.java que após serem compilados pelo Javac (Java Compilador) ou por uma IDE, geram os arquivos SeuArquivo.class (bytecode) e são executados.
;D
O JDK é o kit de desenvolvimento, ele contem os arquivos .class com as implementações da linguagem, um compilador e mais algumas ferramentas…
A JVM é a máquina virtual que é responsavel por executar seu código, internamente a jvm vc tem alguns sub processos e algumas threads que são por exemplo o garbage colector responsavel por cuidar da limpeza da memória, o class loader responsavel por carregar os .class da sua aplicação e várias outras coisas como o security manager e tal…
Os dois na verdade são bem diferentes… se vc der uma procurada na internet vc consegue achar a especificação da jvm…
abraços
calma, calma… não era pra ter colocado JDK la em cima… é que eu digite um negocio … depois apaguei e digitei outra coisa… mas não vi que tinha o JDK … eu tava falando da JVM mesmo …
mas se falarem do JDK tbm é bom … ah! e os metodos e classes que eu disse nao são as que eu crio e sim as que ja existem no java
cara é mais ou menos assim:
a JVM é uma plataforma virtual, ela apenas consegue ler os bytecodes do se arquivo, ou seja os arquivos com extenssão .class,
o que acontece é que para que vc possa gerar essa .class vc precisa primeiro compilar o seu arquivo .java pra ele virar .class
usando oq a galera ai em cima ja disse, IDE ou pelo console javac *.java;
A JVM apenas interpreta os bytecodes, tanto que tem empresas que usam a propria JVM como plataforma para os seus sistemas.
A Virtual Machine é tão poderosa que a cada dia sai novos compiladores para outros tipos de linguagens, para que esssas consigam ser rodadas em cima da JVM, por exemplo C# so roda em ambiente windowns, com um compilador gerador de bytecodes, muitas empresas poderia usar algum programa em C# em cima da JVM que por sinal é uma excelente plataforma.
ps:Apesar de eu ser JAVEIRO de coração, tenho que admitir que C# anda mais avançado que JAVA -.-…