Introduktion till Java
โก Smart sammanfattning
Introduktion till Java fรถrklarar ett generellt, klassbaserat, objektorienterat programmeringssprรฅk som รคven fungerar som en datorplattform. Denna handledning tรคcker Javas historia, versioner, funktioner, kรคrnkomponenter (JDK, JVM, JRE), plattformsutgรฅvor och bytekodmekanismen som gรถr Java ett verkligt skrivbart engรฅngssprรฅk som du kan kรถra var som helst.

Vad รคr Java?
Java รคr ett allmรคnt, klassbaserat, objektorienterat programmeringssprรฅk utformat fรถr minimala implementeringsberoenden. Det รคr ocksรฅ en datorplattform fรถr applikationsutveckling. Java รคr snabb, sรคker och pรฅlitlig, vilket รคr anledningen till att den driver programvara pรฅ bรคrbara datorer, datacenter, spelkonsoler, vetenskapliga superdatorer, mobiltelefoner och inbyggda enheter. Som ett nรคtverkscentrerat sprรฅk fรถr flera plattformar, Java รคr fortfarande ett av de mest anvรคnda programmeringssprรฅken i branschen och fรถredras av de flesta organisationer fรถr att bygga verksamhetskritiska projekt.
Vad รคr det Java Plattform?
Ocuco-landskapet Java plattform รคr en samling program som hjรคlper utvecklare att skapa och kรถra Java applikationer effektivt. Den kombinerar en exekveringsmotor, en kompilator och en uppsรคttning bibliotek, tillsammans med specifikationerna som definierar hur de samverkar. James Gosling utvecklade Java plattform hos Sun Microsystems, och Oracle Corporation fรถrvรคrvade det genom Sun-fรถrvรคrvet 2009.
Den hรคr videon introducerar Java plattform och fรถrklarar varfรถr Java รคr bรฅde en plattform och ett programmeringssprรฅk:
Klicka hรคr. om videon inte รคr tillgรคnglig.
Vad รคr Java Anvรคnds fรถr?
Hรคr รคr nรฅgra av de viktigaste tillรคmpningarna i verkligheten av Java:
- Utvecklaping Android appar.
- Bygga fรถretagsprogramvara fรถr stora organisationer.
- Drivs av ett brett utbud av mobila enheter Java tillรคmpningar.
- Kรถra vetenskapliga berรคkningsapplikationer.
- Driva pipelines fรถr stordataanalys.
- Programmering av inbyggda hรฅrdvaruenheter.
- Serversidestekniker som Apache, JBoss, GlassFish och Tomcat.
Historik om Java PROGRAMMERINGSSPRร K
Hรคr รคr de viktiga landmรคrkena frรฅn historien om Java sprรฅk:
- Ocuco-landskapet Java sprรฅket kallades frรฅn bรถrjan OAK.
- Den utvecklades ursprungligen fรถr att hantera bรคrbara enheter och set-top-boxar, dรคr OAK var ett kommersiellt misslyckande.
- ร r 1995 dรถpte Sun om sprรฅket till โJavaโ och omfokuserade den fรถr att dra nytta av den snabbt vรคxande World Wide Web.
- 2009, Oracle Corporation fรถrvรคrvade Sun Microsystems och tog รคgandet av tre viktiga Sun-programtillgรฅngar: Java, MySQLoch Solaris.
Java versioner
Hรคr รคr en kortfattad historia om Java versioner och deras utgivningsdatum, uppdaterade genom den senaste lรฅngsiktiga supportversionen:
| Java Version | Utgivningsdatum |
|---|---|
| JDK Alpha och Beta | 1995 |
| JDK1.0 | 23rd Jan 1996 |
| JDK1.1 | 19: e februari 1997 |
| J2SE 1.2 | 8th dec 1998 |
| J2SE 1.3 | 8th maj 2000 |
| J2SE 1.4 | 6: e februari 2002 |
| J2SE 5.0 | 30th Sep 2004 |
| Java SE 6 | 11th dec 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 Sep 2018 |
| Java SE 12 | 19th Mar 2019 |
| Java SE 13 | 17th Sep 2019 |
| Java SE 14 | 17th Mar 2020 |
| Java SE 15 | 15th Sep 2020 |
| Java SE 16 | 16th Mar 2021 |
| Java SE 17 (LTS) | 14th Sep 2021 |
| Java SE 18 | 22 mars 2022 |
| Java SE 19 | 20th Sep 2022 |
| Java SE 20 | 21st mar 2023 |
| Java SE 21 (LTS) | 19th Sep 2023 |
| Java SE 22 | 19th Mar 2024 |
| Java SE 23 | 17th Sep 2024 |
| Java SE 24 | 18th Mar 2025 |
| Java SE 25 (LTS) | 16th Sep 2025 |
Java Funktioner
Hรคr รคr nรฅgra av de viktigaste Java funktioner som har hรฅllit den relevant i nรคstan tre decennier:
- Det รคr ett av de enklaste objektorienterade programmeringssprรฅken att lรคra sig.
- โSkriv en gรฅng, kรถr var som helstโ โ kod som kompilerats pรฅ en maskin kรถrs pรฅ nรคstan vilken datorplattform som helst.
- Java รคr plattformsoberoende tack vare sin bytekodsexekveringsmodell.
- Den รคr designad frรฅn grunden fรถr objektorienterade applikationer.
- Det รคr ett flertrรฅdat sprรฅk med automatisk minneshantering (sophantering).
- Den skapades fรถr internets distribuerade miljรถ.
- Det underlรคttar distribuerad databehandling pรฅ grund av sin nรคtverkscentrerade design.
Komponenter i Java PROGRAMMERINGSSPRร K
A Java programmerare skriver kod i ett lรคsbart sprรฅk som kallas kรคllkodProcessorn fรถrstรฅr aldrig kรคllkod direkt โ processorer kรถr bara maskinkod, och den maskinkoden skiljer sig รฅt mellan olika processorfamiljer. Fรถr att รถverbrygga denna klyfta, Java Plattformen รถversรคtter kรคllkod till en portabel mellanliggande form. Allt detta sker inom tre kรคrnkomponenter: JDK, JVM och JRE.
Java Utvecklingspaket (JDK)
JDK รคr en mjukvaruutvecklingsmiljรถ som anvรคnds fรถr att bygga applets och Java applikationer. Den fullstรคndiga formen av JDK รคr Java Utvecklings paket. Java utvecklare kan anvรคnda det pรฅ Windows, macOS, Solarisoch Linux. JDK hjรคlper dem att koda och kรถra Java program. Det รคr mรถjligt att installera mer รคn en JDK-version pรฅ samma dator.
Varfรถr anvรคnda JDK?
- JDK innehรฅller de verktyg som krรคvs fรถr att skriva Java program och en JRE fรถr att kรถra dem.
- Den innehรฅller en kompilator (
javac), Den Java programstartaren, AppletViewer och liknande verktyg. - Kompilatorn konverterar kod skriven i Java in i bytekod.
- Ocuco-landskapet Java programstartaren รถppnar en JRE, laddar den nรถdvรคndiga klassen och kรถr dess huvudmetod.
Java Virtuell maskin (JVM)
Ocuco-landskapet Java Virtuell maskin (JVM) รคr en motor som ger en kรถrmiljรถ fรถr att kรถra Java kod eller applikationer. Den konverterar Java bytekod till maskinsprรฅk. JVM รคr en del av Java Runtime Environment (JRE). I andra programmeringssprรฅk producerar kompilatorn maskinkod fรถr ett visst system. Dรคremot Java kompilatorn producerar kod fรถr en virtuell maskin som kallas Java Virtuell maskin.
Varfรถr JVM?
- JVM tillhandahรฅller ett plattformsoberoende sรคtt att exekvera Java kรคllkod.
- Den har mรฅnga bibliotek, verktyg och ramverk tillgรคngliga direkt ur lรฅdan.
- Nรคr du vรคl har kompilerat en Java programmet kan du kรถra det pรฅ vilken plattform som helst, vilket sparar avsevรคrt tid.
- JVM levereras med en JIT (Just-In-Time)-kompilator som konverterar bytekod till lรฅgnivรฅmaskinsprรฅk vid kรถrning, vilket ofta gรถr att den kรถrs snabbare รคn en tolkad applikation.
Java Runtime Environment (JRE)
JRE รคr en programvara som รคr utformad fรถr att kรถra annan programvara. Den innehรฅller klassbiblioteken, loader-klassen och JVM. Enkelt uttryckt, om du bara vill kรถra en Java program (och inte utveckla ett), behรถver du JRE snarare รคn hela JDK.
Varfรถr anvรคnda JRE?
- JRE innehรฅller klassbibliotek, JVM och andra stรถdfiler. Det inkluderar inte utvecklarverktyg som felsรถkare eller kompilatorer.
- Den anvรคnder viktiga paketklasser inklusive
math,swing,util,lang,awtoch runtime-bibliotek. - Om du mรฅste springa Java appletar eller applikationer mรฅste JRE vara installerat pรฅ ditt system.
Olika typer av Java Plattformar
Det finns fyra distinkta Java programmeringssprรฅkplattformar, var och en instรคlld pรฅ ett annat distributionsmรฅl:
1. Java Plattform, Standard Edition (Java SE): Java SE:s API erbjuder Java programmeringssprรฅkets kรคrnfunktionalitet. Det definierar allt frรฅn bastyper och objekt till hรถgnivรฅklasser som anvรคnds fรถr nรคtverk, sรคkerhet, databasรฅtkomst, utveckling av grafiskt anvรคndargrรคnssnitt (GUI) och XML-parsning.
2. Java Plattform, Enterprise Edition (Jakarta EE, tidigare Java EE): Jakarta EE-plattformen erbjuder ett API och en runtime-miljรถ fรถr utvecklingping och kรถra mycket skalbara, storskaliga, flernivรฅiga, tillfรถrlitliga och sรคkra nรคtverksapplikationer. Oracle รถverfรถrde plattformen till Eclipse Foundation รฅr 2017, vilket omdรถpte det till Jakarta EE.
3. Java Plattform, Micro Edition (Java MIG): Ocuco-landskapet Java ME-plattformen erbjuder ett API och en virtuell maskin med liten yta fรถr kรถrning Java applikationer pรฅ smรฅ enheter som funktionstelefoner och inbyggda styrenheter.
4. JavaFX: JavaFX รคr en plattform fรถr utvecklingping avancerade internetapplikationer med hjรคlp av ett lรคttviktigt anvรคndargrรคnssnitts-API. Den anvรคnder hรฅrdvaruaccelererade grafik- och mediemotorer som hjรคlper Java dra nytta av klienter med hรถgre prestanda, ett modernt utseende och kรคnsla och API:er pรฅ hรถg nivรฅ fรถr att ansluta till nรคtverksanslutna datakรคllor.
Fรถr att fรถrstรฅ Java programmeringssprรฅk behรถver vi se รถver nรฅgra grundlรคggande koncept fรถr hur ett datorprogram kรถr kommandon och utfรถr รฅtgรคrder.
Vad รคr en PC?
En dator รคr en elektronisk apparat som kan utfรถra berรคkningar. Den bestรฅr av en bildskรคrm, ett tangentbord, en mus och ett minne fรถr att lagra information. Den viktigaste komponenten รคr dock PROCESSORN. Processorn utfรถr allt datorns tรคnkande โ men hur gรถr den egentligen det tรคnkandet? Hur fรถrstรฅr den text, bilder och videor?

