Introduktion til Java

โšก Smart opsummering

Introduktion til Java forklarer et generelt, klassebaseret, objektorienteret programmeringssprog, der ogsรฅ fungerer som en computerplatform. Denne vejledning dรฆkker Javas historie, versioner, funktioner, kernekomponenter (JDK, JVM, JRE), platformudgaver og bytecode-mekanismen, der gรธr Java et รฆgte skriv-รฉn-gang, kรธr-hvor som helst sprog.

  • โ˜• Kernedefinition: Java er et generelt, klassebaseret, objektorienteret programmeringssprog og en runtime-platform, der er konstrueret til bรฆrbarhed og pรฅlidelighed.
  • ๐Ÿงฉ Tre komponenter: Java Platformen omfatter JDK til udvikling, JVM til udfรธrelse og JRE til runtime-support.
  • ๐Ÿ“œ Historiske hรธjdepunkter: Oprindeligt kaldet OAK i 1991, omdรธbt Java i 1995 og opkรธbt af Oracle fra Sun Microsystems i 2009.
  • ๐ŸŒ Fire udgaver: Java SE, Java EE (nu Jakarta EE), Java MIG, og JavaFX er mรฅlrettet desktops, virksomhedssystemer, indlejrede enheder og rich-klienter.
  • ๐Ÿ” Platformuafhรฆngighed: Java kildekode kompilerer til bytekode, der kรธrer pรฅ enhver JVM, hvilket muliggรธr รฆgte write-once, run-overalt-portabilitet pรฅ tvรฆrs af operativsystemer.

Introduktion til Java - Hvordan Java Virtuel maskine fungerer

Hvad er Java?

Java er et generelt, klassebaseret, objektorienteret programmeringssprog designet til minimale implementeringsafhรฆngigheder. Det er ogsรฅ en computerplatform til applikationsudvikling. Java er hurtig, sikker og pรฅlidelig, hvilket er grunden til, at den driver software pรฅ bรฆrbare computere, datacentre, spillekonsoller, videnskabelige supercomputere, mobiltelefoner og indlejrede enheder. Som et multiplatform, netvรฆrkscentreret sprog, Java er fortsat et af de mest udbredte programmeringssprog i branchen og foretrรฆkkes af de fleste organisationer til at bygge missionskritiske projekter.

Hvad er det Java Platform?

Java perron er en samling af programmer, der hjรฆlper udviklere med at oprette og kรธre Java applikationer effektivt. Den samler en udfรธrelsesmotor, en compiler og et sรฆt biblioteker, sammen med de specifikationer, der definerer, hvordan de fungerer sammen. James Gosling udviklede Java platform hos Sun Microsystems, og Oracle Corporation erhvervede det gennem Sun-opkรธbet i 2009.

Denne video introducerer Java perron og forklarer hvorfor Java er bรฅde en platform og et programmeringssprog:

Klik link. hvis videoen ikke er tilgรฆngelig.

Hvad er Java Anvendes til?

Her er nogle af de vigtigste anvendelser i den virkelige verden af Java:

  • Udviklingping Android apps.
  • Udvikling af virksomhedssoftware til store organisationer.
  • Driver en bred vifte af mobile enheder Java applikationer.
  • Kรธrsel af videnskabelige databehandlingsapplikationer.
  • Driver pipelines for big data-analyse.
  • Programmering af indlejrede hardwareenheder.
  • Server-side teknologier som Apache, JBoss, GlassFish og Tomcat.

Historien om Java Programmeringssprog

Her er de vigtige milepรฆle fra historien om Java Sprog:

  • Java sprog blev oprindeligt kaldt OAK.
  • Det blev oprindeligt udviklet til hรฅndtering af bรฆrbare enheder og set-top-bokse, hvor OAK var en kommerciel fiasko.
  • I 1995 omdรธbte Sun sproget til โ€œJava" og omfokuserede det for at drage fordel af det hurtigt voksende World Wide Web.
  • I 2009, blev Oracle Corporation kรธbte Sun Microsystems og tog ejerskabet af tre centrale Sun-softwareaktiver: Java, MySQLog Solaris.

Java versioner

