Under The Hood bulan ini berfokus pada pemanggilan metode dan kembali ke dalam mesin virtual Java (JVM). Ini menjelaskan empat cara metode Java (dan native) dapat dipanggil, memberikan contoh kode yang menggambarkan empat cara, dan mencakup bytecode yang relevan.
Pemanggilan metode
Bahasa pemrograman Java menyediakan dua jenis metode dasar: metode instance dan metode kelas (atau statis). Perbedaan antara kedua jenis metode ini adalah:
Instance
metode memerlukan sebuah instance sebelum mereka dapat dipanggil, sedangkanclass
metode tidak.Instance
metode menggunakan pengikatan dinamis (terlambat), sedangkanclass
metode menggunakan pengikatan statis (awal).
Saat mesin virtual Java memanggil metode kelas, ia memilih metode yang akan dipanggil berdasarkan jenis referensi objek, yang selalu diketahui pada waktu kompilasi. Di sisi lain, saat mesin virtual memanggil metode instance, ia memilih metode yang akan dipanggil berdasarkan kelas sebenarnya dari objek tersebut, yang mungkin hanya diketahui pada waktu proses.
JVM menggunakan dua instruksi berbeda, yang diperlihatkan dalam tabel berikut, untuk memanggil dua jenis metode ini: invokevirtual untuk instance
metode, dan invokestatic untuk class
metode.