Bölüm 4 · SimülatörYığın ve Heap Gezgini? ← Bölüm 4 ◀ Adım ▶ Oynat Sıfırla Kendini dene Doğru 0 / 0Java koduBellekÇıktı (konsol) KapatYığın ve Heap GezginiAmaç: Java'da değişkenlerin ve nesnelerin bellekte nerede durduğunu görmek. Her metot çağrısı yığında bir çerçeve açar; yerel değişkenler ve parametreler bu çerçevede yaşar. new ile oluşturulan her nesne heap'tedir. Sınıf tipindeki bir değişken nesnenin kendisini değil, ona giden referansı (oku) tutar.Nasıl kullanılır?Soldaki listeden bir program seçin.Adım ▶ / ◀ (klavyede → / ←), Oynat, Sıfırla. Sarı satır şu an çalışan satırdır; bellekte son değişen değer ve ok kırmızı vurgulanır.Kendini dene açıkken çıktıyı ve çöp toplanabilecek nesneleri tahmin edersiniz; doğru sayısı üstte tutulur.GörünümSol sütun yığındır: en altta main, en üstte (kırmızı çerçeveli) şu an çalışan metot. Yapıcı çalışırken kendi çerçevesinde this referansı görünür.Sağda heap: her nesne sınıf adı ve sıra numarasıyla (#1, #2…) gösterilir. Numaralar yalnızca anlatım içindir; Java nesne adresini göstermez.Kesik çizgili soluk nesne: hiçbir canlı referansla ulaşılamıyor, yani çöp toplamaya uygun. Çöp toplayıcının onu ne zaman sileceği belli değildir; ama programın ona bir daha erişme yolu yoktur.Hatırlatmab = a; nesneyi değil referansı kopyalar: iki değişken aynı nesneyi gösterir (takma ad). Birinden yapılan değişiklik ötekinden de görünür.Java her şeyi değere göre aktarır; referans tipinde aktarılan değer referanstır. Metot nesnenin alanlarını değiştirebilir, ama parametreye yeni nesne atamak çağıranın değişkenini değiştirmez.Nesne dizisinin öğeleri referanstır ve başlangıçta null olur; null üzerinden alan ya da metot kullanmak NullPointerException fırlatır.Başka nesneleri gösteren bir nesne de, kendisine ulaşan yol kalmadıysa çöp toplamaya uygundur.Programların çıktıları javac --release 8 ile derlenip Java 8 üzerinde çalıştırılarak doğrulanmıştır.İlgili sunum: Bölüm 4 · Nesne ve Sınıflar (Referanslar, new Araba(...): Adım Adım, Referans Atama, null ve NullPointerException).