Java ir programmēšanas valoda un platforma, ko izstrādāja Sun Microsystems un ko vēlāk pārņēma un turpina uzturēt Oracle Corporation, kā arī plaša atvērtā koda kopiena caur OpenJDK. Java pirmo reizi tika publiskota 1995. gadā (galvenie autori — James Gosling un komanda) un tās izstrādes laikā valoda tika dēvēta par Oak. Java izlaides ir regulāras: ilgtermiņa atbalsta (LTS) versijas ir svarīgas uzņēmumu vidē — piemēram, Java 11 (izlaista 2018. gada 25. septembrī) un Java 17 (LTS, izlaista 2021. gada septembrī). Pēc 2021. gada turpinājās regulāri sešu mēnešu izlaidumi, un nākamās LTS versijas iznāca vēlāk (piemēram, Java 21 LTS 2023. gada septembrī). Oracle ir mainījis licencēšanas un atjauninājumu politiku salīdzinājumā ar agrāko periodu — Java 8 publiskie bezmaksas atjauninājumi komerciālajiem lietotājiem tika ierobežoti, tomēr pastāv vairāki piegādātāji (piemēram, Eclipse Temurin), kas nodrošina bezmaksas OpenJDK būves un atbalstu.

Java ir objektorientēta valoda, t.i., tās pamatā ir objekti un to savstarpējā mijiedarbība. Tomēr Java nav pilnīgi “tīri” objektorientēta — tajā ir primitīvie datu tipi (int, boolean u.c.), statiskās metodes un citas valodas konstrukcijas, kas nav vienīgi objekti. Sintakse salīdzināma ar C, C++ un C#, tomēr šajās valodās rakstīts kods parasti nav tieši savietojams ar Java, bez pārveidošanas vai rekompilēšanas.

Viena no Java galvenajām idejām ir platformu neatkarība: “Write once, run anywhere” — rakstiet vienu reizi, palaidiet jebkur. To panāk, kompilators pārvērš Java avota kodu Java baitkodā (bytecode), nevis tieši mašīnkodā. Šo baitkodu izpilda Java virtuālā mašīna (JVM), kas interpretē vai, izmantojot JIT (Just-In-Time) kompilāciju, pārtulko to uz konkrētās ierīces mašīnkodu izpildei. JVM ir pieejama daudziem operētājsistēmu veidiem, tādējādi Java programmas darbojas uz dažādām operētājsistēmām. Java ir plaši izmantota arī mobilajā pasaulē — īpaši Android, kur izstrādātāji joprojām var izmantot Java (lai gan Google pēdējos gados aktīvi veicina Kotlin izmantošanu Android lietotnēs).

Galvenās iezīmes un priekšrocības

  • Platformu neatkarība: Java baitkods darbojas jebkurā JVM, kas pieejama attiecīgajai platformai.
  • Bagātīgas standarta bibliotēkas: plašs API klāsts I/O, tīklu, drošības, XML/JSON apstrādei, krātuves, GUI u.c. vajadzībām.
  • Atmiņas pārvaldība: automātiska atkritumu savākšana (garbage collection), kas samazina tiešo atmiņas pārvaldības kļūdu risku.
  • Drošība: JVM sniedz izolāciju un drošības pārbaudes, kas palīdz izvairīties no daudzām zemas līmeņa kļūdām.
  • Skaidra tipizācija un saderība: spēcīgi tipizēta valoda un fokuss uz atpakaļsaderību — ļauj ilgtermiņa uzturēšanu uzņēmumu sistēmās.
  • Risinājumi uzņēmumiem: Java ir pamats tādiem ekosistēmas risinājumiem kā Jakarta EE (iepriekš Java EE), Spring, Hibernate, kas dominē uzņēmumu serveru lietojumprogrammās.

Kā Java darbojas Android vidē

Android lietotņu izstrādē tradicionāli tika izmantota Java sintakse, taču Android vide neveic tiešu JVM izpildi tādā pašā formā kā darbvirsmas vai serveru JVM. Android izmanto speciālu izpildlaiku (sākotnēji Dalvik, vēlāk ART), kur Java vai Kotlin kods tiek pārveidots uz Dalvik/DEX formātu. Google pēdējos gados aktīvi atbalsta Kotlin kā pirmrindas valodu Android izstrādei, taču Java joprojām ir plaši izplatīta un savietojama ar esošo kodu.

Rīki un komponenti

  • JDK (Java Development Kit): satur kompilatoru (javac), rīkus un bibliotēkas izstrādei.
  • JRE (Java Runtime Environment): satur JVM un nepieciešamās bibliotēkas, lai palaistu Java programmas (dažos mūsdienu izvietojumos JRE un JDK līnija saplūst ar OpenJDK būvēm).
  • JVM (Java Virtual Machine): izpildes vide, kas interpretē vai JIT-kompilē baitkodu.

Pielietojumi

Java tiek izmantota ļoti plašā jomā:

  • uzņēmumu serveru lietojumprogrammas (banku sistēmas, biznesa aplikācijas),
  • web aplikācijas un mikroservisi (izmantojot Spring, Jakarta EE u.c.),
  • Android lietotnes (kopā ar Kotlin un citiem rīkiem),
  • lielo datu un izkliedēto sistēmu risinājumi (piem., Hadoop ekosistēma),
  • iebūvētās ierīces un IoT risinājumi,
  • zinātniskie un akadēmiskie projekti, kur nepieciešama portabilitāte un drošība.

Kopsavilkums

Java ir stabila, plaši izplatīta valoda un platforma ar spēcīgu ekosistēmu un plašu atbalstu no kopienas un komerciāliem piegādātājiem. Tā savieno objektorientētu programmēšanu, bagātīgas bibliotēkas, JVM nodrošinātu platformu neatkarību un ilgtermiņa atpakaļsaderību, kas padara to par iecienītu izvēli gan uzņēmumu, gan mobilajām un iebūvētajām lietojumprogrammām.