Java on Sun Microsystemsin luoman ohjelmointikielen nimi. Tämän yrityksen osti Oracle Corporation, joka pitää sitä edelleen ajan tasalla. Uusin versio on Java 14, joka julkaistiin maaliskuussa 2020. Lisäksi ainoat tuetut versiot ovat, viimeisin Long Term Support (LTS) -versio Java 11, joka julkaistiin 25. syyskuuta 2018; ja Oracle julkaisi "vanhalle" Java 8 LTS:lle viimeisen ilmaisen "julkisen päivityksen". Seuraava suunniteltu LTS-versio on Java 17 (LTS), joka on tarkoitus julkaista syyskuussa 2021.
Java, jota kutsuttiin Oakiksi, kun sitä vielä kehitettiin, on oliopohjainen eli se perustuu objekteihin, jotka toimivat yhdessä, jotta ohjelmat tekevät työnsä. Java-koodi näyttää C:ltä, C++:lta tai C#:lta, mutta näillä kielillä kirjoitettu koodi ei useimmissa tapauksissa toimi Javassa ilman muutoksia.
Java toimii monissa eri käyttöjärjestelmissä, kuten Androidissa, maailman suosituimmassa mobiilikäyttöjärjestelmässä (vaikka Java on edelleen käytössä Androidissa, jopa sen valmistaja Google ei enää suosi Javaa; nyt Kotlin on heidän suosikkikielensä, jota voidaan käyttää myös kaiken Java-koodin kanssa). Tämä tekee Javasta alustariippumattoman. Se tekee tämän tekemällä Javan kääntäjän muuttamaan koodin Java-bytekoodiksi konekoodin sijaan. Tämä tarkoittaa, että kun ohjelma suoritetaan, Java Virtual Machine tulkitsee tavukoodin ja kääntää sen konekoodiksi.
Lyhyt yhteenveto ja historia
Java julkaistiin 1990-luvun puolivälissä ja siitä tuli nopeasti suosittu erityisesti palvelinpuolen sovelluksissa, yritysjärjestelmissä ja sulautetuissa järjestelmissä. Reference-implementaationa toimii OpenJDK, ja Oracle JDK on yksi kaupallisista jakeluista. Oracle ei ole ainoa tarjonnan tarjoaja: useat muut toimittajat (esim. Eclipse Adoptium, Amazon Corretto, Azul, BellSoft) tarjoavat omia, tuettuja JDK-jakeluitaan.
Keskeiset ominaisuudet
- Oliopohjaisuus: Java perustuu luokkiin ja objekteihin, mikä auttaa järjestämään koodin ja tukee uudelleenkäyttöä.
- Alustariippumattomuus: Java-koodi käännetään tavukoodiksi (bytecode), jota Java Virtual Machine (JVM) ajaa eri alustoilla — periaate tunnetaan nimellä "Write Once, Run Anywhere".
- Automaattinen muistinhallinta: Roskankeräys (garbage collection) huolehtii käyttämättömästä muistista, mikä vähentää muistivuotojen määrää verrattuna manuaaliseen hallintaan.
- Monisäikeisyys ja rinnakkaisuus: Java tarjoaa vahvat työkalut säikeiden hallintaan ja rinnakkaisohjelmointiin. Uudemmat projektit kuten Project Loom tarjoavat kevyempiä (virtuaali)säikeitä kokeiluun ja tulevaisuuteen.
- Laaja kirjasto ja ekosysteemi: Java API kattaa laajan joukon toiminnallisuuksia — verkotus, tietokantayhteydet, XML/JSON-käsittely, graafinen käyttöliittymä ja paljon muuta. Työkalut kuten Maven ja Gradle hallitsevat riippuvuuksia ja rakennusprosessia.
- Vahva tyypitys ja turvallisuus: Kielen tyyppijärjestelmä ja JVM-ajonaikaiset tarkistukset parantavat sovellusten turvallisuutta ja vakautta.
Miten Java toimii lyhyesti
Java-lähdekoodi käännetään ensin tavukoodiksi (.class-tiedostoiksi). Tämä tavukoodi on abstrakti, alustariippumaton muoto. Java Virtual Machine (JVM) lataa tavukoodin ja suorittaa sen joko tulkkaamalla tai kääntämällä sitä JIT-kääntäjän (Just-In-Time) avulla konekoodiksi suorituksen aikana — tämä yhdistelmä tarjoaa hyvän suorituskyvyn ja siirrettävyyden. JVM:ssä on myös roskankeräin, joka vapauttaa käyttämättömiä olioita automaattisesti.
Versiot ja LTS (Long Term Support)
Oracle ja OpenJDK -yhteisö siirtyivät kuuden kuukauden julkaisusykliin Java 9 jälkeen; tämä tarkoittaa, että uusia ominaisuusversioita tulee usein, mutta LTS-versiot tarjoavat pidempää tukea ja vakaammat alustat tuotantokäyttöön. Merkittäviä LTS-versioita viime vuosilta:
- Java 8 (LTS) — laajasti käytetty, julkaistu 2014
- Java 11 (LTS) — julkaistu 25. syyskuuta 2018
- Java 17 (LTS) — julkaistu syyskuussa 2021
- Java 21 (LTS) — julkaistu syyskuussa 2023 (nykyinen LTS, suosittu tuotantokäytössä)
Monet organisaatiot valitsevat yhden näistä LTS-versioista ja saavat ylläpitopäivityksiä joko Oraclelta tai muilta JDK-toimittajilta. Lisäksi monet uudet kieliominaisuudet tulevat ensin esikatselu- tai incubator-tilassa ennen vakauttamista.
Käyttökohteet ja ekosysteemi
Javaa käytetään laajalti eri aloilla:
- Palvelin- ja yrityssovellukset (esim. web-palvelimet, mikropalvelut, ERP-järjestelmät)
- Android-sovelluskehitys (Android käyttää omaa ajonaikaansa mutta kieli ja monet kirjastot ovat yhteydessä Javaan; Google suosittelee Kotlinia, mutta Java on edelleen tuettu)
- Sulautetut järjestelmät ja IoT
- Tieteellinen laskenta ja big data -ekosysteemi (esim. Hadoop, Spark integroituvat Java- ja JVM-ekosysteemeihin)
- Työkalut ja kehitysympäristöt (IDE:t kuten IntelliJ IDEA, Eclipse, NetBeans; rakennus- ja testityökalut)
Miksi valita Java?
Java sopii hyvin projekteihin, joissa tarvitaan korkeaa alustariippumatonta luotettavuutta, laajaa kirjasto- ja työkalutukea sekä hyvää suorituskykyä tuotanto-oloissa. LTS-versiot tarjoavat yrityksille vakaan pohjan pitkän elinkaaren sovelluksille.
Yhteenveto
Java on pitkäikäinen, laajalti tuettu ja jatkuvasti kehittyvä ohjelmointikieli ja alusta. Sen vahvuuksia ovat suuri ekosysteemi, alustariippumattomuus JVM:n avulla, automaattinen muistinhallinta ja laaja valikoima kirjastoja sekä työkaluja. Samalla sen kehitys on nopeampaa kuin ennen, koska ominaisuudet julkaistaan tiheämmin — mutta tuotantoympäristöissä kannattaa yleensä suosia LTS-jakeluita ja tukea toimittajalta.