Java a Sun Microsystems által létrehozott programozási nyelv és egy nagy ökoszisztéma (JVM, JDK, könyvtárak). A Sun később az Oracle Corporation, tulajdonába került, amely azóta is részt vesz a Java fejlesztésében, de a nyílt forrású OpenJDK közösség és több más szereplő is fontos kiadóként és karbantartóként működik. A kezdő időszakot követően a Java-kiadások 2017 óta fél éves ciklusban jelennek meg; emellett rendszeresen kijelölnek hosszú távon támogatott (LTS) verziókat (például Java 11, Java 17 és Java 21). A licencelés és a támogatási modellek változtak az évek során, ezért a gyakorlatban érdemes mindig azt a JDK-kiadást választani, amelyik a célplatformnak és a támogatási igényeknek megfelel.

A Java, amelyet fejlesztés alatt Oaknak hívtak, objektumorientált nyelv: a programok elsősorban objektumokra épülnek, amelyek egymással üzeneteket váltva oldanak meg feladatokat. Ugyanakkor a Java nem „tiszta” objektumorientált nyelv, mert vannak alapvető típusok (primitívek), és az idő során funkcionális elemeket is kapott (pl. lambda kifejezések Java 8-tól). A szintaxisa és az általános felépítése hasonló lehet más C-származékokhoz: a Java-kód úgy néz ki, mint a C, C++ vagy C#, de az ezekben a nyelvekben írt kódok általában nem futtató- vagy fordítási kompatibilisek Java környezetben változtatás nélkül.

A Java számos különböző operációs rendszeren fut, beleértve az Androidot, a világ egyik legelterjedtebb mobil operációs rendszerét. (Az Androidon a Java-nyelv alapú megoldások futtathatók, de a Google saját futtatókörnyezetet — Dalvik/ART — használ, és a fejlesztők körében ma a Kotlin is erősen elterjedt és preferált nyelv, ugyanakkor teljes mértékben interoperábilis a Java-val.) A platformfüggetlenség alapja a Java bájtkód: a forráskódból a fejlesztők általában nem közvetlenül gépi kód-ot, hanem Java bájtkódot állít elő a fordító. A futtatáskor a Java Virtual Machine (JVM) értelmezi, és a legtöbb implementáció JIT (just-in-time) fordítással vagy más optimalizációval gépi kódra alakítja a bájtkódot, így jó teljesítményt ér el különböző platformokon.

Fő jellemzők

  • Platformfüggetlenség: „Write once, run anywhere” szemlélet a JVM és a bájtkód révén.
  • Objektumorientáltság: osztályok, öröklődés, kapszulázás és polimorfizmus a nyelv alapjai.
  • Automatikus memóriakezelés: szemétgyűjtés (garbage collection) csökkenti a kézi memória-kezelés hibáit.
  • Statikus típusellenőrzés: letisztult típusrendszer fordítási időben talál hibákat.
  • Gazdag standard könyvtár: I/O, hálózatkezelés, párhuzamosság, gyűjtemények, biztonság stb.
  • Párhuzamosság támogatása: beépített szálkezelés és magasabb szintű eszközök (Executor framework, concurrent csomag).
  • Biztonság és portolhatóság: sandbox modell, verifikáció és erőteljes futtatási környezeti ellenőrzések.

Mit jelentenek a rövidítések?

  • JVM (Java Virtual Machine) — a futtatókörnyezet, amely a bájtkódot végrehajtja.
  • JRE (Java Runtime Environment) — JVM + a futtatáshoz szükséges könyvtárak.
  • JDK (Java Development Kit) — fejlesztői csomag, amely tartalmazza a fordítót, eszközöket és a JRE-t.

A Java széles körben használatos szerveroldali alkalmazásokban, beágyazott rendszerekben, vállalati szoftverekben, valamint Android alkalmazások fejlesztésében. A nyelv és az ökoszisztéma továbbra is aktív fejlesztés alatt áll, és a verziók, kiadások és licencfeltételek figyelemmel kísérése ajánlott a projektek hosszú távú támogatása érdekében.