Bölüm 3 · SimülatörDeğer ile Aktarım Laboratuvarı? ← Bölüm 3Java koduÇağrı yığınıHeap Çıktı KapatDeğer ile Aktarım LaboratuvarıAmaç: Java'da bir metoda argüman geçirildiğinde ne kopyalandığını görmek. Java her zaman değer ile aktarım yapar: argümanın değeri parametreye kopyalanır. İlkel tiplerde bu değer sayının kendisidir; dizi, nesne ve String değişkenlerinde ise heap'teki nesnenin referansıdır. Nesnenin kendisi kopyalanmaz.Nasıl kullanılır?Soldan bir program seçin. Adım ▶ / ◀ Geri (klavyede → / ←), Oynat, Sıfırla.Ortada çağrı yığını: en altta main, en üstte şu an çalışan metodun çerçevesi (vurgulu). Sağda heap: new ile oluşturulan diziler ve nesneler. Referans tutan değişkenlerden çıkan ok, gösterdiği nesneye gider; son adımda değişen değer ve ok vurgulanır.Hiçbir değişkenin göstermediği nesne soluk ve kesik çizgili görünür: artık erişilemez, çöp toplayıcı onu temizleyebilir.Kendini dene açıkken bazı adımlarda sonucu tahmin edersiniz; adımın etkisi cevaptan sonra görünür.Akılda kalacaklarMetot, parametresine yeni bir değer atarsa (x = …, d = new int[3], p = new Nokta()) yalnızca kendi kopyası değişir; çağırandaki değişken etkilenmez.Metot, referansın gösterdiği nesneyi değiştirirse (d[0] = 99, p.x = …) çağıran da değişikliği görür, çünkü iki referans aynı nesneyi gösterir.Bu yüzden iki referansı takas eden bir metot çağıranın değişkenlerini takas edemez.String değiştirilemez: s + "!" yeni bir nesne oluşturur. Metodun sonucu çağırana return ile ulaştırılabilir.@1, @2 gibi adlar gösterim içindir; gerçek adresler JVM'e bağlıdır. Tüm programların çıktıları javac --release 8 + java ile doğrulanmıştır.İlgili sunum: Bölüm 3 · Fonksiyonlar (Değer ile Aktarım, Çağrı Yığını İzleme).