Java final, finally ve finalize arasındaki farklar

Share

Programlama dilleri, farklı amaçlarla, farklı işlevleri yerine getirebilmek için çok sayıda anahtar kelime geliştirmiştir. Java’da sayısı 50’yi aşan bu kelimelerden üçü, final, finally ve finalize kelimeleridir. Aynı kökten türemeleri itibari ile birbirlerine oldukça benzeyen ve bu sebeple karışabilen bu kelimeler, interview’larda sorulur hale gelmiş, iş başvurusunda bulunanların Java bilgisini ölçmek isteyen şirketler, final, finally ve finalize arasındaki farklar nelerdir sorusunu adaylara yöneltmişlerdir.

Biz de bu yazıda, bu içi anahtar kelimeyi bir araya getirdik, her birini tanımlayıp, aralarındaki farkları detaylı bir şekilde izah etmeye çalıştık. İşte Java’da final, finally ve finalize kelimeleri arasındaki farklar.

Java final, finally ve finalize nedir? Arasındaki farklar nelerdir?

Anahtar Kelime final finally finalize
1. Tanımı final, bir class, metod veya variable’ı sınırlamak ve olası değişiklikleri önlemek için kullanılan bir anahtar kelimedir. finally, Exception Handling işlemi sırasında, önemli bir kod blokunun her halükarda çalıştırılması amacıyla kullanılan bir ifadedir. finalize, silinecek dataları, Garbage Collector gelmeden önce, imha edilecek hale getirmek için Java tarafından kullanılan bir metottur.
2. Kullanım Alanı final, class, metod ve variable’larla birlikte kullanılabilir. finally block, exception handling sırasında try ile kullanılmak durumundadır. finalize() method, objelerle birlikte kullanılır.
3. Görevi (1) final variable, değişime kapalı hale gelir.
(2) final method, override edilemez.
(3) final class, parent class olamaz.
finally, exception olsa da olmasa da her halükarda gerçekleştirilmesi gereken görevler için kullanılır. finalize method veri temizleme işlemi için kullanılır.
4. Çalışma final metod yalnızca biz çağırdığımızda çalışır. finally block, try-catch blokundan hemen sonra çalışır. finalize method, bir obje silinmeden hemen önce çalışır.

final-finally ve finalize ile ilgili söyleyebileceğimiz farklar bu şekilde. Gördüğünüz üzere her biri farklı amaçlarla ve birbirinden tamamen alakasız görevlerle kullanılmakta. Ve her birinin kullanım şekli de birbirinden farklı. Bu kavramları daha iyi anlayabilmek ve görevlerini daha iyi kavrayabilmek için, yazı girişinde linklerini paylaştığımız yazılara bir göz atmanızı tavsiye edeir.