Çalışma zamanı veri alanları
- Java kursu
- Uzman
- Ders 5/46
- 5 dk
Stack, heap ve metaspace'i öğrenirsin.
Çalışma zamanı veri alanları
JVM, çalışma zamanında veriyi ayrı veri alanlarında tutar. Başlıca alanlar: heap (nesneler), stack (yöntem çerçeveleri), Metaspace (sınıf metaverisi) ve program sayacı (PC register).
Heap tüm sınıf örneklerini ve dizileri tutar; paylaşılır ve GC tarafından yönetilir. Stack her parçacık için ayrıdır; her metot çağrısı bir çerçeve (frame) ekler. Çerçeve yerel değişkenleri ve işlenen yığını tutar.
Metaspace sınıf ve metot metaverisini tutar. PC register, parçacığın hangi talimatı çalıştırdığını izler.
Stack çerçevesi
Her metot çağrısında stack'e bir çerçeve (frame) eklenir. Çerçeve üç bileşen içerir: yerel değişkenler (local variables), işlenen yığını (operand stack) ve metot çıkış bölümü.
Metot dönünce çerçeve stack'ten çıkarılır. Stack her parçacık için ayrıdır; bu yüzden iki parçacığın yerel değişkenleri karışmaz. Stack overflow, derin oz yinelemede (recursion) oluşur.
Uygulama Thread adını yazdır
Bir Main sınıfı tanımla. main yönteminde Thread.currentThread().getName() değerini System.out.println ile yazdır. (Ana parçacığın adı 'main'dir.)
Başlangıç kodu
public class Main {
public static void main(String[] args) {
// Su anki parçacığın adini yazdır
}
}Örnek çözüm
public class Main {
public static void main(String[] args) {
System.out.println(Thread.currentThread().getName());
}
}Beklenen çıktı
main
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Thread adını tamamla
Thread t = Thread.____();
System.out.println(t.getName());
Thread t = Thread.currentThread();
System.out.println(t.getName());
Açıklama: currentThread() şu anki parçacığı döndürür.
2 Heap ne tür veri tutar?
- Yerel değişkenler
- Sınıf örnekleri ve diziler Doğru cevap
- Talimatlar
- Parçacık durumları
Açıklama: Heap tüm nesneleri ve dizileri tutar; GC tarafından yönetilir.
3 Veri alanlarını eşleştir
| Kavram | Anlamı |
|---|---|
Heap |
Nesneler ve diziler |
Stack |
Metot çerçeveleri |
Metaspace |
Sınıf metaverisi |
PC register |
Şu anki talimat |