Java ilə eyni vaxtda bir çox işi görə bilən proqramlar yazmaq mümkündür. Bu isə, proqramçılara rahat işləyə bilən interaktiv proqramlar yaratmağa imkan verir. Bundan əlavə, Java inkişaf edən mühitə uyğunlaşmaq mövzusunda çox dinamik bir proqramlaşdırma dilidir.
Java daxilində bir neçə əsas texnologiya mövcuddur:
- Java SE — Java Standard Edition, Java əsas buraxılışı, bu buraxılışda Java Runtime Environment, kompilyatorlar, API vardır; İstifadəçi əlavələrin yaradılması üçün və ilk növbədə stolüstü sistemlər üçün münasibdir.
- Java EE — Java Enterprise Edition, Müəssisə səviyyəsində proqram təminatının yaradılması üçün spesifikasiyalar yığını şəklindədir.
- Java ME — Java Micro Edition, bu, qurğularda, məsələn mobil telefonlarda, qurulanlar sistemi, hesablama gücü ilə məhdud istifadə üçün yaradılıb.
- JavaFX — JavaFX, masa üstü proqramları, eləcə də müxtəlif cihazlarda işləyə bilən zəngin veb proqramları yaratmaq və çatdırmaq üçün proqram platformasıdır.
- Java Card — Texnologiya ilə emal imkanları çox məhdud yaddaş yerinə, smart-kartlar və digər qurğularda işləyən proqramlar üçün təhlükəsiz mühit yaradır.
Java-nın özəllikləri ilə tanış olaq:
İlk olaraq, OOP-nin mənasına baxaq. OOP – Object Oriented Programming, mənası Obyektyönümlü Proqramlaşdırma deməkdi. Java-da hər şey bir obyektdir. Obyekt modelinə əsaslandığı üçün Java asanlıqla genişləndirilə bilər.
Java Obyektyönümlüdür, yəni prosedur dillərdən fərqlidir. Prosedur dillərdə ən önəmli qavram prosedur, funksiyadır, bir problemi alt problemlərə bölüb, hər birini addım-addım müəyyənləşdirməkdə istifadə olunur. Amma Obyektyönümlü dillər tamamilə obyekt anlayışı üzərinə otururlar.
Obyekt - xüsusiyyət və davranışlara sahib, fiziki olan yaxud olmayan hər hansı bir şeydir. Proqram təminatında hər tip obyekt üçün şablonlar yaradılır ki, bunlara “sinif” deyilir. Burada obyektin datası (məlumatı) ilə davranışı bir paket halında olur. Yəni sinif - obyekt haqda məlumatla onun davranışının toplamıdır. Sinif = Data + Davranış
Obyektlər - siniflərdən yaradılmış runtime (çalışma zamanı) strukturlarıdır. Sinif - obyekt demək deyil. Sinif - ondan obyektlərin əmələ gələcəyi şablondur. Bir sinifdə o sinifdən yaradılacaq olan obyektlərin bildikləri ilə (data) etdikləri (davranış) ifadə edilir. Tip - sinifi bildirir, bir obyektin tipi, həmin sinif deməkdir.
Platformadan Azad (Platform Independent) – C və C++ daxil olmaqla bir çox digər proqramlaşdırma dillərindən fərqli olaraq, Java kompayl edildikdə, o, platformaya özəl bir maşında deyil, platformadan müstəqil baytkodunda tərtib edilir. Java-nın platformaya bağlı olmaması və şərh ediləbilən olması onu eyni zamanda daşınabilən edir. Kompayl olunmuş Java kodu baytkod (bytecode) olaraq saxlanılır. Baytkod platformaya bağlı deyil, hansı platformada işlədilməsindən asılı olmayaraq, JVM-in (Java Virtual Maşın - Java Virtual Machine) olduğu hər mühitdə işləyə bilər.
Memari olaraq neytral (architectural-neutral) olması, Java-nın hər hansı bir platformaya bağlı olmaması deməkdir. Java standartlar üzərində qurulmuşdur. Məsələn, int hər platformada 32 bit-dir.
Java-nın üstünlükləri bunlardır:
- Sadə (Simple) − Java asan öyrənilmək üçün nəzərdə tutulmuşdur. OOP Java-nın əsas konsepsiyasını başa düşsəniz, mənimsəmək asan olar.
- Təhlükəsiz (Secure) – Java özünün təhlükəsiz olma xüsusiyyəti ilə virussuz, müdaxiləsiz sistemlər hazırlamağa imkan verir. Doğrulama üsulları açıq açar şifrələməsinə əsaslanır.
- Arxitektura cəhətdən neytral (Architecture-neutral) − Java tərtibçisi (kompayler - compiler) “arxitekturadan neytral” obyekt fayl formatı yaradır ki, bu da tərtib (kompayl - compile) edilmiş kodu - Java iş vaxtı (runtime) sisteminin mövcudluğu ilə bir çox prosessorlarda icra edilə bilən edir.
- Portativ, yəni daşına bilən (Portable) - Arxitektura baxımından neytral olması və spesifikasiyanın icradan (implementasiyadan) asılı aspektlərinin olmaması Java-nı portativ edir. Java-da kompayler POSIX alt dəsti olan təmiz daşınma sərhədi ilə ANSI C-də yazılmışdır.
- Möhkəm (Robust) − Java, əsasən kompilyasiya (compilation) zamanı və rantaym (runtime), yəni run (işləmə) zamanı xətaların yoxlanılmasına diqqət yetirərək, xətaya meylli vəziyyətləri aradan qaldırmaq üçün səy göstərir.
- Çox axınlı (bəzən buna çox kanallı da deyilir) (Multi-threaded) − Java-nın çox axınlı, yəni çox “thread”-li funksiyası ilə eyni vaxtda bir çox işi yerinə yetirə bilən proqramlar yazmaq mümkündür. Bu dizayn xüsusiyyəti proqramçılara rahat işləyə bilən interaktiv proqramlar yaratmağa imkan verir.
- Şərh edilən (Interpreted) − Java bayt kodu yerli maşın təlimatlarına tez tərcümə olunur və heç bir yerdə saxlanmır. İnkişaf prosesi daha sürətli və analitikdir, çünki əlaqə - artımlı və yüngül bir prosesdir.
- Yüksək Performans (High Performance) – Just-In-Time (yəni tam zamanında) kompilyatorlarının istifadəsi ilə Java yüksək performansa imkan verir.
- Paylanmış (Distributed) – Java internetin paylanmış mühiti üçün nəzərdə tutulmuşdur.
- Dinamik (Dynamic) − Java, inkişaf edən mühitə uyğunlaşmaq üçün nəzərdə tutulduğundan C və ya C++ ilə müqayisədə daha dinamik hesab olunur. Java proqramları runtime, yəni run zamanı obyektlərə girişləri yoxlamaq və həll etmək üçün istifadə oluna bilən geniş həcmli runtime məlumatını daşıya bilər.
Java ilə Hello World Sözünü belə yazırıq: