Java’da Final, Transient, Volatile ve Static Değişkenler (2026 Detaylı Rehber)
Bu yazıda Java değişken türleri olan final, transient, volatile ve static kavramlarını detaylı şekilde inceleyeceğiz.
Final Değişkenler (final variables)
final anahtar kelimesi ile tanımlanan değişkenler yalnızca bir kez değer alabilir.
Daha sonra değiştirilmeleri mümkün değildir.
final int x = 10;
Referans tiplerde ise referans sabittir, ancak nesnenin içeriği değiştirilebilir.
Final sınıf ve metotlar
final class Haberler { }
class Arabalar {
final void hiz() { }
}
Final sınıflar extend edilemez, final metotlar override edilemez.
Transient Değişkenler
transient değişkenler, nesne serialize edilirken göz ardı edilir.
class Veriler implements Serializable {
transient int y = 7;
static int z = 9;
}
Volatile Değişkenler
volatile değişkenler, çoklu thread ortamında her zaman ana bellekten okunur.
- Thread-safe davranış sağlar
- Cache yerine ana bellek kullanılır
Static Değişkenler ve Metotlar
static, değişkenin veya metodun sınıfa ait olduğunu belirtir.
- Tüm nesneler aynı değeri paylaşır
- Nesne oluşturmadan erişilebilir
- Tek bir kopya vardır
Örnek
class Arac {
static int sayac = 0;
public Arac() {
sayac++;
}
public static void main(String[] args) {
new Arac();
new Arac();
new Arac();
System.out.println("Araç sayaç: " + sayac);
}
}
Araç sayaç: 3
Static Kuralları
- Static metotlar
- Static değişkenler
- Static bloklar kullanılabilir
Static olmayanlar
- Constructor
- Local değişkenler
- Instance değişkenler
Sık Yapılan Hatalar
- Final değişkeni tekrar atamak
- Static kullanımını yanlış anlamak
- Volatile kullanımını yanlış yorumlamak
- Transient’in serialization etkisini bilmemek
Sonuç
Java final, transient, volatile ve static kavramları, performanslı ve doğru Java uygulamaları geliştirmek için kritik öneme sahiptir.