Java programavimo kalba: apibrėžimas, savybės ir LTS versijos
Sužinokite apie Java programavimo kalbą: pagrindines savybes, platformos nepriklausomumą ir svarbiausias LTS versijas (Java 8, 11, 17) — ką verta žinoti kūrėjams.
Java yra programavimo kalba, kurią sukūrė Sun Microsystems". Vėliau šią technologiją perėmė korporacija "Oracle", kuri toliau prižiūri ir leidžia naujas Java versijas. Nuo Java 9 įvestas trumpesnis (kas 6 mėnesius) leidimų ciklas, todėl kas pusmetį pasirodo nauja funkcijų versija, o ilgesnio palaikymo (LTS) leidimai išleidžiami rečiau. Tarp svarbesnių LTS leidimų yra Java 8 (LTS), Java 11 (LTS, 2018 m.), Java 17 (LTS, 2021 m.) ir naujesnė Java 21 (LTS, 2023 m.). Rekomenduojama gamybinėms sistemoms rinktis LTS leidimus ir reguliariai atnaujinti saugos pataisas; tuo pat metu aktyvi bendruomenė ir įvairūs tiekėjai teikia atvirojo kodo Java implementacijas.
Pagrindinė idėja ir istorija
Kalba iš pradžių buvo sukurta su pavadinimu Oak. Java yra objektinė, t. y. pagrįsta objektais, kurie apjungia duomenis ir elgseną bei leidžia modeliuoti sudėtingas sistemas. Sintaksiškai Java primena tokias C šeimos kalbas kaip C, C++ ir C#, todėl programuotojams, pažįstantiems šias kalbas, pereiti prie Java dažnai būna lengviau — tačiau kodas nėra tiesiogiai suderinamas tarpusavyje ir reikalauja atitinkamos kalbos transformacijos.
Kaip veikia Java (platformos nepriklausomumas)
Java parašytas šaltinio kodas kompiliuojamas į baitkodą, o ne tiesiogiai į vietinį mašininį kodą. Šį baitkodą vykdo Java virtualioji mašina (JVM), kuri interpretuoja arba kompiliuoja baitkodą į vietinį kodą vykdymo metu (JIT). Dėl tokio tarpinio sluoksnio Java programa gali veikti skirtingose operacinėse sistemose, jei jose yra suderinta JVM – todėl dažnai sakoma „write once, run anywhere“ (parašyk kartą, vykdyk bet kur).
Java taip pat plačiai naudojama mobiliems sprendimams — ilgą laiką pagrindinė Android programavimo kalba buvo Java: "Android", populiariausia pasaulyje mobiliąją operacinę sistemą, remiasi JVM principu (konkrečiai, Android naudoja savo vykdymo sistemą). Pastaraisiais metais Android ekosistemoje didesnę paklausą įgijo Kotlin, kuri puikiai suderinama su Java ekosistema ir leidžia naudoti esamą Java kodą.
Pagrindinės Java savybės
- Objektinis programavimas: klasių ir objektų pagrindu veikianti kalba.
- Platformos nepriklausomumas: baitkodas ir JVM leidžia vykdyti programas skirtingose sistemose.
- Saugus tipų modelis: statinis tipų tikrinimas ir aiški klasių struktūra sumažina klaidų skaičių.
- Automatinė atminties valdymas: Garbage Collector (GC) atlieka atminties tvarkymą už programuotoją.
- Daugiasriegiškumas: įmontuotos priemonės sinchronizacijai ir konkurentiniam vykdymui.
- Plati standartinė biblioteka: turtingas API rinkinys darbui su I/O, tinklais, kolekcijomis, XML/JSON, saugumu ir kt.
- Ekosistema ir įrankiai: JDK, JRE, populiarūs įrankiai ir valdymo sistemos (pvz., Maven, Gradle) bei daugybė trečiųjų šalių bibliotekų.
Modernios kalbos funkcijos ir vystymasis
Nuo Java 8 įtraukta daug svarbių patobulinimų, pvz., lambda išraiškos ir Stream API. Vėlesnėse versijose pristatytos modulio sistemos (Java 9), local-variable type inference (var) (Java 10), naujos kalbos konstrukcijos (pvz., records, pattern matching) ir kt. Dėl greitesnio leidimų ciklo naujos funkcijos pasirodo dažniau kaip naujų leidimų dalis; kai kurios eksperimentinės galimybės pateikiamos kaip „preview“ prieš įtraukiant jas į stabilų standartą.
LTS versijos ir palaikymas
Organizacijos, kurios vertina stabilumą, dažnai renkasi LTS leidimus (Long Term Support). Tarp žymesnių:
- Java 8 (LTS)
- Java 11 (LTS, 2018 m.)
- Java 17 (LTS, 2021 m.)
- Java 21 (LTS, 2023 m.)
Oracle ir kiti tiekėjai turi skirtingas licencijų ir palaikymo politikos sąlygas: kai kurios senesnių leidimų versijos sulaukė pakeitimų komercinio palaikymo modelyje. Tačiau egzistuoja ir atvirojo kodo Java diegimai bei bendruomenės projektai, kurie teikia saugos pataisas ir atnaujinimus.
Kur naudojama Java?
- Enterprise sistemos ir serverio aplikacijos (įmonių sprendimai, Web servisai).
- Dešimtys tūkstančių bibliotekų ir rėmų (Spring, Jakarta EE ir kt.).
- Android programos (istorinis pagrindas) bei naujesnės Android programos, dažnai rašomos naudojant Kotlin.
- Dideli duomenų apdorojimo sprendimai, debesų taikomosios programos ir įterptosios sistemos.
Santrauka ir rekomendacijos
Java yra subrendusi, plačiai naudojama ir nuolat vystoma programavimo kalba su stipria ekosistema ir daugeliu įrankių. Jei kuriate verslo klasės programas, verta naudoti LTS versijas ir sekti saugos bei techninės priežiūros gairėmis. Jei pradedate nuo nulio, Java suteikia gerą pagrindą suprasti objektinį programavimą ir sistemų kūrimą, o jos ekosistema leidžia rasti įrankius beveik bet kokiam programavimo uždaviniui.
Java sąvokos
"Java" buvo sukurta siekiant penkių pagrindinių tikslų. Šie tikslai:
- "Java" turėtų būti lengvai išmokstama, orientuota į objektus ir paskirstyta.
- "Java" turėtų būti saugi ir stipri.
- "Java" neturėtų priklausyti nuo jokios kompiuterio architektūros ar platformos.
- "Java" turėtų veikti gerai.
- "Java" turėtų turėti jai skirtą interpreterį, palaikyti lygiagretumą ir naudoti dinaminį tipavimą.
Java platforma
"Java" platforma - tai "Sun Microsystems" programinės įrangos produktų grupė. Platforma naudojama "Java" programoms kurti ir paleisti. Platforma apima vykdymo variklį (vadinamą Java virtualia mašina), kuris leidžia Java programoms daryti tą patį skirtingose kompiuterių sistemose.
Šis gebėjimas kurti programinę įrangą vienoje platformoje ir paleisti ją kitose platformose vadinamas "tarpplatforminiu gebėjimu".
Java programos pavyzdys
"Java" programos "Hello World" pavyzdys:
Java programų tipai
Yra daug "Java" programų tipų, kurie veikia skirtingai:
- "Java" programėlė - nedidelė "Java" kalba parašyta programa, atsisiunčiama iš svetainės ir vykdoma kliento kompiuteryje esančioje žiniatinklio naršyklėje.
- Programa - vykdoma kliento kompiuteryje. Jei ji veikia internetu, prieš paleidžiant ją reikia atsisiųsti.
- JAR failas (Java archyvas) - naudojamas "Java" failams supakuoti į vieną failą (beveik kaip .zip failas).
- Servletas - veikia žiniatinklio serveryje ir padeda kurti žiniatinklio puslapius.
- "Swing" programa - naudojama kurti programai su grafine vartotojo sąsaja (langais, mygtukais, meniu ir kt.).
- EJB - veikia žiniatinklio serveryje ir naudojamas didelėms, sudėtingoms svetainėms kurti.
Privalumai
"Java" dažniausiai naudojama mokant studentus programuoti kaip pirmoji kalba, tačiau ją vis dar naudoja ir profesionalai.
- "Java" reikalauja, kad kiekvienas kintamasis būtų inicializuotas. Kai kuriose senesnėse kalbose, pavyzdžiui, C, kintamieji gali būti neinicializuoti, o tai gali sukelti atsitiktinių klaidų ir paslaptingų klaidų.
- "Java" reikalauja, kad kiekvienas metodas deklaruotų grąžinimo tipą - metodas visada turėtų grąžinti vertę, išskyrus atvejus, kai jo grąžinimo tipas yra void. Taip taip pat išvengiama klaidų.
- "Java" turi didelį klasių ir metodų rinkinį - "Java API", kuriuo galima naudotis nekuriant tiek daug kodo "nuo nulio".
- Skirtingai nei C, "Java" primityvieji tipai, pavyzdžiui, int, visada yra vienodo dydžio pagal bitų skaičių, o tai padeda užtikrinti suderinamumą su įvairiomis platformomis.
- Anksčiau buvo manoma, kad "Java" yra lėtesnė už C, tačiau pastaraisiais metais tai tapo mažiau svarbu, nes kompiuteriai tapo greitesni.
- "Java" turi išimčių tvarkymą, kuris reikalauja, kad programuotojas tvarkytų klaidų sąlygas, pvz., įvesties ir išvesties klaidas.
- Vienoje "Java" platformoje parengtą kodą galima paleisti kitose platformose, kurios palaiko "Java", nekeičiant nei išeities kodo, nei baitų kodo. Tai reiškia, kad asmuo gali sukurti "Java" programą, skirtą "Windows" kompiuteriui, ir paleisti ją "Linux" arba "Mac" kompiuteryje.
Kritika
"Java" taip pat buvo kritikuojama. Kai kurie iš jų:
- "Java" buvo papildyta bendraisiais kodais taip, kad esamas kodas ir toliau veiktų. Tai buvo padaryta naudojant tipų ištrynimą. Tai reiškia, kad kompiliavimo metu pašalinamas tikrasis bendrinio argumento tipas. Dėl to "Java" vertėjas kartais gali elgtis netikėtai.
- "Java" neturi nepasižymėtųjų sveikųjų skaičių tipų, kurie plačiai naudojami tokiose kalbose kaip C. Tai taip pat reiškia, kad neįmanoma tiesiogiai keistis skaitiniais duomenimis tarp C ir Java programų. Kriptografija taip pat tam tikru mastu remiasi tokiais tipais; dėl to sudėtingiau rašyti programas, kuriose naudojama kriptografija, Java kalba.
- IEEE nustatė slankiojo kablelio aritmetikos standartą IEE 754. Java palaiko tik dalį šio standarto funkcijų.
Klausimai ir atsakymai
K: Kaip vadinasi "Sun Microsystems" sukurta programavimo kalba?
A: "Sun Microsystems" sukurta programavimo kalba vadinasi "Java".
K: Kas šiuo metu palaiko ir atnaujina "Java"?
A: Šiuo metu "Oracle Corporation" palaiko ir atnaujina "Java".
K: Kokios yra dabartinės ilgalaikio palaikymo (LTS) "Java" versijos?
A: Šiuo metu ilgalaikės palaikymo (LTS) "Java" versijos yra 17, 11 ir 8 versijos.
K: Kada buvo išleista naujausia "Java" versija?
A: Naujausia "Java" versija, 19 versija, buvo išleista 2022 m. rugsėjo mėn.
K: Ar yra dar kokia nors kita bendrovė, kuri palaiko "Java", be "Oracle"?
A: Taip, "Eclipse Adoptium" taip pat palaiko "Java" bent iki 2026 m. gegužės mėn. 8 versiją ir bent iki 2027 m. rugsėjo mėn. 17 versiją.
K: Kokio tipo kodą naudoja "Java"?
A: Java naudoja objektinį kodą, o tai reiškia, kad jis pagrįstas objektais, kurie veikia kartu, kad programos atliktų savo darbą. Jis panašus į C, C++ arba C#, tačiau šiomis kalbomis parašytas kodas daugeliu atvejų neveiks jo nepakeitus.
K: Kaip "Java" tampa nepriklausoma nuo platformos?
A:Java tampa nepriklausoma nuo platformos, nes kompiliatorius paverčia kodą specialiu formatu, vadinamu bytecode, o ne mašininiu kodu. Tai reiškia, kad vykdant programą baitkodą gali interpretuoti speciali programa, vadinama virtualia mašina, kuri jį išverčia į mašininį kodą, todėl jis gali veikti įvairiose operacinėse sistemose, pavyzdžiui, "Android".
Ieškoti