Stack ve Heap Memory Arasındaki Temel Farklar

43670 kez okundu.

Çok daha ayrıntılı olan bu iki memory tipiyle ile ilgili aralarındaki temel farkları konu eden bir yazı hazırladım. İki memory tipini de daha sonra uzun uzun anlatmayı planlıyorum. Şimdi temel farklarına bakalım

1. Temel fark; metod çağrıları ve yerel değikenler Stack’in içerisinde bulunurken oluşturulan objeler Heap memory içerisinde bulunur. Objenin nerede üretildiğinini bir önemi yoktur. İster yerel bir değişken ister üye değişken ya da sınıf değişkeni olsun mutlaka Heap memory’de bulunur.

stackheap

2.  Tüm Thread’ler kendi Stack’lerine sahiptir. Ama Heap memory’de böyle bir durum söz konusu değildir.

3. Eğer Stack alanında yeni bir metot çağrısı veya yerel değişken için yer kalmazsa JVM java.lang.StackOverFlowError hatası fırlatırken Heap memory’de obje oluşturmak için yeterli alan kalmaması durumunda java.lang.OutOfMemoryError hatası fırlatılır.

4. Eğer Recursion(kendi kendini çağıran metot) kullanıyorsanız Stack memory’i çok kısa bir zamanda doldurabilirsiniz. Ayrıca Stack memory’nin boyutu default olarak Heap memory boyutuna göre oldukça azdır.

5. Stack memory’deki yerel değişkenler sahip Thread’e özel olurken Heap memory’de saklanan objelere tüm Threadler ulaşabilir.

 

 

You may also like...

Yorum Yazın

avatar
  Subscribe  
Notify of