Perbedaan utama: Ikatan statis terjadi ketika kode dikompilasi, sementara ikatan dinamis terjadi ketika kode dieksekusi pada saat run time.
Mengikat istilah, statis dan dinamis, adalah konsep dasar dalam pemrograman java. Konsep-konsep ini diajarkan sejak awal selama belajar java dan merupakan pertanyaan populer yang ditanyakan selama wawancara kerja. Alasan untuk ini adalah karena konsep-konsep sederhana ini sering membuat pewawancara tahu seberapa baik yang berpengalaman dengan pemrograman java.
Sebelum kita mulai dengan perbedaan antara pengikatan statis dan dinamis, mari kita pahami apa sebenarnya pengikatan itu. Binding mengacu pada tautan yang dibuat antara pemanggilan metode dan definisi metode. Ini membuat sistem tahu kode mana yang harus dieksekusi dengan cara apa. Jika pemanggilan metode apa pun tidak memiliki definisi metode, itu mengakibatkan sistem menunjukkan kesalahan. Ikatan statis dan dinamis menentukan kapan kode sebenarnya dieksekusi.
Sementara sebagian besar referensi diselesaikan selama waktu kompilasi, ada beberapa referensi yang membutuhkan objek aktual dan diselesaikan pada saat dijalankan. Ini adalah perbedaan utama antara statis dan dinamis. Ikatan statis terjadi ketika kode dikompilasi, sementara ikatan dinamis terjadi ketika kode dieksekusi pada saat run time.
Selama kompilasi, saat mengikat, kompiler tidak memeriksa tipe objek yang ditunjuk oleh variabel referensi tertentu, ia hanya memeriksa apakah setiap metode memiliki definisi. Ini dikenal sebagai pengikatan statis atau awal. Metode kelebihan beban terikat menggunakan ikatan statis.
Dalam pengikatan dinamis atau terlambat, sementara pengikatan, pengumpul memeriksa objek aktual untuk diikat dan karenanya membutuhkan program untuk dijalankan. Metode yang diganti diikat menggunakan pengikatan dinamis.
Perbandingan antara Pengikat Statis dan Dinamis:
Binding statis |
Binding dinamis |
|
Waktu mengikat |
Terjadi pada waktu kompilasi |
Terjadi pada saat dijalankan |
Objek yang sebenarnya |
Objek aktual tidak digunakan untuk mengikat |
Objek aktual digunakan untuk mengikat
|
Juga dikenal sebagai |
Ini juga dikenal sebagai penjilidan awal karena penjilidan terjadi selama kompilasi |
Ini juga dikenal sebagai pengikatan lambat karena pengikatan terjadi pada saat run time |
Contoh |
Metode kelebihan beban |
Metode penimpaan |
Metode pengikatan |
Metode pribadi, statis dan final menunjukkan pengikatan statis. Karena, mereka tidak dapat ditimpa. |
Selain metode pribadi, statis dan final menunjukkan pengikatan dinamis. Karena, mereka dapat diganti. |
Kelas |
Jenis kelas |
Kelas objek |
Gambar Courtesy: javatpoint.com, thecrazyprogrammer.com