Kofe Al
  • Авторы
  • Блог
  • ЧАВО
  • ru Русский
    • ru English
    • ru Azərbaycan
    • ru Türkce
  • Войти Регистрация
Kofe Al
  • ru Русский
    • ru English
    • ru Azərbaycan
    • ru Türkce

Делай то, что любишь, получай донаты от своей аудитории!

  • ru Русский
    • ru English
    • ru Azərbaycan
    • ru Türkce
    • Авторы
    • Блог
    • ЧАВО
Войти Регистрация
Подписывайтесь на нас
Farida Fatali
  • Java və JVM
    Farida Fatali
  • 443 Просмотры
  • 07.08.2023
  • 4 мин. чтения

Java və JVM

Java necə işləyir? Java Virtual Maşın (JVM) nədir?

Java və JVM

Biz hər hansı bir IDE-də proqram yazsaq, o, bizim kompüterimizdə qovluq yaradır və IDE-də gördüyümüz işlər eynilə kompüterimizdə yaranan həmin qovluğun içində də təkrarlanır. Bu qovluğu həmin IDE-nin kompüterimizdə yaratdığı qovluqda tapmaq olar (məsələn, Netbeans ilə işləyiriksə, C:\Users\User\Documents\NetBeansProjects....). Yaranan həmin qovluqda src (Source Package), onun da içində proqramımızın adı ilə eyni olan qovluğu açırıq və içində .java fayllarını görürük.

Burada gördüyümüz .java faylı sadəcə mətn yazmaq üçün olan bir fayldır. Bu qovluqda olub IDE-də proqramımızın içində görmədiyimiz bütün fayllar həmin IDE-nin arxa fonunda işləyir, IDE isə bu qovluğu bizə proyekt, proqram olaraq göstərir. IDE bizə bu proqramla rahat şəkildə işləmə imkanı verir.

Kompüterimizdə Java yüklədikdən sonra yaranan qovluqda (C:\Program Files\Java) da 2 fərqli qovluq olduğunu görürük: jdk və jre qovluqları.

Hər ikisində də ayrılıqda “bin” adlı qovluq vardır. Jdk qovluğunda olan Bin qovluğunda digər fayllarla yanaşı, həm java.exe, həm də javac.exe faylları olduğu halda, Jre qovluğunda olan Bin qovluğunda isə bu ikisindən yalnız java.exe faylı var, javac.exe yoxdur. (javac.exe - Java Compiler, java.exe - Java Interpreter)

JavaC – Java Compiler (Java kompayler – Java tərtibçi) deməkdir. Biz IDE-də yazdığımız kodu işə salanda, yəni “run” edəndə, IDE sanki gedib jdk qovluğunun içində olan javac faylını çağırır. Javac isə insanın başa düşəcəyi dildə olan və sonu .java ilə bitən həmin faylı compile (kompayl) edir, tərtib edir və maşının başa düşəcəyi dilə çevirir, hansı ki, o kodu da insan başa düşmür. Yəni insanın başa düşəcəyi dildə yazılan kod .java ilə bitən koddur, onu özümüz yazırıq > Compiler onu compile edərək baytkoda çevirir > sonra da .class faylı yaranır ki, bunu da insan başa düşmür, bu, maşının başa düşəcəyi dildə olur.

Biz IDE-də proyekt yaratdığımız zaman kompüterdə o proyekt üçün Src qovluğu yaranırdı, hansı ki, içində .java faylları olurdu. Biz proyekti işə saldığımız, yəni run etdiyimiz zaman isə proyektin qovluğunda avtomatik olaraq bir də Classes adlı qovluq yaranır ki, yaranmış həmin .class faylları da orada toplanır (C:\Users\User\Documents\NetBeansProjects\NewProject\target\classes). IDE-də hansı siniflər yaratmışıqsa, onların hər birini burada sonu .class olan fayl olaraq görə bilərik. Amma biz kompüterimizdə olan bu .class fayllarını açsaq da kodu anlamayacağıq, çünki bu artıq maşın dilinə çevrilib. Bu koda Java dünyasına “Byte Code” (bayt kod) deyilir.

Daha sonra jdk > lib qovluğunda olan JVM (Java Virtual Machine – Java Virtual Maşın) gəlir, maşın dilində olan həmin bayt kodu oxuyur və Əməliyyat Sisteminə komanda verərək, yazılan koda əsasən, nə etməli, hansı əməliyyatı icra etməli olduğunu deyir. Əməliyyat Sistemi də aldığı bu komandaya uyğun olaraq, həmin işi icra edir.

Yaxud sxem olaraq, daha sadə üsulla belə də izah etmək olar:

Burada Windows, macOS, Linux kimi Əməliyyat Sistemləri olur.

Virtual Maşın o deməkdir ki, o, fiziki olaraq mövcud olmayan bir maşındır, virtualdır, biz ona toxuna bilmirik, o sadəcə kompüterin içində virtual olaraq mövcuddur. Bu, bir proqram olduğuna, işləyib, nələrisə başa düşüb icra etdiyinə görə də buna maşın deyilir. Jdk qovluğunda olan java işə düşür, amma işləyən təkcə o deyil, java sadəcə başlanğıc nöqtəsidir. O işə düşür və oradakı bütün fayllardan istifadə edərək, bir virtual maşın qurur. Bu zaman .class faylını əldə etdikdən sonra .java faylları bizə lazım olmur, çünki işə düşən onsuz da .class fayllarıdır, Java .class fayllarını işə salır. Yuxarıda deyildiyi kimi, bin qovluğunda java və javac faylları olduğu halda, jre qovluğunda java faylı var, amma javac faylı yoxdur. Çünki jre qovluğu proqramı compile etmək üçün yox, işə salmaq üçün mövcuddur. Yəni bizim proqramımızın hansısa kompüterdə işə düşməsi üçün bizə jdk yox, jre lazımdır ki, compile etməsin, sadəcə işə salsın. Bir proqramçı həm kod yazıb onu compile etməli, həm də kodu işə salmalıdır. Ona görə də jdk yükləyəndə bunların hər ikisi onun içində avtomatik yüklənir.

  • Jre - Java Runtime Enviroment, yəni iş zamanı olan mühit mənasını verir. Bu isə Javadır, javac deyil.
  • Jdk – Java Development Kit, yəni proqramistin kod yazması zamanı ona lazım olan bütün alətlər mənasını verir.

Bunların hər ikisi jdk-nın içində var.

Другие посты

Özünü analiz etmə üsulu

Özünü analiz etmə üsulu

  • 304 Просмотры
  • 17.12.2024
  • 1 мин. чтения
Özünü daha yaxşı tanımaq üçün bu üsulu istifadə et. ...
Все
Больше
Səni özünə gətirəcək bir neçə cümlə

Səni özünə gətirəcək bir neçə

  • 335 Просмотры
  • 14.12.2024
  • 1 мин. чтения
Bu fikirləti oxu və bir yerə qeyd et... ...
Все
Больше
kofe.al

Мы создали проект для поддержки талантливых и креативных людей как вы. Присоединяйтесь к нам!

Как это работает?
  • Донаты
  • Подписка
  • Магазин
  • QR-коды
  • Отличие
Интеграции
  • Facebook
  • Instagram
  • TikTok
  • Telegram
  • Wordpress
Kofeal
  • О нас
  • Правила
  • Политика конфиденциальности

Copyright © 2025 проект BONPARA. Все права защищены.