Jakie są klasy i const const-metoda typu rozkazy dla? Co je generuje kod Java?

głosy
0

Tworzę narzędzia do przetwarzania post zastosowań Dalvik. Dla testów Chcę utworzyć kod, który będzie zawierał wszelkie opcodu. Mam problemy ze zrozumieniem tego, co zrobić z klasy i const const-metoda typu rozkazy. Definicje zawarte w oficjalnej dokumentacji Dalvik nie są wyjaśnienia problemu dla mnie.

const-klasa

Przenoszenie odniesienie do klasy określonej przez dany indeks do określonego rejestru. W przypadku, gdy wskazany rodzaj jest prymitywny, to będzie przechowywać odniesienie do klasy zdegenerowanej prymitywnego TYP za.

Co to jest odniesienie do klasy? Nie jest to odniesienie do obiektu o ile wiem.

Tak samo z

const, sposób typu

Przenieś odwołanie do prototypu metodą określoną przez dany indeks do określonego rejestru.

O ile dobrze rozumiem, to nie działa wskaźnik. wskaźnik funkcja jest obsługiwana przez

const metoda-rękojeść

Przenoszenie odniesienie do uchwytu metody podanej przez danego wskaźnika w określonym rejestrze.

Moje pytanie brzmi:

Co const-class i const-metoda typu służy? Jaki rodzaj kodu java będzie generować te opcodes w Dalvik?

Może warto wspomnieć, że moje doświadczenie Java jest raczej niska - Jestem c ++ facetem.

Utwórz 18/12/2018 o 11:02
źródło użytkownik
W innych językach...                            


1 odpowiedzi

głosy
3

const-classmogą być generowane kiedy odnoszą się do właściwości klasy obiektu. np Class cls = MyObject.class.

O ile mi wiadomo, metoda uchwyty i typy nie są generowane przez kod java. Można odwoływać się do nich za pomocą refleksji, ale nie sądzę, spowoduje to rzeczywiście wygenerować const-method-typelub const-method-handleinstrukcje

Są one wsparcie dla obsady invoke-custom, który jest przeznaczony głównie do użytku przez innych języków, które się skompilowany do kodu bajtowego Javy i ostatecznie Dalvik kodu bajtowego.

Odpowiedział 18/12/2018 o 12:48
źródło użytkownik

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