Шта је ЈВМ?

ЈВМ је Спецификација у којој је функционисање Јава виртуелне машине посебно описано. Међутим, алгоритам је независан идентитет који бирају само пружаоци имплементације попут Орацле-а и других реномираних компанија. Као такав, ЈВМ је имплементација позната као Јава Рунтиме Енвиронмент (ЈРЕ).

Дефиниција

Дефинисана је као опис софтверског програма који нуди окружење за вријеме извођења кода и његово значајно извршавање. Другим речима, то је начин на који покрећемо Јава програме - конфигуришући поставке ЈВМ-а и ослањајући се на њега како би се носио са програмским ресурсима током процеса извршења.

Разумевање

Јава је позната као платформа независна због Јава виртуелне машине. Када се подношење врши на различитим рачунарима са различитим оперативним системом који има ЈВМ, бајт код се ЈВМ интерпретира на машински ниво језика. Да будемо прецизнији, програми ЈВМ су написани на програмском језику Ц, док је ЈВМ независан од оперативног система. То је кључна компонента Јава архитектуре.

Поред свега тога, одговоран је за додјељивање есенцијалне меморије коју захтијева Јава програм. Такође је одговоран за забрану меморијског простора.

Шта ради?

Кључне операције које ЈВМ обавља су следеће:

  • Учитавање кода
  • Верификација кода
  • Извођење кода
  • Руковање окружењем

Поред свега тога, он уводи класификације за формат датотеке класе, подручје меморије, гомилу сакупљену смећем, скуп регистра, фатално пријављивање грешака итд.

ЈВМ Арцхитецтуре

Доносимо неколико кључних увида у унутрашњу архитектуру ЈВМ која се састоји од:

1. Цласслоадер

То је подсистем ЈВМ-а који се користи за учитавање датотека класа. Док покреће јава програм, прво га учитава учитавач. Три учитавача класи које садржи Јава су следећа:

а) Боотстрап ЦлассЛоадер

То је супер класа Ектенсион Цласслоадер-а. Помаже при учитавању рт.јар датотека које носе све датотеке класе.

б) Ектелл ЦлассЛоадер

То је надређени програм за учитавање системског учитавача и дечији учитач Боотстрапа. Датотеке за јар у директоријуму $ ЈАВА_ХОМЕ / јре / либ / ект могу се извући кроз Ектенсион ЦлассЛоадер.

Ц) Систем за учитавање система / апликација

То је дијете продужитеља класе Ектенсион, познато и као Апплицатион цласслоадер. Датотеке класе са класа пута могу се извући кроз њега. Цласспатх, који је подразумевано постављен у тренутни директоријум, може се променити помоћу прекидача '-цп' или '-цласспатх'.

2. Подручје класе (метода)

Структуре пред класе, као што су подаци о пољу и методама, константа времена извођења и код за методе, смештају се у област класе (метода). То је меморија која је створена при покретању ЈВМ-а и дели се између свих Тхреадс-а попут Хеап-а.

3. Хеап

Објекти се додјељују преко овог корисног подручја података о времену извођења. То је меморијско место за смештање објеката, заједно са променљивим инстанцама. Кад год се на Јави створи неки предмет, он одлази у гомилу - подручје меморије.

4. Стацк

Упоредо са чувањем оквира, Јава Стацк садржи променљиве и делимичне резултате. Такође игра кључну улогу у методи, призивању и повратку. Свака појединачна нит састоји се од свог приватног ЈВМ скупа, створеног истовремено с нитом. Кад год метода ескалира, нови се оквир генерише и разбија када се заврши позив на методу.

5. Регистар бројача програма (ПЦ)

ПЦ регистар садржи адресу упутства ЈВМ у тренутку његовог извршења. Пратећи упутства, има вредност за сваку инструкцију која није дефинирана за изворне методе.

6. Стаге Нативе Метход

Нативни поступци који се користе у апликацијама су дио Нативе Метход Стацк-а. Ове методе су написане на језицима који нису Јава. Повезане са сваком нити, имплементације ЈВМ-а не могу се ослонити на конвенционалне скупове и не могу учитавати нативне методе. Да будем прецизан, сличан је стацку, али се користи за изворне методе.

7. Мотор

