Какво трябва да знаете за виртуалната машина Java?



Този блог ще разгледа подробно концепцията за java виртуална машина с компонентите на нейната архитектура и ключови разлики между JVM, JRE и JDK

езикът е гигант в ИТ индустрията от много дълго време. Той има някои първокласни концепции, които го правят по-добър от останалата част от езика за програмиране. Една такава концепция е виртуалната машина Java, в тази статия ще научим за различните аспекти на виртуална машина в детайли. Следват темите, обсъдени в този блог:

Какво е виртуална машина Java?

Java виртуалната машина е независима от платформа абстрактна машина, която осигурява среда за изпълнение, в която се изпълнява байтовият код на Java.





Това е част от средата на изпълнение на Java, която преобразува байт кода на Java в машинно четим език. Основното което имаме в Java програма всъщност се извиква от Java виртуалната машина.

jvm - java виртуална машина - edureka

Защо се нуждаем от виртуална машина Java?

Имаме нужда от виртуалната машина Java за изпълняваните от нея задачи, които са изключително необходими за всяко развитие, включващо Java. Следват няколко задачи, които Java виртуалната машина прави.



  • Зарежда кода
  • Проверка на кода
  • Изпълнение на кода
  • Той осигурява среда за изпълнение на приложенията
  • Област на паметта
  • Регистърът е зададен
  • Осигурява купчина за събиране на боклук
  • Отчитане на фаталните грешки
  • Осигурява a клас файлов формат

С всички тези операции виртуалната машина Java е неразделна част от разработката на Java. Нека се опитаме да разберем как работи с помощта на архитектурата на виртуалната машина Java.

Архитектура на виртуална машина Java

Архитектурата на виртуалната машина на Java е доста проста, тя има област памет, зареждащ клас и механизъм за изпълнение сред другите компоненти. нека обсъдим всеки от тях подробно.

ClassLoader

Това е подсистема, която се използва за зареждане на файлове от клас. Всеки път, когато стартираме програма в Java, тя първо се зарежда от ClassLoader. основната функция включва инициализация, свързване и зареждане. По-долу са вградените loadloaders в Java.



    • Bootstrap ClassLoader - Това е супер класът на Extension ClassLoader, който зарежда файла rt.jar.

    • Удължаване ClassLoader - Зарежда jar файловете, намиращи се в директорията.

    • Система / Приложение ClassLoader - Той зарежда класните файлове от пътя на класа.

    • Операция по зареждане - Първо classLoader зарежда .class файловете и генерира съответните данни в двоичен формат, който се записва в областта на метода.

    • Операция за свързване - След зареждане се подготвя, проверява и прави резолюция. JVM разпределя паметта за променливи на класа и инициализира паметта до стойности по подразбиране. Той гарантира коректността на .class файла и когато проверката не успее, получаваме грешка при изключение по време на изпълнение.

      java какво е вектор
    • Инициализация - Всички статични променливи се присвояват с техните стойности, дефинирани в кодовия блок в тази фаза.

JVM памет

  • Област на метода - Той съхранява структурите за всеки клас като кода, полевите данни, пула с константа по време на изпълнение, данните на метода и т.н.

  • Купа - Обектите се разпределят по време на изпълнение в купчината.

  • JVM езикови стекове - Той съхранява локални променливи и резултати. Играе важна роля при извикване и връщане на резултатите. Всеки път, когато се извика метод, се създава рамка и се унищожава веднага щом извикването завърши или завърши.

  • PC регистри - Той има адреса или местоположението на JVMinstruction, което се изпълнява.

    pl sql урок за начинаещи с примери
  • Нативни стекове от методи - Всички естествени методи, използвани в приложенията, присъстват в стековете на родните методи.

  • Двигател за изпълнение - Изпълнителният механизъм съдържа виртуален процесор, интерпретатор и a JIT компилатор.

  • Роден метод Интерфейс - Това е което осигурява.

След като разбрахме архитектурата на JVM, нека да разгледаме процеса на изпълнение и компилирането на кода.

Процес на изпълнение

Следващите стъпки се извършват по време на изпълнението и компилирането на Java код.

  • Основният метод се съхранява в един файл, а други методи се съхраняват в различни файлове.
  • След компилацията той ще предостави съответните .class файлове, които ще имат байтовия код без никакви връзки, за разлика от C.
  • По време на изпълнението файловете на класа се проверяват за всякакви нарушения с помощта на Classloader.
  • След това байт кодът се преобразува в съответния собствен машинен код. Това е и причината, поради която Java е сравнително по-бавна.

Сега, когато знаем как работи изпълнението, нека да разгледаме разликата между JDK, JRE и JVM.

Разлика между JDK, JRE и JVM

Следват няколко важни разлики между JDK , JVM и JRE.

  1. JDK означава съвкупност за разработка на Java, а JRE означава среда за изпълнение на Java.
  2. JDK е за разработка, докато JRE е за среда за изпълнение.
  3. JVM е съществена част от JDK и JRE за стартиране на всяка Java програма.
  4. JVM е неразделна част от програмирането на Java и осигурява независимост от платформата.

Това ни води до края на тази статия, където научихме подробно за виртуалната машина Java. Надявам се да сте наясно с всичко споделено с вас в този урок.

Ако сте намерили тази статия за „Java Virtual Machine“ подходяща, разгледайте Edureka , доверена компания за онлайн обучение с мрежа от над 250 000 доволни учащи, разпространени по целия свят.

Ние сме тук, за да ви помогнем при всяка стъпка по вашето пътуване и да изготвим учебна програма, предназначена за студенти и професионалисти, които искат да бъдат разработчик на Java. Курсът е създаден, за да ви даде начален старт в програмирането на Java и да ви обучи както за основни, така и за разширени Java концепции, заедно с различни Java рамки като Hibernate & Spring.

Ако попаднете на някакви въпроси, не се колебайте да зададете всичките си въпроси в раздела за коментари на „Java Virtual Machine“ и нашият екип ще се радва да отговори.