Her er en kort historie om Java versioner og deres udgivelsesdatoer, opdateret gennem den seneste langsigtede supportudgivelse:

Java Version Slip Dato
JDK Alpha og Beta 1995
JDK 1.0 23rd Jan 1996
JDK 1.1 19th februar 1997
J2SE 1.2 8th december 1998
J2SE 1.3 8th May 2000
J2SE 1.4 6th februar 2002
J2SE 5.0 30th september 2004
Java SE 6 11th december 2006
Java SE 7 28th juli 2011
Java SE 8 (LTS) 18th Mar 2014
Java SE 9 21st september 2017
Java SE 10 20th Mar 2018
Java SE 11 (LTS) 25th september 2018
Java SE 12 19th Mar 2019
Java SE 13 17th september 2019
Java SE 14 17th Mar 2020
Java SE 15 15th september 2020
Java SE 16 16th Mar 2021
Java SE 17 (LTS) 14th september 2021
Java SE 18 22 marts 2022
Java SE 19 20th september 2022
Java SE 20 21 marts 2023
Java SE 21 (LTS) 19th september 2023
Java SE 22 19th Mar 2024
Java SE 23 17th september 2024
Java SE 24 18th Mar 2025
Java SE 25 (LTS) 16th september 2025

Java Funktionalitet

Her er nogle af de vigtigste Java Funktioner, der har holdt den relevant i nรฆsten tre รฅrtier:

  • Det er et af de nemmeste objektorienterede programmeringssprog at lรฆre.
  • "Skriv รฉn gang, kรธr hvor som helst" - kode kompileret pรฅ รฉn maskine kรธrer pรฅ nรฆsten enhver computerplatform.
  • Java er platformuafhรฆngig takket vรฆre sin bytecode-udfรธrelsesmodel.
  • Det er designet fra bunden til objektorienterede applikationer.
  • Det er et flertrรฅdet sprog med automatisk hukommelsesstyring (garbage collection).
  • Det blev skabt til internettets distribuerede miljรธ.
  • Det letter distribueret databehandling pรฅ grund af dets netvรฆrkscentrerede design.

Komponenter af Java Programmeringssprog

A Java programmรธr skriver kode i et menneskelรฆsbart sprog kaldet kildekodeCPU'en forstรฅr aldrig kildekode direkte โ€” CPU'er kรธrer kun maskinkode, og den maskinkode varierer pรฅ tvรฆrs af CPU-familier. For at bygge bro over denne klรธft, Java Platformen oversรฆtter kildekode til en bรฆrbar mellemliggende form. Alt dette sker inden for tre kernekomponenter: JDK, JVM og JRE.

Java Udviklingssรฆt (JDK)

JDK er et softwareudviklingsmiljรธ, der bruges til at bygge applets og Java applikationer. Den fulde form for JDK er Java Udviklingssรฆt. Java udviklere kan bruge det pรฅ Windows, macOS, Solarisog Linux. JDK hjรฆlper dem med at kode og kรธre Java programmer. Det er muligt at installere mere end รฉn JDK-version pรฅ samme computer.

Hvorfor bruge JDK?

  • JDK indeholder de vรฆrktรธjer, der krรฆves for at skrive Java programmer og en JRE til at udfรธre dem.
  • Den indeholder en compiler (javac), Den Java programstarter, AppletViewer og lignende vรฆrktรธjer.
  • Compileren konverterer kode skrevet i Java ind i bytekode.
  • Java programstarteren รฅbner en JRE, indlรฆser den nรธdvendige klasse og udfรธrer dens hovedmetode.

Java Virtuel maskine (JVM)

Java Virtuel maskine (JVM) er en motor, der giver et kรธremiljรธ til at kรธre Java kode eller applikationer. Den konverterer Java bytekode til maskinsprog. JVM'en er en del af Java Runtime Environment (JRE). I andre programmeringssprog producerer compileren maskinkode til et bestemt system. Imidlertid Java compileren producerer kode til en virtuel maskine kendt som Java Virtuel maskine.

