Java’da Değer ve Referans Tipler
Bu yazımda değer ve referans tipleri hakkında bilgiler ve aralarındaki farklar hakkında bahsedeceğim.
Değer Tipleri
Yazıya bir soru ile başlamak istiyorum. 20 söyleyende olabilir 40 söyleyende ama cevap 40 tır . Bunun sebebi primitive tipler (int , double ,float ,byte vb.) değer tiplidir ya da başka bir dille value type dir.
Biz number2 = number1 derken number2‘nin değerini 20 ye eşitliyoruz . Ardından number1 = 40 dedikten sonra number1 in değeri 40 diye okuyoruz. Ardından number2 nin değerini istediğimizde 20 buluyoruz.
Referans Tipleri
Benzer bir soru bu kodun çıktısı nedir ? Cevap 10 dur . Hemen açıklayalım.
Biz Stackde bir değişken tanımladığımzda bir sistem bir numara tanımlıyor. Ardından new i gördüğünde anda dizi (Array) Heapde de aynı numarayla oluşuyor . Bizim yazdığımız program sayilar1 in number2yi tutmasını söylüyor. Yani ikisi de Heap de 101 i tutuyor . Böylelikle bellekte 1 nesnemiz oluyor . Ardından numbers1[0] = 10 dediğimizde Heapte 1 yerine 10 yazıyoruz ve numbers2[0] yi println yaptığımızda resimdeki gibi 10 çıkmaktadır.
Okuduğunuz için teşekkürler 🙂