Java'da Final, Final ve Finalize Arasındaki Fark

Yazar: Laura McKinney
Yaratılış Tarihi: 2 Nisan 2021
Güncelleme Tarihi: 14 Mayıs Ayı 2024
Anonim
Java'da Final, Final ve Finalize Arasındaki Fark - Teknoloji
Java'da Final, Final ve Finalize Arasındaki Fark - Teknoloji

İçerik


'Son, son ve son' ifadesi, Java kurallarının içinde yatar. Her birine farklı bir işleyiş sağlanır. Final, final ve final arasındaki temel fark şudur: nihai erişim değiştirici en sonunda bir blok ve Sonuçlandırmak nesne sınıfının bir yöntemidir. Karşılaştırma tablosunda tartışılan final, final ve final arasında başka bazı farklılıklar var.

  1. Karşılaştırma Tablosu
  2. Tanım
  3. Anahtar Farklılıklar
  4. Sonuç

Karşılaştırma Tablosu

Karşılaştırma için temelfinalEn sonundaSonuçlandırmak
TemelFinal, Java'da "Anahtar Kelime" ve "erişim değiştirici" dir.Sonunda Java'da bir "blok".Sonlandırma, Java'da bir "yöntem" dir.
uygulanabilirFinal, sınıflara, değişkenlere ve yöntemlere uygulanabilir bir anahtar kelimedir.Sonunda, her zaman dene ve yakala blokuyla ilişkilendirilen bir bloktur.finalize (), nesnelere uygulanabilir bir yöntemdir.
Çalışma(1) Son değişken sabittir ve tekrar atanamaz.
(2) Son yöntem çocuk sınıfı tarafından geçersiz kılınamaz.
(3) Final Sınıfı uzatılamaz.
Bir "nihayet" bloğu, "try" bloğunda kullanılan kaynakları temizleyin.Sonlandırma yöntemi, nesneyle ilgili etkinlikleri imha edilmeden önce temizler.
infazÇağrı üzerine son yöntem uygulanır."Nihayet" bloğu, "try-catch" bloğunun yürütülmesinden hemen sonra yürütülür.finalize () yöntemi nesnenin imhasından hemen önce çalıştırılır.


Finalin Tanımı

“Final”, Java’da bir anahtar kelimedir. Bu bir erişim değiştiricisidir. “Final” anahtar sözcüğü sınıflara, yöntemlere ve değişkenlere uygulanabilir. Her biriyle nasıl çalıştığını görelim.

Son Değişken

  • Son bir anahtar kelime değişkene uygulandığında, daha fazla değiştirilemez.
  • Beyan edildiğinde son bir değişken başlatılmalıdır.
  • Ortak bir kodlama sözleşmesinde, nihai değişkenler UPPERCASE'te bildirilmiştir.
  • Son değişken, örnek olarak bir belleği işgal etmiyor.

son int FILE_OPEN = 2;

Son Yöntemler

  • Sınıftaki bir yöntem nihai olarak bildirildiğinde, alt sınıfı tarafından geçersiz kılınamaz.
  • Final olarak bildirilen küçük yöntemler, derleyici tarafından işlev çağrısının genel giderlerini azaltacak ve performans iyileştirmelerini artıracak "satır içi" yapılabilir.
  • Geçersiz kılınan yöntemler çağrısı, dinamik olarak çözümlenir, ancak bir yöntem son olarak bildirildiğinde geçersiz kılınamaz. Bu nedenle, işlev çağrısı derleme zamanında çözülebilir.

