CodeBlanks Logo Icon CodeBlanks

final alanların garantisi

final alanların başlatma garantisi öğrenirsin.

final alanların garantisi

Bir final alan yalnızca bir kez, kurucu içinde atanır ve sonrasında değişmez. Java Bellek Modeli, kurucu tamamlandığında bu alanın tüm iş parçacıklarına görünür olmasını garanti eder; buna güvenli yayınlama denir.

Örnek: final int x. Bir nesne yayınlandığında, başka bir iş parçacığı x okursa kurucuda atanan değeri görür; yarı yapılandırılmış bir nesne görme riski yoktur. Bu yüzden değişmez (immutable) nesneler final alanlarla tasarlanır; bu hem güvenli hem de çöp toplayıcı için de verimlidir.

Değişmez nesneler

Tüm alanları final olan ve yöntemleri durumu değiştirmeyen bir nesne değişmez (immutable) olur. Değişmez nesneler iş parçacığı güvenlidir; çünkü yayınlandıktan sonra durumu asla değişmez.

Örnek: class Point { final int x; final int y; }. Bir Point oluşturulduktan sonra x ve y sabit kalır; bu yüzden kilitleme gerektirmeden paylaşılabilir. Java'nın String ve LocalDate sınıfları değişmezdir; bu özellik onların önbelleklenmesini ve güvenli paylaşılmasını sağlar.

Uygulama Değişmez Point sınıfı

Bir Point sınıfı tanımla: final int x ve final int y alanları, Point(int x, int y) kurucusu alanları atar. main içinde new Point(3, 4) ile oluştur ve p.x + p.y sonucunu System.out.println ile yazdır.

Başlangıç kodu

Main.java
// Point sınıfını tanımla
// final x ve y alanları ekle
// main içinde toplamı yazdır

Örnek çözüm

Main.java
class Point {
    final int x;
    final int y;
    public Point(int x, int y) { this.x = x; this.y = y; }
}

public class FinalDemo {
    public static void main(String[] args) {
        Point p = new Point(3, 4);
        System.out.println(p.x + p.y);
    }
}

Beklenen çıktı

7

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 final bir alan hangi görünürlüğü garanti eder?

  • Değişken görünürlüğü
  • Tek örnek
  • Kurucudan sonraki görünürlük Doğru cevap
  • Yığın yerleşimi

Açıklama: final alan, kurucu bitince görünür hale gelir.

2 final alanı tanımla

Soru
public ____ int x;
Cevap
public final int x;

Açıklama: final alan yalnızca kurucuda atanır.

3 final alan kavramlarını eşleştir

Kavram Anlamı
final alan Kurucudan sonra görünür
volatile Görünürlük
synchronized Kilitleme
yerel değişken Yığında

Uzman bölümündeki tüm dersler