SDTR

Yetenekli ve bilgili geliştiricilerden oluşan bir topluluk!

Mülakat #1 -Mutable ve Immutable

Aybars Arslan
SDTR
Published in
2 min readOct 2, 2020

--

Photo by Glenn Carstens-Peters on Unsplash

Merhaba arkadaşlar,

Bu yazımda mülakatlarda sık sık duyduğumuz mutable ve immutable classlarından bahsedeceğim. Bahsederken de pekiştirmiş olacağım. 🙂

Mutable ingilizce kelime anlami olarak değişebilir, immutable ise değişmez anlamına gelmektedir. Aslında kelime anlamı, ne olduğu konusunda gayet açık bir fikir veriyor. Biraz da bu terimleri programcı gözüyle inceleyelim.

Mutable types yeni bir instance yaratıldıktan sonra değişebilen tiplerdir. Immutable types ise instance yaratıldıktan sonra değişemeyen tiplerdir. İngilizce kelime anlamını verdiğim bölümü tekrarladım gibi oldu 😅. Biraz daha derinlemesine bakalım;

Mutable ve Immutabe typeları anlatırken genellikle kullanılan string ve StringBuilder classları üzerinden gideceğim.

string (System.String) : Immutabledır. Yaptığımız her işlem sonunda (concat, replace, substring, +) yeni bir memory üzerinden value okunur. Daha önce var olan memory boşa kalır ve garbage collector bu memory temizler🚿. Yani biz ne zaman elimizde olan string değişkenini güncellersek, yeni bir object oluşur ve değişkenimiz bu objeyi referans edinir. eski obje referanssız kalarak yukarıda belirttiğim gibi çöpe atılmayı bekler.

neden string immutable sorusu aklınıza geliyorsa, click 🖱️

String.Builder : Mutabledır. Yani elimizdeki string’i StringBuilder classından oluşturup append etmek vs gibi operasyonları yaptığımızda, memory’de yeni bir object oluşmaz. StringBuilder’i initialize ettiğimizde elde ettiğimiz objenin üzerinde değişiklikler yapılır.

Photo by Markus Spiske on Unsplash

--

--

SDTR
SDTR

Published in SDTR

Yetenekli ve bilgili geliştiricilerden oluşan bir topluluk!

Aybars Arslan
Aybars Arslan

Written by Aybars Arslan

Basically C# .NET Developer but always looking for new things to improve software development life cycle 🚀

No responses yet