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.