loading...

مرجع طراحی سایت حرفه ای

بازدید : 78
يکشنبه 11 آذر 1403 زمان : 9:26

معماری داخلی JVM
در تحت به تفصیل معماری داخلی JVM می‌پردازیم. معماری JVM قسمت هایی طراحی سایت در مشهد نظیر classloader، memory area، execution engine و غیره … را مشمول می‌گردد.

Classloader

Classloader زیرسامانه ی اپ ی JVM بوده و class file هایی که دربردارنده bytecode جاوا است را در حوزه‌ ای به اسم runtime data area یا این که جای ذخیره ی داده های مجال انجام بار گذاری می نماید.

Class (Method) Area / حوزه‌ ی ذخیره ی داده ها کلاس

این منطقه ساختارهای مخصوص کلاس نظیر تیم ثوابت فرصت جاری ساختن (runtime constant pool)، فیلد، داده و کد مرتبط با متدها را در خویش ذخیره می نماید.

Heap

منطقه ای در یاد که آبجکت ها در طی جاری ساختن در آن ذخیره می گردند.

Stack (حفاظه ی پشته)

منطقه ی stack در خاطر که frame ها را در خویش ذخیره می نماید (stack به معنی کلی به حیطه ای از یاد گفته می‌گردد که اطلاعات به طور static و در حین کامپایل در آن ذخیره میگردند). متغیرهای محلی و نتیجه ها جزئی را نگه داشته و در فراخوانی اسلوب و بازگردانی خروجی از آن سیاق، نقش دارااست. هر thread یک JVM stack داراست که هم‌زمان با thread ساخت‌و‌ساز میگردد. همینطور با هربار فراخوانی سیاق، یک frame تازه ساخته میشود. وقتی که فراخوانی سیاق خاتمه یافت، frame مربوطه حذف میگردد.

Program Counter Register (شمارشگر ی نرم‌افزار)

این واحد خاطر ای با دسترسی سریع و راحت در پردازنده ی رایانه میباشد که نشانی دستوری از نرم‌افزار ی JVM که در طی حاضر در اکنون اعمال میباشد را در خویش نگه میدارد.

Native method stack (خاطر پشته حمل کننده متدهای native)

این واحد همه متدهای native که در نرم افزار بکار میروند را دربر میگیرد.

Execution Engine (موتور اجراکننده)

این واحد خویش قسمت های تحت را مشتمل بر می گردد:

یک virtual processor: یک CPU فیزیکی که برای دستگاه مجازی اختصاص می‌یابد.
مفسر یا این که interpreter: کدهای کامپایل گردیده به لهجه میانی یا این که bytecode را خوانده و بعد از آن امرها را انجام نماید.
Just-In-Time (JIT) Compiler (قابلیت و امکان کامپایل و ترجمه در لحظه): این واحد جهت ارتقا سرعت ایفا و بهبود عملکرد بکار می رود. JIT نصیب هایی از bytecode که قابلیت و امکان و کوشش یکسان دارا هستند را هم‌زمان ترجمه کرده و به‌این وسیله فرصت ما یحتاج برای کامپایل کلی کد را کاهش می‌دهد. قابل ذکر میباشد که در اینجا خواسته کلمه و واژه ی compiler، مترجمی میباشد که گروه اوامر jvm را به کد یا این که دستورها قابل درک برای پردازنده/cpu دستگاه صاحب خانه تبدیل می نماید.
سوال ها متداول درباره ماشین مجازی جاوا
+ تفاوت در میان JVM، JRE و JDK چیست؟
JVM (Java Virtual Machine): همان طور که گفته شد، JVM هسته اساسی اطراف اجرای جاوا میباشد.
JRE (Java Runtime Environment): فضا فرصت اعمال جاوا مشمول JVM و کتابخانه‌های کلاس استاندارد جاوا میباشد که برای اجرای اپلیکیشن‌های جاوا ما یحتاج میباشد.
JDK (Java Development Kit): کیت گسترش جاوا مشمول JRE و ابزارهای گسترش مانند کامپایلر، دیباگر و … میباشد که برای پیشرفت نرم‌افزار‌های جاوا گزینه به کارگیری قرار می گیرد.
+ چه گویش‌هایی بر روی JVM انجام میگردند؟
جاوا: گویش مهم که برای JVM پیاده سازی گردیده است.
Kotlin: کاتلین زبانی امروزی و سازگار با جاوا که به صورت بزرگ در بسط اندروید استعمال میگردد.
Scala: زبانی قادر و کاربردی برای نرم‌افزار‌نویسی همروند و توزیع گردیده.
Groovy: زبانی پویا و انعطاف‌پذیر که برای توسعه و گسترش سریع اپ‌ها مطلوب میباشد.
و بخش اعظمی از لهجه‌های دیگر…

معماری داخلی JVM
در تحت به تفصیل معماری داخلی JVM می‌پردازیم. معماری JVM قسمت هایی طراحی سایت در مشهد نظیر classloader، memory area، execution engine و غیره … را مشمول می‌گردد.

Classloader

