Sobes.tech
Junior

Nesneler bellekte nerede saklanır?

sobes.tech yapay zeka

AI'dan gelen yanıt

Bellek içindeki nesneler yığın (heap) üzerinde saklanır.

Yığın, program çalışırken nesnelerin yerleştirildiği dinamik olarak tahsis edilen bir bellek alanıdır. Nesnelerin boyutu önceden bilinmez ve çöp toplayıcı tarafından silinirler.

İlkel veri tipleri (tam sayılar, boolean değerleri vb.) genellikle yığın (stack) üzerinde saklanır. Yığın, statik olarak tahsis edilen ve yerel değişkenler ile fonksiyon çağrısı bilgilerini tutmak için kullanılan bir bellek alanıdır ve otomatik olarak yönetilir.

Nesne referansları (yani, yığında adresler) yığında veya yığında diğer nesnelerde saklanır.

Java örneği:

// İlkel tip değişkeni (int) yığında saklanır.
int count = 10;

// Referans değişkeni (myObject) yığında saklanır.
// MyObject nesnesi ise yığında oluşturulur.
MyObject myObject = new MyObject();

// Nesne içindeki ilkel tip (id) nesnenin bir parçası olarak yığında saklanır.
myObject.setId(1);

// myObject içindeki başka bir nesneye (anotherObject) referans
// myObject'in bir parçası olarak yığında saklanır. AnotherObject nesnesi de yığında.
myObject.setRelatedObject(new AnotherObject());

class MyObject {
    private int id; // yığında saklanır (MyObject'in bir parçası olarak)
    private AnotherObject relatedObject; // yığında saklanan referans

    public void setId(int id) {
        this.id = id;
    }

    public void setRelatedObject(AnotherObject relatedObject) {
        this.relatedObject = relatedObject;
    }
}

class AnotherObject {
    // ...
}

Sonuç olarak:

  • Yığın: İlkel tipler, nesne referansları.
  • Yığın dışı (Heap): Kendisi nesneleri içerir, kendi alanlarını (içinde ilkel tipler ve diğer nesne referansları dahil) barındırır.