Chamada de métodos e retorno de valores

As chamadas de um método são:

  • invokevirtual: Chama um método de uma instância
  • invokeinterface: Chama um método de uma interface
  • invokespecial: Chamada de um método privado ou da superclasse
  • invokestatic: Realiza a chamada de um método estático
  • invokedynamic: Método que constrói um objeto

O retorno de uma instrução pode ser definido (ireturn, lreturn, freturn, dreturn e areturn). Durante a execução do método caso seja interrompida de maneira inesperada com uma exceção a chamada athrow é realizada. Os métodos síncronos são possíveis graças à presença de um simples encapsulando chamado de monitor, esses tipos de métodos são definidos pela flag ACC_SYNCHRONIZED em seu constate pool, que quando possui tal flag o método entra no monitor(monitorenter) e é executado, e nenhuma outra Thread pode acessá-lo, e sai (monitorexit) quando seu método é encerrado (de um modo normal ou por interrupção).