Apakah Kaedah finalize() dalam Java dan Cara Mengatasinya

Apakah Kaedah Finalize Dalam Java Dan Cara Mengatasinya



Java menyediakan pembangun fungsi yang hebat untuk mengurus sumber sistem dengan berkesan. Dalam senario sedemikian, ' memuktamadkan() ” kaedah mula berkuat kuasa yang mengeluarkan sumber sistem sebelum pemungut sampah melaksanakan untuk objek tertentu. Walau bagaimanapun, 'Mesin Maya Java (JVM)', membenarkan penggunaan kaedah 'finalize()' sekali bagi setiap objek.

Blog ini akan membincangkan menggunakan dan mengatasi kaedah 'finalize()'.







Apakah Kaedah Java 'finalize()' dan Bagaimana untuk Mengatasinya?

' memuktamadkan() ' kaedah ' Objek kelas ” digunakan oleh “Pengumpul Sampah” sejurus sebelum memadamkan objek yang sesuai untuk kutipan sampah untuk melaksanakan tugas pembersihan.



Sintaks



kekosongan yang dilindungi dimuktamadkan ( ) melontar Boleh dilontar





Dalam sintaks ini, ' dilindungi ” ialah penentu akses yang membayangkan bahawa kaedah ini boleh diakses dalam kelas dan kelas terbitan kelas itu sahaja.

Contoh 1: Menggunakan Kaedah 'finalize()' dalam Java



Contoh ini menggambarkan penggunaan kaedah 'finalize()':

kelas awam Tamat2 {
kekosongan yang dilindungi dimuktamadkan ( ) {
System.out.println ( 'Ini adalah kaedah Akhir!' ) ;
}
utama lompang statik awam ( Tali [ ] args ) {
Finalize2 object = baru Finalize2 ( ) ;
objek = null;
System.gc ( ) ;
System.out.println ( 'Pengumpul sampah dipanggil!' ) ;
} }

Dalam baris kod di atas:

  • Guna ' memuktamadkan() ” kaedah dalam kelas “Finalize2” yang terdiri daripada pernyataan yang dinyatakan.
  • dalam ' utama ”, buat objek kelas melalui pembina “Finalize2()”.
  • Sekarang, peruntukkan objek ' null ” nilai. Ia adalah bahawa apabila ia mempunyai nilai 'null', tiada rujukan dan sebagainya, ia sesuai untuk kutipan sampah.
  • Selepas itu, gunakan ' System.gc () ” untuk melaksanakan pemungut sampah, dengan itu memanggil kaedah “finalize()”.

Pengeluaran

Di sini, ia boleh disahkan bahawa kaedah 'finalize()' digunakan dengan sewajarnya.

Contoh 2: Mengatasi Kaedah 'finalize()' Java

' Objek ” kelas sepadan dengan kelas induk semua kelas Java. Kaedah 'finalize()' yang terdapat dalam kelas ini tidak mempunyai sebarang pelaksanaan. Walau bagaimanapun, dalam definisi kelas, aktiviti pembersihan ada. Oleh itu, mengatasi kaedah ini menghasilkan aktiviti pembersihan yang ditetapkan:

kelas awam Memuktamadkan {
kekosongan yang dilindungi dimuktamadkan ( ) melontar Boleh dilontar {
cubalah {
System.out.println ( 'Kaedah kelas akhir()' ) ;
}
tangkap ( Boleh dilempar kecuali ) {
melontar kecuali;
}
akhirnya {
System.out.println ( 'Menyebut kaedah finalize() kelas Objek' ) ;
super.memuktamadkan ( ) ;
} }
utama lompang statik awam ( Tali [ ] args ) melontar Boleh dilontar {
Memuktamadkan obj = Memuktamadkan baharu ( ) ;
obj.memuktamadkan ( ) ;
} }

Mengikut blok kod di atas:

  • Nyatakan “ memuktamadkan() kaedah ' dan mengisytiharkan ' Boleh dibuang ” pengecualian, masing-masing.
  • Di dalam ' cubalah ” blok, nyatakan pernyataan yang dinyatakan dan hadapi pengecualian dalam “ tangkap ” blok.
  • Di dalam ' akhirnya ” blok, “ hebat ” kata kunci menunjuk kepada kaedah “finalize()” bagi kelas objek. Ia digunakan dalam blok khusus ini untuk memastikan pelaksanaan kaedah 'finalize()' walaupun pengecualian dihadapi.
  • dalam ' utama ”, cipta objek kelas dan ganti kaedah “finalize()” bagi kelas objek dengan kaedah yang ditentukan/ditakrifkan dalam kelas “Finalize”.

Pengeluaran

Dalam hasil ini, dapat diperhatikan bahawa kaedah 'finalize()' berjaya ditindih.

Kesimpulan

' memuktamadkan() kaedah ” digunakan oleh “Pengumpul Sampah” sebelum memadamkan objek dan boleh ditindih menggunakan “ hebat ” kata kunci. Blog ini membincangkan menggunakan dan mengatasi kaedah 'finalize()' dalam Java.