Hvorfor JVM?

  • JVM giver en platformsuafhรฆngig mรฅde at eksekvere pรฅ Java kildekode.
  • Den har adskillige biblioteker, vรฆrktรธjer og frameworks tilgรฆngelige lige fra starten.
  • Nรฅr du har kompileret en Java program, kan du kรธre det pรฅ enhver platform, hvilket sparer betydelig tid.
  • JVM leveres med en JIT (Just-In-Time) compiler, der konverterer bytekode til lavniveau-maskinsprog under kรธrsel, hvilket ofte fรฅr den til at kรธre hurtigere end en fortolket applikation.

Java Runtime Environment (JRE)

JRE er et stykke software designet til at kรธre anden software. Det indeholder klassebibliotekerne, loader-klassen og JVM. Kort sagt, hvis du kun vil kรธre en Java program (og ikke udvikle et), har du brug for JRE i stedet for den fulde JDK.

Hvorfor bruge JRE?

  • JRE indeholder klassebiblioteker, JVM og andre understรธttende filer. Det inkluderer ikke udviklervรฆrktรธjer sรฅsom en debugger eller compiler.
  • Den bruger vigtige pakkeklasser, herunder math, swing, util, lang, awtog runtime-biblioteker.
  • Hvis du skal lรธbe Java applets eller applikationer, skal JRE vรฆre installeret pรฅ dit system.

Forskellige typer af Java Platforme

Der er fire forskellige Java programmeringssprogsplatforme, der hver isรฆr er indstillet til et forskelligt implementeringsmรฅl:

1. Java Platform, Standard Edition (Java SE): Java SE's API tilbyder Java programmeringssprogets kernefunktionalitet. Det definerer alt fra basistyper og objekter til klasser pรฅ hรธjt niveau, der bruges til netvรฆrk, sikkerhed, databaseadgang, udvikling af grafisk brugergrรฆnseflade (GUI) og XML-parsing.

2. Java Platform, Enterprise Edition (Jakarta EE, tidligere Java EE): Jakarta EE-platformen tilbyder et API- og runtime-miljรธ til udviklingping og kรธrer meget skalerbare, store, flerlags, pรฅlidelige og sikre netvรฆrksapplikationer. Oracle overfรธrte platformen til Eclipse Foundation i 2017, som omdรธbte det til Jakarta EE.

3. Java Platform, Micro Edition (Java MIG): Java ME-platformen tilbyder en API og en virtuel maskine med lille fodaftryk til kรธrsel Java applikationer pรฅ smรฅ enheder sรฅsom funktionstelefoner og indlejrede controllere.

4. JavaFX: JavaFX er en platform til udviklingping avancerede internetapplikationer ved hjรฆlp af en let brugergrรฆnseflade-API. Den bruger hardwareaccelererede grafik- og mediemotorer, der hjรฆlper Java Drag fordel af klienter med hรธjere ydeevne, et moderne udseende og API'er pรฅ hรธjt niveau til at oprette forbindelse til netvรฆrksforbundne datakilder.

For at forstรฅ Java programmeringssprog, er vi nรธdt til at genoverveje nogle grundlรฆggende begreber om, hvordan et computerprogram kรธrer kommandoer og udfรธrer handlinger.

Hvad er en pc?

En computer er en elektronisk enhed, der er i stand til at udfรธre beregninger. Den bestรฅr af en skรฆrm, et tastatur, en mus og en hukommelse til at lagre information. Den vigtigste komponent er dog PROCESSOREN. Processoren udfรธrer al computerens tรฆnkning - men hvordan gรธr den rent faktisk den tรฆnkning? Hvordan forstรฅr den tekst, billeder og videoer?

Hvad er en pc - kernekomponenter
Hvad er pc?

Hvad er Assembly Sprog?

Computeren er en elektronisk enhed, sรฅ den forstรฅr kun elektroniske signaler โ€“ binรฆre signaler. Et elektronisk signal pรฅ 5 volt kan reprรฆsentere det binรฆre tal 1, mens 0 volt kan reprรฆsentere det binรฆre tal 0. Din pc bliver konstant bombarderet med disse signaler.

Binรฆre signaler behandlet af computeren

Otte bits af disse signaler er grupperet sammen for at fortolke tekst, tal og symboler.

Otte-bit groupping til tekst og symboler

