En bytecode java, ¿por qué el receptor se inserta primero en la pila seguido de todos los parámetros? Me parece recordar que es algo relacionado con la eficiencia.Orden de bytes de Java Byte y parámetros en la pila
Esto es válido tanto para las llamadas al método como para los campos de configuración.
método de llamada de
class X {
int p(int a) {
//Do something
}
int main() {
int ret = p(1);
}
}
método Main compila a:
aload_0 // Load this onto the stack
iconst_1 // Load constant 1 onto the stack
invokevirtual <int p(int)> from class X
Colocando un campo:
class X {
int x;
int main() {
x = 1;
}
}
método Main compila a:
aload_0 // Load this onto the stack
iconst_1 // Load constant 1 onto the stack
putfield <int x> from class X
Creo que lo he entendido, pero no puedo responder ya que no tengo suficientes puntos. –
Esta es una de esas preguntas de "curiosidad inactiva". Interesante, pero la respuesta es de ningún uso práctico ... a menos que esté contemplando el diseño de un nuevo conjunto de instrucciones bytecode. –
tu punto es? Aprender cómo funciona una computadora es una pregunta de "curiosidad inactiva" para la mayoría. –