2012-10-05 13 views
7

Así que estaba hablando con alguien que dirige Interviews (su gerente de recursos humanos estándar) sobre lo que realmente buscan en una entrevista, y mencionó algo (entre muchas otras cosas) sobre las pruebas de conocimiento de la instrucción JVM.¿Qué es una instrucción JVM?

No sabía lo que eran, pero pensé que estaba hablando de instrucciones de bytecode.

He hecho algunas investigaciones y parece que no puedo encontrar nada en "Instrucciones de JVM", todas las que encuentro son referencias a las instrucciones de bytecode, que ya sabía.

Por ejemplo: http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-6.html al principio parece hablar sobre las instrucciones de JVM, pero eso parece ser lo que conozco como instrucciones de bytecode.

Así que mi pregunta es, ¿hay instrucciones JVM que están separadas de las instrucciones de bytecode, o son una y la misma?

Gracias

+3

Las instrucciones de JVM son en qué consiste el código de bytes. Sin embargo, es interesante preguntar en una entrevista: ¿esperan que sus postulantes escriban su propio compilador? –

+3

¿Sabía qué son? – Fildor

+3

Hasta donde yo sé, son uno en el mismo. Y no tengo idea de por qué un entrevistador probaría este conocimiento. Tiene poco o ningún uso práctico en términos de codificación Java. Realmente solo es útil si va a escribir/mantener un compilador basado en Java/Groovy/JVM. – aroth

Respuesta

7

Así que mi pregunta es, ¿hay instrucciones JVM que están separadas de las instrucciones bytecode, o una y la misma?

Son uno y lo mismo.

+3

Aparte: no veo el sentido de hacer preguntas para determinar si un candidato de Java tiene un conocimiento profundo de bytecodes. Incluso en las pocas situaciones en las que necesitas saber ese tipo de cosas, no necesitarías ese tipo de conocimiento en tu cabeza. Hay * un punto para el conocimiento de alto nivel sobre qué códigos byte son, cómo se producen y cómo se ejecutan, pero ese es un conjunto diferente de preguntas de entrevista. –

4

Él más probable es sólo hablar de instrucciones de código de bytes, ya que eso es lo que se ejecuta la JVM.

0

Todo lo que sé es que ByteCode es un lenguaje de máquina abstracto que es ejecutado por JVM. Algunas de las instrucciones que hacen bytecode son dadd (agregue dos números), ddiv (divida dos números), dload, etc. Caen en ciertos grupos tipo conversión, aritmética y lógica, etc. Así que supongo que son mismo. Estas instrucciones componen un código de byte de Java. Lista de instrucciones de bytecode http://www.stackframe.com/documents/bytecode.html

Cuestiones relacionadas