Programacao Java : Para saber mais: como é o bytecode?

O 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

Mensagens populares deste blogue

Redes de Computadores: Comando ARP, para que serve e como funciona este protocolo?

Redes de Computadores: VLSM – Cálculo de Sub-redes IPv4