Java (programmeringssprog)
Java er navnet på et programmeringssprog, der er udviklet af Sun Microsystems. Dette firma blev opkøbt af Oracle Corporation, som fortsat holder det opdateret. Den seneste version er Java 14, der blev udgivet i marts 2020. Derudover er de eneste understøttede versioner, den seneste LTS-version (Long Term Support) Java 11, der blev frigivet den 25. september 2018, og Oracle frigav for "legacy" Java 8 LTS den sidste gratis "offentlige opdatering". Den næste planlagte LTS-version er Java 17 (LTS), som er planlagt til september 2021.
Java, som blev kaldt Oak, da det stadig blev udviklet, er objektorienteret, hvilket betyder, at det er baseret på objekter, der arbejder sammen for at få programmerne til at udføre deres arbejde. Java-kode ligner C, C++ eller C#, men kode skrevet i disse sprog vil i de fleste tilfælde ikke fungere i Java uden at blive ændret.
Java kører på mange forskellige styresystemer, herunder Android, verdens mest populære mobilstyresystem (selv om Java fortsat bruges på Android, selv af producenten Google, foretrækker de ikke længere Java; nu er Kotlin deres foretrukne sprog, som også kan bruges med al Java-kode). Dette gør Java platformuafhængig. Det gør det ved at få Java-kompileren til at omdanne kode til Java-bytekode i stedet for maskinkode. Det betyder, at når programmet udføres, fortolker den virtuelle Java-maskine bytekoden og oversætter den til maskinkode.
Java-begreber
Java blev udviklet for at nå fem hovedmål. Disse er:
- Java skal være let at lære, objektorienteret og distribueret.
- Java skal være sikkert og stærkt.
- Java bør ikke være afhængig af nogen computerarkitektur eller platform.
- Java bør fungere godt.
- Java bør kunne have en fortolker, der er skrevet til det, og som understøtter parallelisme og bruger dynamisk typning.
Java-platform
Java-platformen henviser til en gruppe softwareprodukter fra Sun Microsystems. Platformen bruges til at udvikle og køre Java-programmer. Platformen omfatter den eksekveringsmotor (kaldet en Java Virtual Machine), som gør det muligt for Java-programmer at gøre det samme på forskellige computersystemer.
Denne evne til at kunne udvikle software på én platform og køre det på andre platforme kaldes "cross-platform capability".
Java-programeksempel
Et eksempel på et "Hello World"-Java-program:
Typer af Java-programmer
Der findes mange typer Java-programmer, som kører forskelligt:
- Java-applet - lille program skrevet i Java, der downloades fra et websted og udføres i en webbrowser på en klientcomputer.
- Program - udføres på en klientcomputer. Hvis den er online, skal den downloades, før den kan køres.
- JAR-fil (Java-arkiv) - bruges til at pakke Java-filer sammen i en enkelt fil (næsten præcis som en .zip-fil).
- Servlet - kører på en webserver og hjælper med at generere websider.
- Swing-applikation - bruges til at opbygge en applikation, der har en GUI (vinduer, knapper, menuer osv.).
- EJB - kører på en webserver og bruges til at udvikle store, komplekse websteder.
Fordele
Java bruges ofte til at lære studerende at programmere som et første sprog, men det bruges også af professionelle.
- Java kræver, at hver variabel initialiseres. Nogle ældre sprog som C tillader, at variabler ikke initialiseres, hvilket kan forårsage tilfældige fejl med mystiske fejl.
- Java kræver, at hver metode deklarerer en returtype - metoden skal altid returnere en værdi, undtagen hvis returtypen er void. Dette forhindrer også fejl.
- Java leveres med et stort sæt klasser og metoder, Java API'et, som kan bruges uden at skulle udvikle så meget kode "fra bunden".
- I modsætning til C er primitive Java-typer, såsom int, altid af samme størrelse i antal bits, hvilket bidrager til at opnå kompatibilitet på tværs af platforme.
- Java blev tidligere anset for at være langsommere end C, men det er blevet mindre vigtigt i de senere år, fordi computere er blevet hurtigere.
- Java har undtagelseshåndtering, som kræver, at programmøren håndterer fejlbetingelser som f.eks. input/output-fejl.
- Kode, der er kompileret på en Java-platform, kan køres på andre platforme, der understøtter Java, uden at kildekoden eller byte-koden ændres. Det betyder, at en person kan lave et Java-program til en Windows-computer og få det til at køre på en Linux-computer eller en Mac-computer.
Kritik
Java er også blevet kritiseret. Nogle af kritikpunkterne er:
- Generics blev tilføjet til Java på en sådan måde, at eksisterende kode stadig kunne køre videre. Dette blev gjort ved hjælp af type erasure. Det betyder, at den faktiske type af et generisk argument fjernes under kompilering. Dette kan føre til, at Java-fortolkeren til tider opfører sig på uventede måder.
- Java har ingen typer for ikke-fortegnede hele tal, som sprog som C i høj grad bruger. Det betyder også, at det er umuligt at udveksle numeriske data direkte mellem C og Java-programmer. Kryptografi er også til en vis grad afhængig af sådanne typer; dette gør det vanskeligere at skrive programmer, der anvender kryptografi i Java.
- IEEE har defineret en standard for aritmetik med flydende punktum, IEE 754. Java understøtter kun en del af funktionerne i denne standard.
Spørgsmål og svar
Spørgsmål: Hvad er navnet på det programmeringssprog, der er skabt af Sun Microsystems?
A: Det programmeringssprog, som Sun Microsystems har udviklet, hedder Java.
Spørgsmål: Hvem understøtter og ajourfører Java i øjeblikket?
Svar: Oracle Corporation understøtter og ajourfører Java i øjeblikket.
Sp: Hvad er de nuværende LTS-versioner (Long Term Support) af Java?
Svar: De nuværende LTS-versioner (Long Term Support) af Java er version 17, 11 og 8.
Spørgsmål: Hvornår blev den seneste version af Java frigivet?
Svar: Den seneste version af Java, version 19, blev udgivet i september 2022.
Spørgsmål: Er der andre virksomheder, der understøtter Java ud over Oracle?
Svar: Ja, Eclipse Adoptium understøtter også Java indtil mindst maj 2026 for version 8 og mindst september 2027 for version 17.
Spørgsmål: Hvilken type kode bruger Java?
Svar: Java anvender objektorienteret kode, hvilket betyder, at den er baseret på objekter, der arbejder sammen for at få programmerne til at udføre deres arbejde. Det ligner C, C++ eller C#, men kode skrevet i disse sprog vil i de fleste tilfælde ikke fungere uden at blive ændret.
Spørgsmål: Hvordan gør Java sig selv platformsuafhængig?
Svar: Java gør sig selv platformsuafhængig ved at få compileren til at omdanne kode til et særligt format kaldet bytecode i stedet for maskinkode. Det betyder, at når programmet udføres, kan bytekoden fortolkes af et særligt program kaldet en virtuel maskine, som oversætter den til maskinkode, så den kan køre på forskellige styresystemer som f.eks. Android.