Java Memory Model

JVM دقیقا مثل باقی برنامه ها یک فضا رو توی رم اشغال می‌کنه و خودش کامل اون رو مدیریت می‌کنه. ستا فضای کاملا جدا از هم داریم که JVM داده‌های زمان اجرا و کدهای کامپایل شده رو اونجا نگه‌میداره.

ادامه نوشته

The end of the Java's Architecture's Story

ما در مورد اینکه برنامه‌ها چجوری اجرا می‌شن صحبت کردیم ولی درباره اجرا کننده برنامه‌ها هیچ صحبتی نکردیم.

ادامه نوشته

Execution Engine

bytecode ها اینجا اجرا می‌شن. Execution Engine دستورات رو خط به خط اجرا می‌کنه‌.

ادامه نوشته

Runtime Data Area

JVM داخل رم یک فضا برای بارگذاری داده‌ها در اختیار داره. class loader شی باینری متناظر هر کلاس رو تولید می‌کنه و اونها رو بصورت جداگانه و با اطلاعات زیر به Runtime Data Area می‌‌ده و اون هم توی method area ذخیره می‌کنه.

ادامه نوشته

Class Loader Subsystem

به ازای هر برنامه که اجرا می‌شه یک نمونه از ماشین مجازی جاوا JVM داخل رم سیستم بارگذاری می‌شه و با استفاده از Class Loader Subsystem کلاس های مورد نظر رو وارد رم می‌کنه و بهش می‌گن dynamic class loading که کلاس‌ها رو load و link و initialize می‌کنه. البته این کار رو فقط یک بار در زمان اجرا انجام می‌ده.

ادامه نوشته