Quels sont const-classe et opcodes const méthode de type pour? Quel est le code java les génère?

voix
0

Je crée un outil de post-traitement des demandes de Dalvik. Pour les tests, je veux créer un code qui contiendra tous les opcode. Je vais avoir du mal à comprendre ce que opcodes const classe et const méthode de type do. Les définitions dans la documentation officielle de Dalvik ne sont pas clarifier la question pour moi.

const classe

Déplacer une référence à la classe spécifiée par l'index donné dans le registre spécifié. Dans le cas où le type indiqué est primitive, cela stocker une référence à la classe dégénérée du type primitif.

Quelle est la référence à la classe? Ceci est fait pas référence à un objet autant que je sache.

Même avec

const méthode de type

Déplacer une référence au prototype de la méthode indiquée par l'index donné dans le registre spécifié.

Pour autant que je comprends cela fonctionne pas pointeur. pointeur de fonction est assurée par

const-méthode-handle

Déplacer une référence à la poignée de la méthode indiquée par l'index donné dans le registre spécifié.

Ma question est:

Qu'est-ce que sont const-classe et const méthode de type utilisé? Quel genre de code Java générerait ces opcodes à Dalvik?

Peut-être qu'il est utile de mentionner que mon expérience java est assez faible - Je suis c ++ genre de gars.

Créé 18/12/2018 à 11:02
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
3

const-classpeut être généré lorsque vous faites référence à une propriété de classe d'un objet. par exemple Class cls = MyObject.class.

Pour autant que je sache, gère la méthode et les types ne sont pas générés par le code java. Vous pouvez les référencer en utilisant la réflexion, mais je ne pense pas que cela lui permet de générer effectivement le const-method-typeou les const-method-handleinstructions

Ils soutiennent acteurs pour invoke-custom, qui est principalement destiné à être utilisé par d' autres langues qui se compilé à Java bytecode Dalvik et éventuellement bytecode.

Créé 18/12/2018 à 12:48
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more