Direkomendasikan, 2024

Pilihan Editor

Perbedaan antara Final, Akhirnya dan Finalisasi di Jawa

Kata-kata 'final, akhirnya, dan final' terletak dalam konteks Jawa. Masing-masing disediakan fungsi yang berbeda. Perbedaan mendasar antara final, akhirnya, dan final adalah bahwa final adalah pengubah akses, akhirnya adalah blok dan finalisasi adalah metode kelas objek. Ada beberapa perbedaan lain antara final, akhirnya, dan final yang dibahas dalam tabel perbandingan.

Grafik perbandingan

Dasar untuk PerbandinganTerakhirAkhirnyaMenyelesaikan
DasarFinal adalah "Kata Kunci" dan "pengubah akses" di Jawa.Akhirnya adalah "blok" di Jawa.Finalisasi adalah "metode" di Jawa.
BerlakuFinal adalah kata kunci yang berlaku untuk kelas, variabel, dan metode.Terakhir adalah blok yang selalu dikaitkan dengan blok coba dan tangkap.finalize () adalah metode yang berlaku untuk objek.
Kerja(1) Variabel akhir menjadi konstan, dan tidak dapat dipindahkan.
(2) Metode terakhir tidak dapat ditimpa oleh kelas anak.
(3) Kelas Final tidak dapat diperpanjang.
Blok "akhirnya", bersihkan sumber daya yang digunakan di blok "coba".Metode final melakukan pembersihan aktivitas yang berhubungan dengan objek sebelum kehancurannya.
EksekusiMetode terakhir dijalankan atas panggilannya.Blok "Akhirnya" dieksekusi tepat setelah eksekusi blok "coba-tangkap".finalize () method mengeksekusi tepat sebelum penghancuran objek.

Definisi Final

"Final" adalah kata kunci di Jawa. Ini adalah pengubah akses. Kata kunci "final" berlaku untuk kelas, metode, dan variabel. Mari kita lihat cara kerjanya masing-masing.

Variabel akhir

  • Ketika kata kunci terakhir diterapkan ke variabel, itu tidak dapat dimodifikasi lebih lanjut.
  • Variabel akhir harus diinisialisasi ketika dideklarasikan.
  • Dalam konvensi pengkodean yang umum, variabel final dideklarasikan dalam UPPERCASE.
  • Variabel terakhir tidak menempati memori berdasarkan per instance.
 int akhir FILE_OPEN = 2; 

Metode Terakhir

  • Ketika sebuah metode di kelas, dinyatakan sebagai final, itu tidak dapat ditimpa oleh subkelasnya.
  • Metode kecil yang dinyatakan final dapat dibuat "inline" oleh kompiler yang akan mengurangi overhead pemanggilan fungsi dan meningkatkan peningkatan kinerja.
  • Metode overridden memanggil, diselesaikan secara dinamis, tetapi ketika sebuah metode dinyatakan final, metode itu tidak dapat diganti. Oleh karena itu, pemanggilan fungsi dapat diselesaikan pada waktu kompilasi.
 kelas A {final void meth () {System.out.println ("Ini adalah metode final."); }} kelas B memperluas A {void meth () {// Clas B tidak dapat mewarisi metode kelas A. System.out.println ("Tidak menimpa"); }} 

Kelas Akhir

  • Ketika suatu kelas dinyatakan sebagai final, maka itu tidak dapat diwarisi oleh subclass apa pun.
  • Mendeklarasikan kelas sebagai final akan secara otomatis mendeklarasikan semua metodenya final.
  • Anda tidak dapat mendeklarasikan kelas sebagai "abstrak" dan "final".
 kelas terakhir A {// ...} kelas B meluas A {// Kelas B tidak dapat mewarisi kelas A // ...} 

Definisi Akhirnya

  • Di Jawa "akhirnya" adalah blok yang selalu dikaitkan dengan blok try / catch.
  • Blok "akhirnya" dijalankan setelah blok coba / tangkap dan sebelum kode mengikuti blok coba / tangkap.
  • Blok "akhirnya" akan mengeksekusi apakah pengecualian dilemparkan atau tidak.
  • Ketika pengecualian dilemparkan, dan tidak ada blok tangkap yang cocok dengan pengecualian itu, blok "akhirnya" dieksekusi.
  • Ketika suatu metode kembali ke pemanggil dari dalam blok coba / tangkap melalui pengecualian yang tidak tertangkap atau pernyataan pengembalian yang eksplisit, blok "akhirnya" dijalankan tepat sebelum metode kembali ke pemanggil.
  • Blok "akhirnya" digunakan untuk membersihkan sumber daya atau membebaskan memori yang digunakan dalam blok "coba".
  • Blok "akhirnya" adalah opsional, tetapi merupakan praktik yang baik untuk menulis akhirnya blok setelah blok coba / tangkap.
 class FinallyExample {// Metode ini membuang pengecualian dari metode. static void procA () {coba {System.out.println ("inside procA"); melempar RuntimeException ("demo") baru; } akhirnya {System.out.println ("akhirnya procA"); }} // Kembali dari dalam blok percobaan. static void procB () {coba {System.out.println ("inside procB"); kembali; } akhirnya {System.out.println ("akhirnya procB"); }} // Menjalankan blok percobaan secara normal. static void procC () {coba {System.out.println ("inside procC"); } akhirnya {System.out.println ("akhirnya procC"); }} public static static utama (String args []) {try {procA (); } catch (Exception e) {System.out.println ("Exception tertangkap"); } procB (); procC (); }} // output di dalam procA akhirnya proception Exception terjebak di dalam procB procB akhirnya di dalam procC's procC akhirnya 

Definisi Finalisasi

  • Finalisasi adalah metode dalam kelas objek.
  • Objek mungkin memegang beberapa sumber daya non-java seperti file handle; maka itu harus dibebaskan sebelum dihancurkan.
  • Metode ini dipanggil oleh pengumpul sampah sebelum menghancurkan objek sepenuhnya.
  • Metode ini melakukan aktivitas pembersihan untuk objek sebelum dihancurkan.

Bentuk umum dari metode finalize () adalah sebagai berikut.

 finalisasi batal terlindungi () {// kode finalisasi di sini} 

Metode finalisasi dinyatakan sebagai terproteksi sehingga tidak dapat diakses dari luar kelas.

Metode ini selalu disebut sebelum pengumpulan sampah.

Perbedaan Kunci Antara Final, Akhirnya, dan Finalisasi

  1. Final kata kunci adalah pengubah akses, akhirnya adalah blok dan finalisasi adalah metode.
  2. Final kata kunci berlaku untuk kelas, variabel, dan metode kelas, akhirnya adalah blok yang terkait dengan blok coba tangkap yang digunakan untuk menangani pengecualian, finalisasi adalah metode yang hanya beroperasi pada objek.
  3. Variabel yang pernah dinyatakan sebagai final menjadi konstan dan tidak dapat dipindahkan kembali, metode yang dinyatakan sebagai final tidak dapat diganti, dan kelas yang pernah dinyatakan sebagai final tidak akan pernah dapat diwarisi. Blok akhirnya digunakan untuk membersihkan sumber daya yang digunakan dengan mencoba dan menangkap blok. Metode finalisasi digunakan untuk membersihkan sumber daya yang digunakan oleh suatu objek sebelum objek dihancurkan.

Kesimpulan:

Final, akhirnya dan finalisasi memiliki efek yang berbeda ketika diterapkan pada suatu metode.

Top