Classloader زیرسامانه ی اپ ی JVM بوده و class file هایی که دربردارنده bytecode جاوا است را در حوزه‌ ای به اسم runtime data area یا این که جای ذخیره ی داده های مجال انجام بار گذاری می نماید.

Class (Method) Area / حوزه‌ ی ذخیره ی داده ها کلاس

این منطقه ساختارهای مخصوص کلاس نظیر تیم ثوابت فرصت جاری ساختن (runtime constant pool)، فیلد، داده و کد مرتبط با متدها را در خویش ذخیره می نماید.

Heap

منطقه ای در یاد که آبجکت ها در طی جاری ساختن در آن ذخیره می گردند.

Stack (حفاظه ی پشته)

منطقه ی stack در خاطر که frame ها را در خویش ذخیره می نماید (stack به معنی کلی به حیطه ای از یاد گفته می‌گردد که اطلاعات به طور static و در حین کامپایل در آن ذخیره میگردند). متغیرهای محلی و نتیجه ها جزئی را نگه داشته و در فراخوانی اسلوب و بازگردانی خروجی از آن سیاق، نقش دارااست. هر thread یک JVM stack داراست که هم‌زمان با thread ساخت‌و‌ساز میگردد. همینطور با هربار فراخوانی سیاق، یک frame تازه ساخته میشود. وقتی که فراخوانی سیاق خاتمه یافت، frame مربوطه حذف میگردد.

Program Counter Register (شمارشگر ی نرم‌افزار)

این واحد خاطر ای با دسترسی سریع و راحت در پردازنده ی رایانه میباشد که نشانی دستوری از نرم‌افزار ی JVM که در طی حاضر در اکنون اعمال میباشد را در خویش نگه میدارد.

Native method stack (خاطر پشته حمل کننده متدهای native)

این واحد همه متدهای native که در نرم افزار بکار میروند را دربر میگیرد.

Execution Engine (موتور اجراکننده)

این واحد خویش قسمت های تحت را مشتمل بر می گردد:

یک virtual processor: یک CPU فیزیکی که برای دستگاه مجازی اختصاص می‌یابد.
مفسر یا این که interpreter: کدهای کامپایل گردیده به لهجه میانی یا این که bytecode را خوانده و بعد از آن امرها را انجام نماید.
Just-In-Time (JIT) Compiler (قابلیت و امکان کامپایل و ترجمه در لحظه): این واحد جهت ارتقا سرعت ایفا و بهبود عملکرد بکار می رود. JIT نصیب هایی از bytecode که قابلیت و امکان و کوشش یکسان دارا هستند را هم‌زمان ترجمه کرده و به‌این وسیله فرصت ما یحتاج برای کامپایل کلی کد را کاهش می‌دهد. قابل ذکر میباشد که در اینجا خواسته کلمه و واژه ی compiler، مترجمی میباشد که گروه اوامر jvm را به کد یا این که دستورها قابل درک برای پردازنده/cpu دستگاه صاحب خانه تبدیل می نماید.
سوال ها متداول درباره ماشین مجازی جاوا
+ تفاوت در میان JVM، JRE و JDK چیست؟
JVM (Java Virtual Machine): همان طور که گفته شد، JVM هسته اساسی اطراف اجرای جاوا میباشد.
JRE (Java Runtime Environment): فضا فرصت اعمال جاوا مشمول JVM و کتابخانه‌های کلاس استاندارد جاوا میباشد که برای اجرای اپلیکیشن‌های جاوا ما یحتاج میباشد.
JDK (Java Development Kit): کیت گسترش جاوا مشمول JRE و ابزارهای گسترش مانند کامپایلر، دیباگر و … میباشد که برای پیشرفت نرم‌افزار‌های جاوا گزینه به کارگیری قرار می گیرد.
+ چه گویش‌هایی بر روی JVM انجام میگردند؟
جاوا: گویش مهم که برای JVM پیاده سازی گردیده است.
Kotlin: کاتلین زبانی امروزی و سازگار با جاوا که به صورت بزرگ در بسط اندروید استعمال میگردد.
Scala: زبانی قادر و کاربردی برای نرم‌افزار‌نویسی همروند و توزیع گردیده.
Groovy: زبانی پویا و انعطاف‌پذیر که برای توسعه و گسترش سریع اپ‌ها مطلوب میباشد.
و بخش اعظمی از لهجه‌های دیگر…

نظرات این مطلب

تعداد صفحات : 0

درباره ما
موضوعات
آمار سایت
  • کل مطالب : 699
  • کل نظرات : 0
  • افراد آنلاین : 1
  • تعداد اعضا : 0
  • بازدید امروز : 47
  • بازدید کننده امروز : 1
  • باردید دیروز : 599
  • بازدید کننده دیروز : 0
  • گوگل امروز : 0
  • گوگل دیروز : 0
  • بازدید هفته : 1198
  • بازدید ماه : 2435
  • بازدید سال : 8475
  • بازدید کلی : 163100
  • <
    اطلاعات کاربری
    نام کاربری :
    رمز عبور :
  • فراموشی رمز عبور؟
  • خبر نامه


    معرفی وبلاگ به یک دوست


    ایمیل شما :

    ایمیل دوست شما :



    کدهای اختصاصی