Programacao Java : Para saber mais: como é o bytecode?
O
É como um assembly, escrito para esta máquina em específico. Podemos ler os mnemônicos utilizando a ferramenta javap que acompanha o JDK:
E a saída:
É o código acima, que a JVM sabe ler. É o "código de máquina", da máquina virtual.
Um bytecode pode ser revertido para o .java original (com perda de comentários e nomes de variáveis locais). Caso seu software vá virar um produto de prateleira, é fundamental usar um ofuscador no seu código, que vai embaralhar classes, métodos e um monte de outros recursos (indicamos o http://proguard.sf.net).
MeuPrograma.class
gerado não é legível por seres humanos (não que seja impossível). Ele está
escrito no formato que a virtual machine sabe entender e que foi especificado que ela entendesse.É como um assembly, escrito para esta máquina em específico. Podemos ler os mnemônicos utilizando a ferramenta javap que acompanha o JDK:
javap -c MeuPrograma
E a saída:
MeuPrograma();
Code:
0: aload_0
1: invokespecial #1; //Method java/lang/Object."<init>":()V
4: return
public static void main(java.lang.String[]);
Code:
0: getstatic #2; //Field java/lang/System.out:Ljava/io/PrintStream;
3: ldc #3; //String Minha primeira aplicação Java!!
5: invokevirtual #4; //Method java/io/PrintStream.println:
(Ljava/lang/String;)V
8: return
}
É o código acima, que a JVM sabe ler. É o "código de máquina", da máquina virtual.
Um bytecode pode ser revertido para o .java original (com perda de comentários e nomes de variáveis locais). Caso seu software vá virar um produto de prateleira, é fundamental usar um ofuscador no seu código, que vai embaralhar classes, métodos e um monte de outros recursos (indicamos o http://proguard.sf.net).
Comentários
Enviar um comentário
De seu comentario acerca desta aula, sua dica, sua critica ou sugestao para que eu possa melhorar o conteudo deste Blog. Obrigado Pela Atencao dispensada boa aula a todos.