For eksempel identificeres #-tegnet af computeren som 10101010. Pรฅ samme mรฅde reprรฆsenteres mรธnsteret for en "add"-funktion af 10000011.

Binรฆr reprรฆsentation af computerinstruktioner

Dette kaldes 8-bit computing. Moderne processorer er i stand til at afkode 64-bit instruktioner ad gangen. Sรฅ hvad har dette koncept at gรธre med JavaLad os gennemgรฅ et eksempel.

Forestil dig, at du vil bede computeren om at lรฆgge to tal (1 + 2) sammen, der er reprรฆsenteret af nogle binรฆre tal (10000011). Hvordan kommunikerer du det til din computer? Du bruger assemblersprog til at fรฅ din kode udfรธrt.

"Assembly Sprog er den mest elementรฆre form for softwareudviklingssprog."

Du udfรธrer kommandoer i fรธlgende format. Koden til at addere to tal i assembly-sprog ville se sรฅdan ud:

Assembly Eksempel pรฅ sprogaddition med to tal

  • Gem nummer 1 pรฅ hukommelseslokation A.
  • Gem nummer 2 pรฅ hukommelseslokation B.
  • Lรฆg indholdet af lokation A og B sammen.
  • Gem resultatet.

Tilbage i 1950'erne, da computere var enorme og strรธmkrรฆvende, konverterede man assembly-kode til tilsvarende maskinkode (1'ere og 0'ere) ved hjรฆlp af map-kode.ping ark. Koden blev derefter stanset ind i maskinkort og fรธrt til computeren. Computeren lรฆste disse koder og udfรธrte programmet. Dette var en lang proces - indtil ASSEMBLEREN ankom for at automatisere konverteringen.

Hvad er Assembler og Compiler?

Med teknologiske fremskridt blev I/O-enheder opfundet. Du kunne skrive dit program direkte ind i pc'en ved hjรฆlp af ASSEMBLER, som konverterer det til tilsvarende maskinkode (110001โ€ฆ) og sender det til din processor. Tilbage til vores 1 + 2-eksempel konverterer assembleren assembly-koden til maskinkode som output.

Assembler konverterer assemblerkode til maskinkode

Ud over assembly skal du ogsรฅ foretage kald til funktioner leveret af operativsystemet for at vise outputtet.

Assembleren alene er ikke nok; den har ogsรฅ brug for en COMPILER til at komprimere lang kildekode til mindre, optimerede bidder. Med softwareudviklingssprog pรฅ hรธjere niveau krymper hele assembler-kodestykket ovenfor til en enkelt linje, f.eks. printf("%d", 1+2)Compileren konverterer din C-sprog kode til assemblerkode; assembleren konverterer det derefter til maskinkode transmitknyttet til processoren. Den mest almindelige processor, der bruges i pc'er, er Intel-processoren.

Compiler- og assembler-pipeline

Moderne compilere samler ofte assembleren, sรฅ de kan konvertere sprogkode pรฅ hรธjere niveau direkte til maskinkode.

Forestil dig nu, Windows kรธrer pรฅ en Intel-processor โ€” kombinationen af โ€‹โ€‹operativsystem plus processor kaldes en PLATFORM. Den mest almindelige platform er Windows pรฅ Intel, ogsรฅ kendt som Wintel-platformen. Andre populรฆre platforme inkluderer AMD, Linux, PowerPC og macOS.

Med et skift af processor รฆndres ogsรฅ samlevejledningen. For eksempel:

  • "Add"-instruktionen pรฅ Intel kan kaldes ADDITION pรฅ AMD.
  • Eller โ€œMath ADDโ€ pรฅ PowerPC.

Og med en รฆndring i operativsystemet รฆndres niveauet og arten af โ€‹โ€‹kald pรฅ OS-niveau ogsรฅ.

Som udvikler รธnsker du, at din software skal fungere pรฅ alle platforme for at maksimere rรฆkkevidden. Det betyder, at du bliver nรธdt til at kรธbe separate compilere, der konverterer dine printf kommandoen i den native maskinkode for hvert mรฅl.

Flere platforms compilere