Као кључни аспект ЈВМ-а, он комуницира са својим различитим областима меморије. Ово укључује:

а. Ђубретар

Ово игра виталну улогу у ЈВМ-овом динамичном систему управљања меморијом. Меморија која је заузета и на коју се више не односи ниједан од приступачних Јава објеката ослобађа се кроз Гарбаге Цоллецтор.

б. Преводилац

Он извршава упутства након што прочита ток бајтова.

ц. Компилатор Јуст-Ин-Тиме (ЈИТ)

Омогућујући побољшање перформанси, ЈИТ преводилац истовремено саставља делове бајт-кода са сличном функционалношћу. Помаже у смањењу времена потребног за процес компилације.

8. Јава Нативе Интерфаце (ЈНИ)

Апликације скриптиране на другим језицима, нпр. Ц, Ц ++, Монтажа, итд. Могу се повезати преко интерфејса који испоручује ЈНИ. ЈНИ оквир користи Јава за интеракцију с ОС библиотекама или за слање резултата на конзолу.

У чему се користи ЈВМ?

ЈВМ има две главне функције: омогућити Јава програмима да се покрећу на било ком уређају или оперативном систему (познатом као принцип „Пиши једном, трчи било где“), и за управљање и оптимизацију програмске меморије.

Предности и мане

Јава програми се прикладно извршавају кроз ЈВМ. Битецоде - средњи језик користи се за компилацију Јава програма и затим се извршава путем ЈВМ. Сваки појединачни програм који се саставља у бајт код може изводити било која платформа коју покреће ЈВМ. Ово омогућава Јава софтверу да буде ефикаснији и компатибилнији овисно о различитим рачунарским платформама. ЈВМ има неколико значајних предности и недостатака које би сваки програмер требало пажљиво одмерити пре него што уложи у развој Јава.

1. Сигурност

Кроз ЈВМ сигурносне потезе, програмери могу ефикасно писати Јава програме високе класе. Омогућује ресурсе оперативног система да идентификује злонамјерни софтвер и такође помаже у његовом спречавању.

2. Перформансе

Јава програми који се покрећу на ЈВМ вероватно ће нудити спорије извршавање у поређењу с програмима који су написани на Ц ++. То је последица оптимизације кода која се претјерано ослања на различите карактеристике специфичне за систем. Такође, Јава бајт код не може да се оптимизује за одређени хардверски скуп, пошто је неутралан о систему.

3. Тачност

Тачан је програм, који ради ефикасно и у потпуности испуњава очекивања корисника. ЈВМ-ове уграђене функције омогућавају му да ради исправно и без грешака.

Зашто бисмо користили ЈВМ?

Упркос томе што има Јава синтактички код, ЈВМ може да ради на разним језичким програмима. Ниже су разлози зашто се толико користи и зашто је користити на различитим платформама:

Користи хеап меморију: Хеап меморија је основна компонента која се користи за динамичку расподјелу меморије за дефинисање класа и иницијализацију објеката и пошто ЈВМ подржава хеап меморију, има широку прихваћеност.

Обезбеђивање сигурности за удаљену локацију кода: ЈВМ оквир је дизајниран на такав начин да се даљинска апликација лако извршава. Ова теорија је праћена за извршавање Јава Апплета.

Закључак

Чињеница да ЈВМ ради на више оперативних система даје му палац у домену технологије. Користећи га у оперативном систему Виндовс, Линук и осталим ОС-овима, омогућено је да трансформише бајт код без обзира на хардвер и ОС који треба да се изврши. Поред тога, његова способност да пружа сигурност домаћем рачунару обезбеђивањем њихових података и програма још један је разлог зашто је ЈВМ био толико успешан у прошлости и наставља да буде доминантан у будућности.

Препоручени чланци

Ово је водич за шта је ЈВМ (Јава Виртуал Мацхине). Овде смо разговарали о основним концептима са списком Архитектуре и употребе ЈВМ-а. Можете и да прођете кроз друге наше предложене чланке да бисте сазнали више -

  1. Најбољи оквири Јавасцрипт
  2. Оријентисан је на Питхон
  3. Примене Ц ++ у стварном свету
  4. Каријера у АСП.НЕТ-у
  5. ЈРЕ вс ЈВМ | Топ 8 разлика са (Инфограпхицс)

Категорија: