Java nədir?

Təməl anlayışlar, compiler, interpreter, bytcode, virtual machine, JRE, JDK JVM

Tarixindən çox bəhs etməyəcəyəm, Java ilk olaraq 1991-ci ildə Sun Microsystems şirkətində James Gosling və Patrick Naughton tərəfindən yaradılmışdır. Sonrasında Oracle şirkəti tərəfindən alındı.

Java Proqramlaşdırma Dili

Hərşeydən öncə, Java bir proqramlaşdırma dilidir, Obyekt Yönümlüdür və platformadan asılı bir dil deyil. Daha sonraklı yazılarımda detallı şəkildə izah edəcəm nədir Obyekt Yönümlü Proqramlaşdırma. Java fayllarının sonluğu .java ilə bitir, daha sonra compiler vasitəsi ilə bytecode-a çevrilir və Java Virtual Maşın (JVM) daxilində icra olunur.

Java Bytecode

Yazdığımız Java kodlar dediyimiz kimi .java fayllaında saxlanılır və daha sonra biz compiler vasitəsi ilə JVM-nin başa düşəcəyi dilə çeviririk yəni bytecode-a çeviririk və bu compiler olunmuş fayl artıq .class sonluğu ilə bitir. Bytecode-a çevirməkdə məqsəd JVM tərəfindən icra olunmasını istəməkdir.

Java Virtual Maşın (Java Virtual Machine vəya JVM)

Java platformadan asılı bir deyil demişdik yuxarıda. Bunun səbəbi Java proqramlarının JVM üzərində çalışmasıdır. Proqram icrası 3 hissədən ibarətdir:

  1. Java dilində kodlarımızı yazırıq və saxlayırıq .java faylında.

  2. Compile edirik bytecode-a və .java fayllarımız artıq .class fayl sonluğu ilə bitir.

  3. Son olaraq, JVM compile edilmiş faylları icra edir və yazdığımız proqramı çalışdıırır.

Qısaca başa düşdük ki, JVM-nin əsas məqsədi bytecode-ları icra eləməkdi. Biz bir dəfə yazdığımız proqramı bytecode-a çevirdiksə JVM quraşılı olan istənilən operativ sistemdə; Windows, Linux və ya Mac OS-də çalışdırmaq mümkündür. Ona görə deyilib Write once, run anywhere (bir dəfə yaz, hər yerdə çalışdır).

Compiled və İnterpreted

Bu suala çoxumuz rast gəlmişik, Java compiled yoxsa interpreted olmuş bir dildir? Cavab hər ikisidir. Yəni, Java həm compiled, həm də interpreted-dir.

Yuxarıdaki diaqrama baxaq. İlk öncə bildiyimiz kimi Java dilində kodlarımız yazırıq, daha sonra compiler .java fayllarını alır bytecode-a çevirir və .class fayl sonluğunda saxlayır. Bura qədər compiler əməliyyatı baş verir. Bytecode-a çevirildikən sonra, JVM deyir ver bytecode-ni mənə onu komputerin əməliyyat sisteminin başa düşəcəyi dilə çevirim, yəni interpret edim. Qısaca deyə bilərik ki, compile etmək JVM-nin başa düşəcəyi dilə çevirmək deməkdir, interpret etmək isə operativ sistemin başa düşəcəyi dilə çevirmək deməkdir.

Java Runtime Environment (JRE)

JRE, JDK-nın bir parçasıdır və biz əgər sadəcə öz komputerimizdə Java proqramını icra etmək istəyiriksə bizə JRE yetərlidir, ama yox, biz istəyiriksə yazdıgımız kodu başqa bir platformada icra edək, onda JRE yetərli olmayacaq. Çünki, JRE-nin daxilində JVM var, ama compiler (javac) yoxdur və ona görə mümkün deyilki .java fayllarını .class fayllarına çevirib başqa plaformalarda icra edək.

Java Development Kit (JDK)

JDK bizə, Java proqramları yazıb, onları compile edib və digər platformlarada çalışdaracaq bütün imkanları verir. JDK-nın daxilinə proqramı icra etmək üçün lazım olan JRE və onu compilə etmək üçün lazım olan javac compiler-i mövcuddur.

Javanın növləri

Başlıq biraz düzgün olmadı çünki bilmədim başqa sözlə necə ifadə edim. Növlər deyəndə, Java-nın müxtəlif sahələrdə istifadə olunma yerlərini demək istədim. Bunlar:

  1. Java Standard Edition (SE) - Təməl Java kodları yazmaq və masa üstü proqram yazmaq üçün kifayətdir.

  2. Java Enterprise Edition (EE) - Serverdə çalışması üçün lazım olan alətlərin və APİ-ların toplusudu.

  3. Java Micro Edition (ME) - Telefonlarda və başqa eletronik cihazlarda istifadə olunur.

Java FX

Masa üstü proqramlar yazmaq üçün istifadə olunan APİ-dır. Gözəl və maraqlı dizayna malik komponentləri mövcuddur.

Nədir?

Termin

İzah

Compile

Tərcüməsi tərtib etmək-dir, yəni bir formadan başqa bir formaya çevirməkdir. Məsələn, Java kodumuzu JVM-nin başa düşəcəyi dilə çevirməkdır.

İnterpret

Compile ilə eyni mənanı verir təxminən, sadəcə interpret edərkən JVM bu səfər bytecode-u komputerin əməliyyat sisteminin başa düşəcəyi dilə çevirir, yəni ikili say sisteminə.

APİ

Application Programming İnterface, tərcüməsi Tətbiq Proqramlaşdırma İnterfeysi. Daha detallı desək bir əməliyyat icra olunarkən arxa planda nə baş verdiyini gizləmək üçün istifadə olunan bir anlayışdır. Nümunə olaraq Twitter APİ-sını göstərə bilərik. Deyək ki biz tweet atmaq proqramı yazmaq istəyirik, bunun üçün bizim databazaya qoşulmağa, sorğular yazmağa, sonra Javada tweet atmaq kodunu yazmağa ehtiyac yoxdu. Sadəcə biz Twitter-in rəsmi səhifəsinə gedib, lazımı konfiqurasiyaları edib, APİ-ın kitabxanasını proyektimizə əlavə edib və sondada POST statuses/update tweet atırıq.

Referanslar

Last updated