Compilere er dyre, og der er altid en risiko for kompatibilitetsproblemer pรฅ tvรฆrs af operativsystemer. Det er ikke praktisk at kรธbe og installere en separat compiler for hver OS-processor-kombination. Sรฅ hvad er alternativet? Indtast Java Sprog.

Hvordan virker Java Virker en virtuel maskine?

Ved anvendelse af Java Virtual Machine, dette problem kan lรธses. Men hvordan fungerer det pรฅ tvรฆrs af forskellige processorer og operativsystemer? Lad os gennemgรฅ det trin for trin.

Hvordan Java Virtuel maskine fungerer trin for trin

Trin 1) Koden til at vise additionen af โ€‹โ€‹to tal โ€” System.out.println(1+2) โ€” gemmes som en .java fil.

Trin 2) Brug af Java kompilator (javac), konverteres koden til mellemliggende kode kaldet bytekodeOutputtet er en .klasse fil.

Trin 3) Denne bytekode forstรฅs ikke af nogen fysisk platform, kun af en virtuel platform kaldet Java Virtual Machine.

Trin 4) JVM'en findes i RAM'en i dit operativsystem. Nรฅr JVM'en modtager denne bytekode, identificerer den den platform, den kรธrer pรฅ, og konverterer bytekoden til den native maskinkode undervejs.

Mens du arbejder pรฅ din pc eller surfer pรฅ nettet, nรฅr du ser Java-relaterede ikoner, kan du vรฆre sikker pรฅ, at JVM'en er indlรฆst i din RAM. Hvad gรธr Java attracDet afgรธrende er, at kompileret kode ikke kun kan kรธre pรฅ alle pc-platforme, men ogsรฅ pรฅ mobiltelefoner og andre elektroniske gadgets, der understรธtter Java.

"Java er bรฅde et programmeringssprog og en platform.โ€

Hvordan er Java Platform uafhรฆngig?

I modsรฆtning til en C-compiler, Java compileren producerer ikke indbygget eksekverbar kode til en bestemt maskine. I stedet, Java producerer et unikt mellemformat kaldet bytekodeBytekoden udfรธres i henhold til reglerne i JVM-specifikationen, hvilket er grunden til Java er et platformsuafhรฆngigt sprog.

Bytekode er forstรฅelig for enhver JVM installeret pรฅ ethvert operativsystem. Kort sagt, Java Kildekoden kan kรธre pรฅ alle moderne operativsystemer uden rekompilering, hvilket er fundamentet for Java's lรธfte om "skriv รฉn gang, lรธb hvor som helst".

Ofte Stillede Spรธrgsmรฅl

JDK er et udviklingssรฆt, der indeholder compiler og vรฆrktรธjer. JRE er runtime-miljรธet, der indeholder den JVM og klassebiblioteker, der er nรธdvendige for at udfรธre Java programmer. JVM er den motor i JRE, der konverterer bytekode til native maskinkode under kรธrsel.

Ja. Java fortsat yderst relevant for virksomhedssystemer, Android apps, finansielle platforme, big data og mikrotjenester. Moderne udgivelser som f.eks. Java 21 og Java 25 LTS tilfรธjer poster, virtuelle trรฅde, mรธnstermatchning og forbedret ydeevne for at holde Java konkurrencedygtige.

Begyndere bรธr installere en LTS-udgivelse (Long-Term Support). Java SE 25, udgivet i september 2025, er den seneste LTS-version, med Java 21 og Java 17 stadig meget brugt. LTS-versioner modtager udvidede sikkerhedsrettelser og stabil support fra leverandรธrer.

AI bruges med Java til maskinlรฆring i virksomheder, svindeldetektering, anbefalingsmotorer og chatbots. Biblioteker som DJL, Deeplearning4j og Tribuo bringer deep learning til JVM'en, mens AI-kodningsassistenter fremskynder Java refactoring og generering af enhedstest.

Ja. AI-kodningsassistenter forklarer Java syntaks, generere รธvelser, debugge fejl og gennemgรฅ kode i realtid. Begyndere drager fordel af interaktiv feedback, der fremhรฆver objektorienterede bedste praksisser, JVM-adfรฆrd og almindelige fejl, som traditionelle lรฆrebรธger sjรฆldent viser.

Opsummer dette indlรฆg med: