Yazılımda değer ve referans tipler

in hive-179764 •  3 years ago 

Merhaba bugün yazılımda değer ve referans tipler hakkında yazacağım. Yazılım bildiğimiz gibi teknolojinin her alanında kullanılmaya devam ediyor. Teknolojik gelişmeler ilerledikce, yazılımda o kadar ileriye gidiyor. Nesnelerin interneti dediğimizde akla ilk gelen yazılım oluyor. Nesnelerin internetini de programlayanlar yazılımcılar olacağı için ve günümüzde de blockchain olsun, metaverse olsun, tasarım olsun veya herhangi birşeyi yazılım olmadan hayal edemeyiz. Günümüz dünyasında yazılımın önemi daha da ortaya çıkıyor. Bu yüzden herkesin yazılım bilmesi önemli hale gelmeye başlıyor. Yazılımda en önemli konulardan biri de, yazılım dillerinde ortak olan değer ve referans tipler konusunu anlamaktan geçiyor. Bu konuyu anladıkca nesnel olarak daha da ileri seviyeye geçe biliriz. bu konuyu biraz inceleyelim.

Stack ve Heap bellekte (ramda) bulunan mantıksal yapılardır. Primitif tip dediğimiz int, short, byte, long, decimal, double, float gibi tipler value type (değer tip) olarak adlandırılır ve stack de tutulur. Non Primitif tip dediğimiz Class type (Sınıf tipleri), Arrays (diziler), String değişkenler referans tiplerdir, referans ettikleri model (referans) stack de, değerleri ise heap de tutulur. Aralarında bazı farklar vardır. Stack de ki veri hemen silinirken, heap de ki veri Garbage Collector (Çöp Toplayıcı) algoritmasına bağlıdır.

Bir örnek verelim:

heapstack.PNG

Bu örnekte değer ve referans tipleri kodsal olarak inceleyelim. Burada 2 tane sayı değişkeni oluşturdum ve bunları stack da değer tip olarak nasıl tutulduğunu gösterdim. Buna bağlı olarak aşağıdakı resimde gösterdiğim gibi, stack de oluşturulan bir değişkene değer atıldığında ve sonradan aynı değer stack de bulunan farklı bir değişkene atıldığında, dinamik oluşamayacağı için birbirinden habersiz iki farklı değişken mantığında çalışmaya başladı. Yani, artık sayı2 değişkenini sayı1 atadığım için, sayı2 değiştirsemde sayı1 değişmeyecek ve atadığım gibi kalmaya devam edecek.

IMG_20211212_143003.jpg

İkinci örnekte ise 2 tane array değişken oluşturdum ve bunların nasıl referans tip olduğunu göstermeye çalıştım. Referans tiplerde, heap alanında bir obje oluşturulduğunda ve daha sonradan aynı değere sahip farklı bir obje oluşturulduğunda heap alanı zaten böyle bir obje bende var bir daha oluşturmayacağım ve senin tipini bu objeye referans edeceğim der. Referans tiplerde değişkenler stackta, değerleri ise heapte tutulur. sayılar 2 değişkenini sayılar 1 atıyorum, sonra ise sayılar 2-nin 0 elemanını 100 olarak değiştiriyorum. Sonra ise sayılar 1-in 0 elemanını yazdırdığımda, sonucun 100 olarak değiştiğini göreceyim. İşte buna referans tip diyeceğiz. Artık sayılar 1 de sayılar 2-nin adresini referans ettiği için, sayılar 2 de olan değişiklikler, sayılar 1 de de aynı şekilde değişecek. Referans tip özelliği yazılımda nesnel olmayı kolaylaştırıyor.

IMG_20211212_143013.jpg

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

👍🏻👍🏻

kaliteli.png

Günün kaliteli gönderisi seçildiniz. Steemit-Türkiye Topluluğunda aktif olmaya devam edin.

Steemit Türkiye Team

egitici bir yazi olmus tesekkurler.

Beğendiğiniz için teşekkürler.

Güzel bir yazı olmuş 👍🏼