Vad รคr Assembly Sprรฅk?
Datorn รคr en elektronisk apparat, sรฅ den fรถrstรฅr bara elektroniska signaler โ binรคra signaler. En 5-volts elektronisk signal kan representera binรคrt tal 1, medan 0 volt kan representera binรคrt tal 0. Din dator bombarderas kontinuerligt med dessa signaler.
ร tta bitar av dessa signaler grupperas fรถr att tolka text, siffror och symboler.
Till exempel identifieras #-tecknet av datorn som 10101010. Pรฅ liknande sรคtt representeras mรถnstret fรถr en "addera"-funktion av 10000011.
Detta kallas 8-bitars databehandling. Moderna processorer kan avkoda 64-bitars instruktioner รฅt gรฅngen. Sรฅ vad har detta koncept att gรถra med JavaLรฅt oss gรฅ igenom ett exempel.
Anta att du vill be datorn att addera tvรฅ tal (1 + 2) som representeras av nรฅgra binรคra tal (10000011). Hur kommunicerar du det till din dator? Du anvรคnder assemblersprรฅk fรถr att fรฅ din kod exekverad.
"Assembly Sprรฅk รคr den mest elementรคra formen av mjukvaruutvecklingssprรฅk."
Du utfรคrdar kommandon i fรถljande format. Koden fรถr att addera tvรฅ tal i assemblersprรฅk skulle se ut sรฅ hรคr:
- Lagra nummer 1 pรฅ minnesplats A.
- Lagra nummer 2 pรฅ minnesplats B.
- Lรคgg ihop innehรฅllet i platserna A och B.
- Spara resultatet.
Pรฅ 1950-talet, nรคr datorer var enorma och strรถmslukande, konverterade man assemblerkod till motsvarande maskinkod (1:or och 0:or) med hjรคlp av mappning.ping ark. Koden stansades sedan in i maskinkort och matades in i datorn. Datorn lรคste dessa koder och kรถrde programmet. Detta var en lรฅng process โ tills ASSEMBLERARE anlรคnde fรถr att automatisera konverteringen.
Vad รคr Assembler och Compiler?
Med tekniska framsteg uppfanns I/O-enheter. Du kunde skriva ditt program direkt i datorn med hjรคlp av ASSEMBLER, som konverterar det till motsvarande maskinkod (110001โฆ) och matar det till din processor. Fรถr att รฅtergรฅ till vรฅrt 1 + 2-exempel konverterar assemblern assemblerkoden till maskinkod som utdata.
Utรถver assembler mรฅste du ocksรฅ gรถra anrop till funktioner som tillhandahรฅlls av operativsystemet fรถr att visa utdata.
Assemblern ensam rรคcker inte; den behรถver ocksรฅ en KOMPILER fรถr att komprimera lรฅng kรคllkod till mindre, optimerade bitar. Med programvaruutvecklingssprรฅk pรฅ hรถgre nivรฅ krymper hela assembler-kodavsnittet ovan till en enda rad, t.ex. printf("%d", 1+2)Kompilatorn konverterar din C-sprรฅk kod till assemblerkod; assemblern omvandlar sedan den till maskinkod transmitkopplad till processorn. Den vanligaste processorn som anvรคnds i datorer รคr Intel-processorn.
Moderna kompilatorer paketerar ofta assemblern sรฅ att de kan konvertera sprรฅkkod pรฅ hรถgre nivรฅ direkt till maskinkod.
Anta nu Windows kรถrs pรฅ en Intel-processor โ kombinationen av operativsystem och processor kallas en PLATTFORM. Den vanligaste plattformen รคr Windows pรฅ Intel, รคven kรคnd som Wintel-plattformen. Andra populรคra plattformar inkluderar AMD, Linux, PowerPC och macOS.
Med ett byte av processor รคndras รคven monteringsanvisningarna. Till exempel:
- Instruktionen โaddโ pรฅ Intel kan kallas ADDITION pรฅ AMD.
- Eller โMath ADDโ pรฅ PowerPC.
Och med ett byte av operativsystem รคndras รคven nivรฅn och karaktรคren av anrop pรฅ operativsystemnivรฅ.
Som utvecklare vill du att din programvara ska fungera pรฅ alla plattformar fรถr att maximera rรคckvidden. Det innebรคr att du skulle behรถva kรถpa separata kompilatorer som konverterar dina printf kommandot i den ursprungliga maskinkoden fรถr varje mรฅl.
Kompilatorer รคr dyra, och det finns alltid en risk fรถr kompatibilitetsproblem mellan operativsystem. Att kรถpa och installera en separat kompilator fรถr varje OS-processorkombination รคr inte praktiskt. Sรฅ vad รคr alternativet? Ange Java sprรฅk.
Hur gรถr det Java Fungerar en virtuell maskin?
Med hjรคlp av Java Virtuell maskin, detta problem kan lรถsas. Men hur fungerar det med olika processorer och operativsystem? Lรฅt oss gรฅ igenom det steg fรถr steg.
Steg 1) Koden fรถr att visa additionen av tvรฅ tal โ System.out.println(1+2) โ sparas som en .java fil.
Steg 2) Anvรคnda Java kompilator (javac), konverteras koden till mellanliggande kod som kallas bytekodUtgรฅngen รคr en .klass fil.
Steg 3) Denna bytekod fรถrstรฅs inte av nรฅgon fysisk plattform, bara av en virtuell plattform som kallas Java Virtuell maskin.
Steg 4) JVM:n finns i operativsystemets RAM-minne. Nรคr JVM:n matas med denna bytekod identifierar den plattformen den kรถrs pรฅ och konverterar bytekoden till den ursprungliga maskinkoden direkt.
Nรคr du arbetar pรฅ din dator eller surfar pรฅ webben, nรคr du ser Java-relaterade ikoner, kan du vara sรคker pรฅ att JVM:n รคr laddad i ditt RAM-minne. Vad gรถr Java attracDet viktiga รคr att kompilerad kod kan kรถras inte bara pรฅ alla PC-plattformar utan รคven pรฅ mobiler och andra elektroniska prylar som stรถder Java.
"Java รคr ett programmeringssprรฅk sรฅvรคl som en plattform.โ
Hur รคr Java Plattformsoberoende?
Till skillnad frรฅn en C-kompilator, Java kompilatorn producerar inte inbyggd kรถrbar kod fรถr en viss maskin. I stรคllet, Java producerar ett unikt mellanformat som kallas bytekodBytekoden exekveras enligt reglerna i JVM-specifikationen, vilket รคr anledningen till att Java รคr ett plattformsoberoende sprรฅk.
Bytekod รคr fรถrstรฅelig fรถr alla JVM installerade pรฅ alla operativsystem. Kort sagt, Java kรคllkoden kan kรถras pรฅ alla moderna operativsystem utan omkompilering, vilket รคr grunden fรถr Javas lรถfte "skriv en gรฅng, spring var som helst".








