Java Değer ve Referans Tipleri
Java ile nesne yönelimli programlama(OOP) yapabilmek için değer tipi ve referans tipi arasındaki farkın çok iyi anlaşılması gerekir. Peki nedir bu değer ve referans tipi? Gelin birlikte inceleyelim.
Değer Tipi
Değer tipi ilkel veri tipi olarak da adlandırılır (primitive) ve boolean, int, float gibi veri türlerinden oluşur.
Değer tipleri hakkında bilmemiz gereken en önemli şey bu değerlerin Stack Memory’de saklanmasıdır.
Stack Memory
Aklınıza “Stack Memory nedir?” gibi bir soru gelmiş olabilir. Hemen açıklayalım.
Stack Memory hafızada verileri kısa süreli olarak tutan bir mekanizmadır. Kısaca “kullan at” hafıza olarak değerlendirilebilir. Burada değişkenin bizzat kendisi değil değişkene atanan değer tutulur ve kullanılır. Bir örnekle bunu inceleyelim:
int num1 = 5
int num2 = 6
num1 = num2
num2 = 10 System.out.prinln(num1)
Çıktı = 6
Referans Tipi
Referans tiplerinin sıklıkla kullanılanları Class, Array ve Interface veri tipleridir. Bu veri tipleri Heap Memory ’de tutulurlar. Ancak değer tiplerinde olduğu gibi değerler değil nesnenin bellekte bulunduğu adres tutulur. Ve oluşturulan nesneye referans olurlar. Örnek verelim:
int[] numbers= {10,40,63};int[] numbers2 = {12,50,18};numbers2=numbers1;numbers[0]=11;System.out.println(numbers2[0]);Çıktı: 11