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:
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.
İ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.
👍🏻👍🏻
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Günün kaliteli gönderisi seçildiniz. Steemit-Türkiye Topluluğunda aktif olmaya devam edin.
Steemit Türkiye Team
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
egitici bir yazi olmus tesekkurler.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Beğendiğiniz için teşekkürler.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Güzel bir yazı olmuş 👍🏼
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit