Heap and Stack

 Heap - JVM terefinden obyekt yaratmaq ucun iwlenilen yaddaw yeridir. Buna dynamic memory area da deyilir. Normalda stack - dan daha boyukdur. 

Stack - LIFO(last in first out) prinsipi ile iwleyir. Stack proqramda o anda caliwan, aktiv olan metodlar ucun ayrilan yaddawdir. main-den davam ederek, cagrilan her yeni metod ucun stackda uste yeni bir pencere acilir. Metod iwini bitirende, onu cagiran metoda qayidarken stack-daki pencereleride silir. Stack-daki yaddaw pencereleri onun ucun acilan metodun parametrlerini local deyiwenlerini saxlayir. One gore de local variable -larina stack variable deyilir. 


*** Bir variable eger obyektin bir hissesidirse yeni object variable - dirsa(field) bu zaman heap yaddawdadir. Yox eger local variable-dirsa stack yaddawdadir. 


Mes: 

Car car = new Car();

car.make = "Mercedes";

car.model = "C200";

int speed = car.speed;

Burada: speed, car - stackda yerlewir, Car obyekti ise heap yaddawdadir, hemcinin ona mensub olan make, model de heap da yerlewir. 

Obyektin hissesi olan instance varialbe-lar tipden asili deyil daima heapda olur. Local variable-lar tipden asili olmadan daima stack yaddawda olur. 


-----------------------------------------------------------------------------------------------------------------------------Application start olduqda klasslar haqqinda butun informasiya class loader terefinden metaspace yazilir. Metaspace Java memory-nin bir hissesidir. Java memory ozu 3 hisseye bolunur: stack, heap ve metaspace.  Class variable(static) saxlanilacaq metaspace-de. Eger primitiv variable - dirsa o zaman hem ozu hem deyeri metaspacede saxlanilacaq. Eger reference variable-dirsa o zaman variable ozu metaspace-de lakin deyeri heap yaddawda saxlanilacaq. 

-----------------------------------------------------------------------------------------------------------------------------






Metaspace.

Metodlarin kodlari, JVM-in klaslari yuklediyi metaspace deyilen yaddawda tutulur. 

Комментарии

Популярные сообщения из этого блога

Lesson1: JDK, JVM, JRE

SE_21_Lesson_11: Inheritance, Polymorphism

SE_21_Lesson_9: Initialization Blocks, Wrapper types, String class