A sınıfı {final void meth () {System.out.ln ("Bu son bir yöntemdir."); }} B sınıfı A uzanıyor {void meth () {// Clas B, A sınıfının yöntemini devralmaz. System.out.ln ("Override yok"); }}

Final sınıfı

  • Bir sınıf final olarak ilan edildiğinde, herhangi bir alt sınıf tarafından miras alınamaz.
  • Bir sınıfı final olarak ilan etmek, tüm yöntemlerini final olarak otomatik olarak ilan eder.
  • Bir sınıfı hem “soyut” hem de “final” olarak ilan edemezsiniz.

son sınıf A {// ...} B sınıfı A genişletir {// B sınıfı A sınıfını devralamaz // ...}

  • Java'da “nihayet” her zaman try / catch bloğu ile ilişkilendirilmiş bir bloktur.
  • “Finally” bloğu, try / catch bloğundan sonra ve try / catch bloğundan sonraki koddan önce çalışır.
  • “Nihayet” bloğu istisnanın atılıp atılmadığını yürütür.
  • Bir istisna atıldığında ve hiçbir istisna bloğu istisnanla eşleşmiyorsa, o zaman “sonuç” bloğu yürütülür.
  • Bir yöntem, yakalanmayan bir istisna veya açık bir geri dönüş ifadesi ile try / catch bloğunun içinden arayana geri döndüğünde, “nihai” blok, yöntemin arayana geri dönmesinden hemen önce yürütülür.
  • “Nihayet” bloğu, kaynakları temizlemek veya “try” bloğunda kullanılan belleği boşaltmak için kullanılır.
  • “Nihayet” bloğu isteğe bağlıdır, ancak try / catch bloğundan sonra nihayet blok yazmak iyi bir uygulamadır.

class FinallyExample {// Bu yöntem, yöntemden bir istisna atar. statik boşluk procA () {try {System.out.ln ("procA içinde"); yeni RuntimeException ("demo") atmak; } sonunda {System.out.ln ("nihayet procAs"); }} // Bir try bloğunun içinden dön. statik boşluk procB () {try {System.out.ln ("procB içinde"); dönüş; } sonunda {System.out.ln ("sonunda procB'ler"); }} // Normalde bir deneme bloğu yürütün. statik boşluk procC () {try {System.out.ln ("procC içinde"); } sonunda {System.out.ln ("son olarak procC'ler"); }} public static void main (String args) {try {procA (); } catch (İstisna e) {System.out.ln ("İstisna yakalandı"); } procB (); ProcC (); }} // procA procA’nın sonunda ortaya çıktı İstisna procB procB’nin içinde sonunda procC procC’nin içinde kaldı

Finalize'un tanımı

  • Sonlandır, nesne sınıfındaki bir yöntemdir.
  • Bir nesne, dosya tanıtıcısı gibi bazı java dışı kaynakları barındırıyor olabilir; o zaman yok edilmeden önce serbest bırakılmalıdır.
  • Bu yöntem, nesneyi tamamen tahrip etmeden önce çöp toplayıcı tarafından çağrılır.
  • Bu yöntem, nesne yok edilmeden önce temizleme etkinliklerini gerçekleştirir.

Yöntemin genel formu finalize () aşağıdaki gibidir.


korumalı boşluk finalize () {// burada sonlandırma kodu}

Sonlandırma yöntemi, sınıf dışından erişilememesi için korumalı olarak ilan edilir.

Bu yöntem her zaman çöp toplama işleminden önce çağrılır.

  1. Anahtar kelime finali bir erişim değiştiricisidir, sonunda bir bloktur ve sonlandırmak bir yöntemdir.
  2. Final anahtar sözcüğü sınıflara, değişkenlere ve sınıfların yöntemlerine uygulanabilir, son olarak istisnaları işlemek için kullanılan try catch bloğu ile ilişkili bir bloktur, sonlandırma yalnızca nesnelerde çalışan bir yöntemdir.
  3. Bir kez final olarak bildirilen değişken sabit hale gelir ve tekrar atanamaz, final olarak bildirilen bir yöntem geçersiz kılınamaz ve final olarak bildirilen bir sınıf asla miras alınamaz. Nihai blok, dene ve yakala blokuyla kullanılan kaynakları temizlemek için kullanılır. Sonlandırma yöntemi, nesne yok edilmeden önce bir nesne tarafından kullanılan kaynakları temizlemek için kullanılır.

Sonuç:

Bir yöntem üzerine uygulandığında, final, nihayet ve sonuçlandırmanın farklı bir etkisi vardır.