Java
Java on Sun Microsystems'i loodud programmeerimiskeele nimi. Selle ettevõtte ostis välja Oracle Corporation, mis jätkab selle ajakohastamist. Viimane versioon on Java 14, mis ilmus 2020. aasta märtsis. Lisaks on ainsad toetatud versioonid, viimane Long Term Support (LTS) versioon Java 11, mis ilmus 25. septembril 2018; ja Oracle avaldas "vanale" Java 8 LTS-le viimase tasuta "avaliku uuenduse". Järgmine kavandatud LTS-versioon on Java 17 (LTS), mis on kavandatud septembriks 2021.
Java, mille nimi oli Oak, kui seda veel arendati, on objektorienteeritud, mis tähendab, et see põhineb objektidel, mis töötavad koos, et programmid saaksid oma ülesandeid täita. Java kood näeb välja nagu C, C++ või C#, kuid nendes keeltes kirjutatud kood ei tööta enamasti Java's ilma muutmata.
Java töötab paljudes erinevates operatsioonisüsteemides, sealhulgas Androidis, mis on maailma populaarseim mobiilne operatsioonisüsteem (kuigi Java on Androidis jätkuvalt kasutusel, isegi selle tootja Google ei eelista enam Java keelt; nüüd on nende eelistatud keel Kotlin, mida saab kasutada ka kogu Java-koodiga). See muudab Java platvormi sõltumatuks. See teeb seda nii, et Java kompilaator muudab koodi masinkoodi asemel Java baatkoodiks. See tähendab, et programmi käivitamisel tõlgib Java virtuaalmasin bytecode'i ja tõlgib selle masinakoodiks.
Java mõisted
Java töötati välja viie peamise eesmärgi saavutamiseks. Need on järgmised:
- Java peaks olema kergesti õpitav, objektorienteeritud ja hajutatud.
- Java peaks olema turvaline ja tugev.
- Java ei tohiks sõltuda ühestki arvutiarhitektuurist või platvormist.
- Java peaks hästi toimima.
- Java peaks olema võimalik, et selle jaoks oleks kirjutatud interpretaator, mis toetaks paralleelsust ja kasutaks dünaamilist tüübistamist.
Java platvorm
Java platvorm viitab Sun Microsystems'i tarkvaratoodete rühmale. Platvormi kasutatakse Java-programmide arendamiseks ja käivitamiseks. Platvorm sisaldab täitmismootorit (mida nimetatakse Java virtuaalmasinaks), mis võimaldab Java-programmidel teha sama asja erinevates arvutisüsteemides.
Seda võimet, et tarkvara on võimalik arendada ühel platvormil ja käivitada seda teistel platvormidel, nimetatakse "platvormideüleseks võimekuseks".
Java programmi näide
Näide "Hello World" Java-programmist:
Java programmide tüübid
On palju erinevaid Java-programme, mis töötavad erinevalt:
- Java Applet - väike Java keeles kirjutatud programm, mis laaditakse veebilehelt alla ja käivitatakse veebibrauseris kliendi arvutis.
- Rakendus - täidetakse kliendi arvutis. Kui see on võrgus, tuleb see enne käivitamist alla laadida.
- JAR-fail (Java-arhiiv) - kasutatakse Java-failide pakkimiseks ühte faili (peaaegu täpselt nagu .zip-fail).
- Servlet - töötab veebiserveris ja aitab luua veebilehti.
- Swing-rakendus - kasutatakse GUI-ga (aknad, nupud, menüüd jne) rakenduse loomiseks.
- EJB - töötab veebiserveris ja seda kasutatakse suurte, keeruliste veebisaitide arendamiseks.
Eelised
Javat kasutatakse tavaliselt õpilastele programmeerimise õpetamiseks esimese keelena, kuid seda kasutavad endiselt ka spetsialistid.
- Java nõuab, et iga muutuja oleks initsialiseeritud. Mõned vanemad keeled, näiteks C, lubavad muutujaid initsialiseerimata jätta, mis võib põhjustada juhuslikke tõrkeid koos salapäraste vigadega.
- Java nõuab, et iga meetod deklareerib tagastustüübi - meetod peaks alati tagastama väärtuse, välja arvatud juhul, kui selle tagastustüüp on void. See hoiab ära ka vead.
- Java on varustatud suure hulga klasside ja meetodite, Java API-ga, mida saab kasutada ilma, et peaks arendama nii palju koodi "nullist".
- Erinevalt C-st on Java primitiivsed tüübid, näiteks int, alati ühesuurused bittide arvu poolest, mis aitab saavutada platvormidevahelist ühilduvust.
- Varem arvati, et Java on aeglasem kui C, kuid viimastel aastatel on see muutunud vähem oluliseks, sest arvutid on kiiremad.
- Javal on olemas erandite käsitlemine, mis nõuab programmeerijalt veatingimuste, näiteks sisend-väljundivigade käsitlemist.
- Ühel Java-platvormil kompileeritud koodi saab käivitada teistel Java't toetavatel platvormidel ilma lähtekoodi ja baitkoodi muutmata. See tähendab, et inimene võib teha Java-programmi Windowsi arvutile ja lasta seda käivitada Linuxi või Maci arvutis.
Kriitika
Java on samuti kritiseeritud. Mõned kriitikaavaldused on järgmised:
- Geneerikaid lisati Java'le nii, et olemasolev kood jätkaks endiselt töötamist. Selleks kasutati tüübi kustutamist. See tähendab, et kompileerimise ajal eemaldatakse geneerilise argumendi tegelik tüüp. See võib viia selleni, et Java interpretaator käitub kohati ootamatult.
- Javal ei ole täisarvude märkimata tüüpe, mida sellised keeled nagu C kasutavad palju. See tähendab ka seda, et C- ja Java-programmide vahel ei ole võimalik numbrilisi andmeid otse vahetada. Ka krüptograafia tugineb mingil määral sellistele tüüpidele; see muudab krüptograafiat kasutavate rakenduste kirjutamise Java keeles keerulisemaks.
- IEEE on määratlenud standardi ujukomaarvutuse jaoks, IEE 754. Java toetab ainult osa selle standardi funktsioonidest.
Küsimused ja vastused
Küsimus: Kuidas nimetatakse Sun Microsystems'i loodud programmeerimiskeelt?
V: Sun Microsystems'i loodud programmeerimiskeele nimi on Java.
K: Kes praegu toetab ja hoiab Java't ajakohasena?
V: Oracle Corporation toetab ja ajakohastab praegu Java't.
K: Millised on Java praegused pikaajalise toe (LTS) versioonid?
V: Java praegused pikaajalise toe (LTS) versioonid on 17., 11. ja 8. versioon.
K: Millal avaldati Java uusim versioon?
V: Java uusim versioon, versioon 19, ilmus septembris 2022.
K: Kas peale Oracle'i toetab Java't ka mõni teine ettevõte?
V: Jah, Eclipse Adoptium toetab Java't ka vähemalt mais 2026 versiooni 8 puhul ja vähemalt septembris 2027 versiooni 17 puhul.
K: Millist koodi Java kasutab?
V: Java kasutab objektorienteeritud koodi, mis tähendab, et see põhineb objektidel, mis töötavad koos, et programmid saaksid oma tööd teha. See näeb välja sarnane C, C++ või C# keelega, kuid nendes keeltes kirjutatud kood ei tööta enamasti ilma muutmata.
K: Kuidas muudab Java ennast platvormi sõltumatuks?
V: Java muudab end platvormi sõltumatuks, pannes kompilaatori muutma koodi masinakoodi asemel spetsiaalsesse formaati, mida nimetatakse bytecode'iks. See tähendab, et programmi käivitamisel saab bytecode'i tõlgendada spetsiaalne programm, mida nimetatakse virtuaalmasinaks, mis tõlgib selle masinakoodiks, nii et see saab töötada erinevates operatsioonisüsteemides, näiteks Androidis.