final, nihayet ve finalize, Java'da istisna işlemede kullanılan anahtar kelimelerdir. Bu anahtar kelimelerin her birinin farklı bir işlevi vardır. final, nihayet ve finalize arasındaki temel fark, son bir erişim değiştiricidir, Sonunda İstisna İşleme'deki bloktur ve Sonuçlandırmak nesne sınıfının yöntemidir.
Bununla birlikte final, nihayet ve finalize arasında birçok fark vardır. final, nihayet ve finalize arasındaki farkların bir listesi aşağıda verilmiştir:
Bay hayır. | Anahtar | son | Sonunda | Sonuçlandırmak |
---|---|---|---|---|
1. | Tanım | final, bir sınıfa, yönteme veya değişkene kısıtlamalar uygulamak için kullanılan anahtar kelime ve erişim değiştiricidir. | nihayet Java İstisna İşleme'deki blok, istisna oluşsa da oluşmasa da önemli kodu yürütmek için kullanılan bloktur. | finalize, Java'da nesne çöp toplanmadan hemen önce temizleme işlemini gerçekleştirmek için kullanılan yöntemdir. |
2. | Uygulanabilir | Final anahtar sözcüğü sınıflar, yöntemler ve değişkenlerle birlikte kullanılır. | Son olarak blok, istisna işlemede her zaman try ve catch bloğuyla ilişkilidir. | finalize() yöntemi nesnelerle kullanılır. |
3. | İşlevsellik | (1) Bildirildikten sonra son değişken sabit hale gelir ve değiştirilemez. (2) son yöntem alt sınıf tarafından geçersiz kılınamaz. (3) son sınıf miras alınamaz. | (1) nihayet blok, istisna oluşsa da olmasa da önemli kodu çalıştırır. (2) nihayet blok, try bloğunda kullanılan tüm kaynakları temizler | finalize yöntemi, nesnenin yok edilmeden önceki temizliğini gerçekleştirir. |
4. | Uygulamak | Final yöntemi yalnızca onu çağırdığımızda yürütülür. | Nihayet bloğu, try-catch bloğu yürütülür yürütülmez yürütülür. Yürütülmesi istisnaya bağlı değildir. | finalize yöntemi, nesne yok edilmeden hemen önce yürütülür. |
Java'nın son örneği
Son değişken age'i bildirdiğimiz aşağıdaki örneği ele alalım. Bir kez bildirildiğinde değiştirilemez.
FinalÖrnekTest.java
public class FinalExampleTest { //declaring final variable final int age = 18; void display() { // reassigning value to age variable // gives compile time error age = 55; } public static void main(String[] args) { FinalExampleTest obj = new FinalExampleTest(); // gives compile time error obj.display(); } }
Çıktı:
Yukarıdaki örnekte final değişkenini tanımladık. Benzer şekilde, final anahtar sözcüğünü kullanarak yöntemleri ve sınıfları final olarak ilan edebiliriz.
Java nihayet Örnek
Java kodunun bir istisna oluşturduğu ve catch bloğunun bu istisnayı işlediği aşağıdaki örneğe bakalım. Daha sonra try-catch bloğundan sonra nihayet bloğu yürütülür. Ayrıca kodun geri kalanı da normal şekilde yürütülür.
NihayetExample.java
public class FinallyExample { public static void main(String args[]){ try { System.out.println('Inside try block'); // below code throws divide by zero exception int data=25/0; System.out.println(data); } // handles the Arithmetic Exception / Divide by zero exception catch (ArithmeticException e){ System.out.println('Exception handled'); System.out.println(e); } // executes regardless of exception occurred or not finally { System.out.println('finally block is always executed'); } System.out.println('rest of the code...'); } }
Çıktı:
Java sonuçlandırma Örneği
Örnek.java'yı sonlandır
public class FinalizeExample { public static void main(String[] args) { FinalizeExample obj = new FinalizeExample(); // printing the hashcode System.out.println('Hashcode is: ' + obj.hashCode()); obj = null; // calling the garbage collector using gc() System.gc(); System.out.println('End of the garbage collection'); } // defining the finalize method protected void finalize() { System.out.println('Called the finalize() method'); } }
Çıktı: