Java er navnet på et programmeringssprog, der er udviklet af Sun Microsystems. Sun blev senere opkøbt af Oracle Corporation, som efterfølgende har stået for mange af de officielle JDK-udgivelser. Java udgives i to spor: hurtige, ikke-LTS udgivelser hver halve år og LTS (Long‑Term Support) udgivelser med længere supportvindue. Eksempler fra de seneste år er Java 8 og Java 11 (begge LTS), Java 17 (LTS, udgivet september 2021) og Java 21 (LTS, udgivet september 2023). Ikke-LTS-udgivelser som Java 14, 15, 16 og 20 introducerede mange nye sprog- og JVM-funktioner i kortere innovationscyklus.
Sprogparadigme og syntaks
Java, som blev kaldt Oak, da det stadig blev udviklet, er et objektorienteret sprog: kode organiseres omkring objekter, der rummer tilstand (felter) og adfærd (metoder). Java-syntaksen ligner til en vis grad C, C++ og C#, men direkte kopiering mellem disse sprog vil oftest kræve tilpasning, fordi Java har sit eget type‑system, hukommelsesmodel og standardbibliotek.
Platformuafhængighed og den virtuelle maskine
Java er kendt for sloganet "Write Once, Run Anywhere" på grund af sin platformuafhængighed. Det opnås ved, at Java-kompileren oversætter kildekode til Java-bytekode (.class-filer) i stedet for direkte maskinkode. Den virtuelle Java‑maskine (JVM) fortolker og/eller kompilerer denne bytekode til maskinkode på det aktuelle system ved hjælp af bl.a. JIT (Just‑In‑Time) kompilering. JVM‑implementeringer som Oracle HotSpot er referencestandard, men der findes også andre — f.eks. GraalVM med ekstra optimeringsmuligheder.
Java kører på mange forskellige styresystemer og platforme, herunder desktop, servere og Android, verdens mest udbredte mobilstyresystem (Android anvender sin egen runtime (ART) og et andet bytecode-format (DEX), men Java‑sprog og -økosystem har historisk været tæt forbundet med Android). Selvom Java stadig bruges bredt på Android, har Google officielt anbefalet Kotlin som foretrukket sprog, men Java er fortsat fuldt understøttet og interoperabelt med Kotlin.
Værktøjer, referenceimplementation og distributioner
Den officielle referenceimplementation for Java er OpenJDK. Oracle tilbyder både OpenJDK-kilnekode og kommersielle builds (Oracle JDK) med forskellige licens- og supportvilkår. Siden Java 11 har der været ændringer i Oracles distributions- og supportpolitik, hvilket har fået mange organisationer til at vælge andre builds fra leverandører som Eclipse Adoptium (tidligere AdoptOpenJDK), Amazon Corretto, BellSoft Liberica, Azul Zulu m.fl., som tilbyder gratis eller betalt LTS‑support.
Sprog- og platformfunktioner (udvalgte)
- Generics — typeparametrisering i collections og API'er.
- Lambda‑udtryk og Streams API — introduceret i Java 8 for funktionel programmeringstilgang.
- Moduler (JPMS) — indført i Java 9 for bedre modularisering af større projekter.
- Local‑variable type inference (var) — indført i Java 10 for kortere deklarationer.
- Records, Sealed classes, Pattern matching — nyere sprogudvidelser, der gør datastrukturer og mønstermatchning mere kompakte og sikre.
- Forbedrede switch‑udtryk, text blocks og forbedrede null‑sikkerhedsmønstre — forbedrer læsbarhed og udviklerproduktivitet.
LTS og udgivelsescyklus
Oracle og OpenJDK har et fast halvårligt udgivelsesflow (marts og september). Hver tredje eller sjette udgivelse markeres typisk som LTS, afhængigt af planlægning, hvilket giver organisationer et stabilt opgraderingsmål med længere support. Virksomheder vælger ofte LTS‑udgaver (f.eks. Java 8, 11, 17, 21) til produktionsmiljøer, fordi disse modtager længerevarende sikkerhedsrettelser og support fra udbydere.
Anvendelsesområder og økosystem
Java bruges bredt i industrien til:
- Enterprise‑applikationer (f.eks. store backend‑systemer og mikrotjenester)
- Webapplikationer (servlets, Jakarta EE/Java EE, Spring Framework)
- Mobiludvikling på Android (sammen med Kotlin)
- Big data og databehandling (Hadoop, Spark og lignende værktøjer)
- Desktop‑apps (Swing, JavaFX) og indlejrede systemer
Praktiske bemærkninger om opgradering
Ved opgradering mellem større Java‑udgaver bør man teste applikationer grundigt, især ved skift mellem LTS og ikke‑LTS eller når man benytter tredjepartsbiblioteker. Mange biblioteker følger OpenJDK‑udgivelser tæt, men nogle enterprise‑afhængigheder kan kræve specifik JDK‑support eller certificering.
Samlet set fortsætter Java som et stabilt, løbende udviklet sprog og platform med et stort økosystem af biblioteker, værktøjer og implementeringer, hvilket gør det til et sikkert valg for mange typer af projekter — fra små applikationer til store, mission‑kritiske systemer.