Sissejuhatus Java

โšก Nutikas kokkuvรตte

Sissejuhatus Java selgitab รผldotstarbelist, klassipรตhist, objektorienteeritud programmeerimiskeelt, mis toimib ka arvutusplatvormina. See รตpetus hรตlmab jรคrgmist: Javaajalugu, versioonid, funktsioonid, pรตhikomponendid (JDK, JVM, JRE), platvormi versioonid ja baitkoodi mehhanism, mis selle teeb Java tรตeliselt รผks kord kirjutatav, kรตikjal kรคivitatav keel.

  • โ˜• Pรตhidefinitsioon: Java on รผldotstarbeline, klassipรตhine, objektorienteeritud programmeerimiskeel ja kรคitusaja platvorm, mis on loodud kaasaskantavuse ja tรถรถkindluse tagamiseks.
  • ๐Ÿงฉ Kolm komponenti: . Java Platvorm koosneb arenduseks mรตeldud JDK-st, kรคivitamiseks mรตeldud JVM-ist ja kรคitustoe jaoks mรตeldud JRE-st.
  • ๐Ÿ“œ Ajaloo tipphetked: Algselt OAK nime all 1991. aastal, รผmbernimetatud Java 1995. aastal ja omandas Oracle Sun Microsystemsilt 2009. aastal.
  • ๐ŸŒ Neli vรคljaannet: Java MA TEAN, Java EE (nรผรผd Jakarta EE), Java MINA ja JavaFX sihtrรผhmaks on lauaarvutid, ettevรตtte sรผsteemid, manusseadmed ja rikkalikud kliendid.
  • ๐Ÿ” Platvormi sรตltumatus: Java lรคhtekood kompileerub baitkoodiks, mis tรถรถtab mis tahes JVM-is, vรตimaldades tรตelist รผhekordset kirjutamist ja kรตikjal kรคivitamist operatsioonisรผsteemide vahel.

Sissejuhatus Java - Kuidas Java Virtuaalmasin tรถรถtab

Mis on Java?

Java on รผldotstarbeline, klassipรตhine, objektorienteeritud programmeerimiskeel, mis on loodud minimaalsete rakendussรตltuvuste jaoks. See on ka rakenduste arendamise arvutusplatvorm. Java on kiire, turvaline ja usaldusvรครคrne, mistรตttu see annab jรตudu tarkvarale sรผlearvutites, andmekeskustes, mรคngukonsoolides, teaduslikes superarvutites, mobiiltelefonides ja manussรผsteemides. Mitmeplatvormilise ja vรตrgukeskse keelena Java on endiselt รผks enimkasutatavaid programmeerimiskeeli tรถรถstuses ja enamik organisatsioone eelistab seda missioonikriitiliste projektide loomiseks.

Mis on Java Platvorm?

. Java Platvorm on programmide kogum, mis aitab arendajatel luua ja kรคivitada Java rakendusi tรตhusalt. See รผhendab tรคitmismootori, kompilaatori ja teekide komplekti koos spetsifikatsioonidega, mis mรครคravad nende koostรถรถ. James Gosling tรถรถtas vรคlja Java platvorm Sun Microsystemsis ja Oracle Corporation omandas selle Suni omandamise kaudu 2009. aastal.

See video tutvustab Java inimesele ja selgitab, miks Java on nii platvorm kui ka programmeerimiskeel:

Click siin kui videole ligipรครคs pole vรตimalik.

Mis on Java Kasutatud?

Siin on mรตned kรตige olulisemad reaalse maailma rakendused Java:

  • Developing Android apps.
  • Ettevรตtte tarkvara loomine suurtele organisatsioonidele.
  • Laia valiku mobiilseadmete toiteallikas Java rakendusi.
  • Teadusarvutusrakenduste kรคitamine.
  • Suurandmete analรผรผsi torujuhtmete juhtimine.
  • Sisseehitatud riistvaraseadmete programmeerimine.
  • Serveripoolsed tehnoloogiad nagu Apache, JBoss, GlassFish ja Tomcat.

Ajalugu Java Programmeerimiskeel

Siin on olulisemad vaatamisvรครคrsused ajaloost Java keel:

  • . Java keelt nimetati algselt TAMMiks.
  • Algselt tรถรถtati see vรคlja kaasaskantavate seadmete ja digibokside haldamiseks, kus OAK oli รคriline lรคbikukkumine.
  • 1995. aastal nimetas Sun keele รผmber nimeks โ€žJavaโ€žja muutis selle fookust, et รคra kasutada kiiresti kasvavat veebi.โ€œ
  • Aastal 2009, Oracle Corporation omandas Sun Microsystemsi ja vรตttis omanduseks kolm peamist Suni tarkvaravara: Java, MySQLja Solaris.

Java Variandid

Siin on lรผhike ajalugu Java versioonid ja nende vรคljalaskekuupรคevad, uuendatud viimase pikaajalise toe vรคljaande kaudu:

Java versioon Release Date
JDK alfa ja beeta 1995
JDK1.0 23. jaanuar 1996
JDK1.1 19 veebruar 1997
J2SE 1.2 8 dets detsember 1998
J2SE 1.3 8 mai 2000
J2SE 1.4 6 veebruar 2002
J2SE 5.0 30 september 2004
Java SE 6 11 dets detsember 2006
Java SE 7 28 juuli 2011
Java SE 8 (LTS) 18. Mรคrts 2014
Java SE 9 21 september 2017
Java SE 10 20. Mรคrts 2018
Java SE 11 (LTS) 25 september 2018
Java SE 12 19. Mรคrts 2019
Java SE 13 17 september 2019
Java SE 14 17. Mรคrts 2020
Java SE 15 15 september 2020
Java SE 16 16. Mรคrts 2021
Java SE 17 (LTS) 14 september 2021
Java SE 18 22. mรคrts 2022
Java SE 19 20 september 2022
Java SE 20 21. mรคrts 2023
Java SE 21 (LTS) 19 september 2023
Java SE 22 19. Mรคrts 2024
Java SE 23 17 september 2024
Java SE 24 18. Mรคrts 2025
Java SE 25 (LTS) 16 september 2025

Java FUNKTSIOONID

Siin on mรตned kรตige olulisemad Java omadused, mis on seda peaaegu kolm aastakรผmmet asjakohasena hoidnud:

  • See on รผks lihtsamini รตpitavaid objektorienteeritud programmeerimiskeeli.
  • โ€žKirjuta รผks kord, kรคivita kรตikjalโ€ โ€“ รผhes masinas kompileeritud kood tรถรถtab peaaegu igal arvutusplatvormil.
  • Java on platvormist sรตltumatu tรคnu oma baitkoodi tรคitmismudelile.
  • See on algusest peale loodud objektorienteeritud rakenduste jaoks.
  • See on mitmelรตimeline keel automaatse mรคluhaldusega (prรผgikoristus).
  • See loodi hajutatud internetikeskkonna jaoks.
  • See hรตlbustab hajutatud andmetรถรถtlust oma vรตrgukeskse disaini tรตttu.

Selle komponendid Java Programmeerimiskeel

A Java Programmeerija kirjutab koodi inimloetavas keeles, mida nimetatakse lรคhtekoodiProtsessor ei saa lรคhtekoodist kunagi otse aru โ€“ protsessorid kรคitavad ainult masinkoodi ja see masinkood erineb protsessoriperede lรตikes. Selle lรตhe รผletamiseks... Java platvorm tรตlgib lรคhtekoodi kaasaskantavaks vahevormiks. Kรตik see toimub kolme pรตhikomponendi sees: JDK, JVM ja JRE.

Java Arenduskomplekt (JDK)

JDK on tarkvaraarenduskeskkond, mida kasutatakse aplettide loomiseks ja Java rakendusi. JDK tรคisvorm on Java Arenduskomplekt. Java arendajad saavad seda kasutada Windows, macOS, Solarisja Linux. JDK aitab neil kodeerida ja kรคitada Java programmid. Samasse arvutisse on vรตimalik installida rohkem kui รผks JDK versioon.

Miks kasutada JDK-d?

  • JDK sisaldab kirjutamiseks vajalikke tรถรถriistu Java programmid ja JRE nende kรคivitamiseks.
  • See sisaldab kompilaatorit (javac) Java rakenduste kรคivitaja, AppletViewer ja sarnased utiliidid.
  • Kompilaator teisendab koodi, mis on kirjutatud Java baitkoodi sisse.
  • . Java rakenduste kรคivitaja avab JRE, laadib vajaliku klassi ja kรคivitab selle pรตhimeetodi.

Java Virtuaalmasin (JVM)

. Java Virtuaalmasin (JVM) on mootor, mis pakub sรตiduks tรถรถkeskkonda Java koodi vรตi rakendusi. See teisendab Java baitkoodi masinkeelde. JVM on osa sellest Java Kรคituskeskkond (JRE). Teistes programmeerimiskeeltes loob kompilaator konkreetse sรผsteemi jaoks masinkoodi. Siiski Java kompilaator loob koodi virtuaalmasinale, mida tuntakse kui Java Virtuaalne masin.

Miks JVM?

  • JVM pakub platvormist sรตltumatut tรคitmisviisi Java lรคhtekood.
  • Sellel on arvukalt valmislahendusi, tรถรถriistu ja raamistikke.
  • Kui olete koostanud Java programmi saab kรคivitada mis tahes platvormil, mis sรครคstab mรคrkimisvรครคrselt aega.
  • JVM-iga on kaasas JIT (Just-In-Time) kompilaator, mis teisendab baitkoodi kรคitusajal madala taseme masinkeeleks, muutes selle sageli kiiremaks kui interpreteeritud rakendus.

Java Kรคituskeskkond (JRE)

JRE on tarkvara, mis on loodud muu tarkvara kรคitamiseks. See sisaldab klassiteegid, laaduriklassi ja JVM-i. Lihtsamalt รถeldes, kui soovite kรคivitada ainult Java programmi (mitte seda arendada), vajad sa JRE-d, mitte tรคielikku JDK-d.

Miks kasutada JRE-d?

  • JRE sisaldab klassiteegid, JVM-i ja muid tugifaile. See ei sisalda arendustรถรถriistu, nรคiteks silurit vรตi kompilaatorit.
  • See kasutab olulisi pakettide klasse, sealhulgas math, swing, util, lang, awtja kรคitusaja teegid.
  • Kui peate jooksma Java Aplettide vรตi rakenduste jaoks peab teie sรผsteemi olema installitud JRE.

Erinevad tรผรผbid Java Platvormid

Seal on neli erinevat Java programmeerimiskeele platvormid, millest igaรผks on hรครคlestatud erinevale juurutamise eesmรคrgile:

1. Java Platvorm, Standardvรคljaanne (Java SE): Java SE API pakub Java programmeerimiskeele pรตhifunktsioonid. See defineerib kรตike alates baastรผรผpidest ja objektidest kuni kรตrgetasemeliste klassideni, mida kasutatakse vรตrgustamiseks, turvalisuse, andmebaasidele juurdepรครคsu, graafilise kasutajaliidese (GUI) arendamise ja XML-i parsimise jaoks.

2. Java Platvorm, ettevรตttevรคljaanne (Jakarta EE, varem Java EE): Jakarta EE platvorm pakub arenduseks API-t ja kรคituskeskkondaping ja kรคitades รผlimalt skaleeritavaid, suuremahulisi, mitmetasandilisi, usaldusvรครคrseid ja turvalisi vรตrgurakendusi. Oracle platvormi รผle kandis Eclipse Foundation 2017. aastal, mis nimetas selle รผmber Jakarta EE-ks.

3. Java Platvorm, mikrovรคljaanne (Java MINA): . Java ME platvorm pakub API-t ja vรคikese jalajรคljega virtuaalmasinat tรถรถks Java rakendused vรคikestel seadmetel, nรคiteks tavatelefonidel ja manussรผsteemide kontrolleritel.

4. JavaFX: JavaFX on platvorm arenduseksping rikkaliku sisuga internetirakendused, mis kasutavad kerget kasutajaliidese API-t. See kasutab riistvarakiirendusega graafika- ja meediamootoreid, mis aitavad Java Kasutage รคra vรตrgustatud andmeallikatega รผhenduse loomiseks suurema jรตudlusega kliente, moodsat vรคlimust ja kasutuskogemust ning kรตrgetasemelisi API-sid.

Et mรตista Java programmeerimiskeeles peame uuesti lรคbi vaatama mรตned pรตhimรตisted selle kohta, kuidas arvutiprogramm kรคske kรคivitab ja toiminguid sooritab.

Mis on arvuti?

Arvuti on elektrooniline seade, mis on vรตimeline arvutusi tegema. See koosneb monitorist, klaviatuurist, hiirest ja mรคlust teabe salvestamiseks. Kรตige olulisem komponent on aga PROTSESSOR. Protsessor teostab kogu arvuti mรตtlemise โ€“ aga kuidas see tegelikult seda teeb? Kuidas see teksti, pilte ja videoid mรตistab?

Mis on arvuti โ€“ pรตhikomponendid
Mis on PC?

Mis on Assembly Keel?

Arvuti on elektrooniline seade, seega saab see aru ainult elektroonilistest signaalidest โ€“ binaarsignaalidest. 5-voldine elektrooniline signaal vรตib esindada binaararvu 1, samas kui 0 volti vรตib esindada binaararvu 0. Teie arvutit pommitatakse pidevalt nende signaalidega.

Arvuti poolt tรถรถdeldud binaarsignaalid

Nende signaalide kaheksa bitti on rรผhmitatud teksti, numbrite ja sรผmbolite tรตlgendamiseks.

Kaheksa-bitine grouping teksti ja sรผmbolite jaoks

Nรคiteks sรผmboli # tuvastab arvuti kui 10101010. Samamoodi on liitmisfunktsiooni muster esindatud kui 10000011.

Arvutikรคskude binaarne esitus

Seda tuntakse 8-bitise andmetรถรถtlusena. Kaasaegsed protsessorid suudavad korraga dekodeerida 64-bitiseid juhiseid. Mis pistmist sellel kontseptsioonil siis on? JavaVaatame รผhte nรคidet.

Oletame, et tahad arvutile รถelda, et ta liitaks kaks arvu (1 + 2), mis on esitatud binaararvudena (10000011). Kuidas sa seda oma arvutile edastad? Koodi kรคivitamiseks kasutad assemblerkeelt.

"Assembly Keel on tarkvaraarenduskeelte kรตige elementaarsem vorm.

Sa annad kรคske jรคrgmises vormingus. Kahe arvu liitmise kood assemblerkeeles nรคeks vรคlja selline:

Assembly keele kahe numbri liitmise nรคide

  • Salvesta number 1 mรคlupessa A.
  • Salvesta number 2 mรคlupessa B.
  • Liida asukohtade A ja B sisu.
  • Salvestage tulemus.

1950. aastatel, kui arvutid olid tohutud ja energianรตudlikud, teisendati assemblerkood vastavaks masinkoodiks (1-d ja 0-d), kasutades map-koodi.ping lehed. Seejรคrel stantsiti kood masinakaartidele ja sรถรถdeti arvutisse. Arvuti luges need koodid ja kรคivitas programmi. See oli pikk protsess โ€“ kuni saabus MONTEERIJA, kes konverteerimise automatiseeris.

Mis on assembler ja kompilaator?

Tehnoloogia arenedes leiutati sisend-/vรคljundseadmed. Programmi sai otse arvutisse sisestada, kasutades ASSEMBLERit, mis teisendab selle vastavaks masinkoodiks (110001โ€ฆ) ja edastab protsessorile. Meie 1 + 2 nรคite juurde tagasi tulles, teisendab assembler assemblerkoodi vรคljundiks masinkoodiks.

Assembler teisendab assemblerkoodi masinkoodiks

Lisaks assemblerile peate vรคljundi kuvamiseks tegema ka vรคljakutseid operatsioonisรผsteemi pakutavatele funktsioonidele.

Ainult assemblerist ei piisa; see vajab ka KOMPILEERI, et pakkida pikk lรคhtekood vรคiksemateks, optimeeritud tรผkkideks. Kรตrgema taseme tarkvaraarenduskeelte puhul kahaneb kogu รผlaltoodud assembleri koodijupp รผhele reale, nรคiteks printf("%d", 1 + 2)Kompilaator teisendab teie C keel kood assemblerkoodiks; seejรคrel teisendab assembler selle masinkoodiks transmitprotsessorile. Arvutites kasutatav kรตige levinum protsessor on Inteli protsessor.

Kompilaatori ja assembleri torujuhe

Kaasaegsed kompilaatorid komplekteerivad sageli assembleri, et nad saaksid kรตrgema taseme keelekoodi otse masinkoodiks teisendada.

Nรผรผd, oletame Windows tรถรถtab Inteli protsessoril โ€“ operatsioonisรผsteemi ja protsessori kombinatsiooni nimetatakse PLATVORMIKS. Kรตige levinum platvorm on Windows Inteli platvormil, tuntud ka kui Winteli platvorm. Teiste populaarsete platvormide hulka kuuluvad AMD, Linux, PowerPC ja macOS.

Protsessori vahetusega muutuvad ka kokkupanekujuhised. Nรคiteks:

  • Inteli protsessorites vรตib โ€žaddโ€ kรคsku AMD-s nimetada ADDITION-iks.
  • Vรตi PowerPC-s โ€žMath ADDโ€.

Ja operatsioonisรผsteemi muutumisega muutuvad ka operatsioonisรผsteemi tasemel kรตnede tase ja olemus.

Arendajana soovite, et teie tarkvara tรถรถtaks igal platvormil, et maksimeerida ulatust. See tรคhendab, et peate ostma eraldi kompilaatorid, mis teisendavad teie printf kรคsk iga sihtmรคrgi natiivsesse masinkoodi.

Mitme platvormi kompilaatorid

Kompilaatorid on kallid ja alati on oht รผhilduvusprobleemideks operatsioonisรผsteemide vahel. Iga operatsioonisรผsteemi ja protsessori kombinatsiooni jaoks eraldi kompilaatori ostmine ja installimine pole otstarbekas. Mis on siis alternatiiv? Sisestage see. Java keel.

Kuidas Java Virtuaalmasin tรถรถtab?

Kasutades Java Virtuaalne masin, seda probleemi saab lahendada. Aga kuidas see erinevate protsessorite ja operatsioonisรผsteemide puhul toimib? Vaatame seda samm-sammult.

Kuidas Java Virtuaalmasin tรถรถtab samm-sammult

Step 1) Kahe numbri liitmise kuvamise kood โ€” System.out.println(1+2) โ€” salvestatakse kui .java faili.

Step 2) kasutades Java kompilaator (javac), teisendatakse kood vahekoodiks, mida nimetatakse baitkoodVรคljund on a .klass faili.

Step 3) Seda baitkoodi ei mรตista รผkski fรผรผsiline platvorm, vaid ainult virtuaalne platvorm nimega Java Virtuaalne masin.

Step 4) JVM asub teie operatsioonisรผsteemi muutmรคlus (RAM). Kui JVM-ile see baitkood edastatakse, tuvastab see platvormi, millel see tรถรถtab, ja teisendab baitkoodi lennult natiivseks masinkoodiks.

Arvutiga tรถรถtades vรตi veebis surfates nรคete alati Javaseotud ikoonidega vรตite olla kindel, et JVM on teie muutmรคlusse laaditud. Mis teeb selle Java attracon see, et kompileeritud koodi saab kรคivitada mitte ainult igal PC platvormil, vaid ka mobiiltelefonides ja muudes elektroonikaseadmetes, mis seda toetavad Java.

"Java on nii programmeerimiskeel kui ka platvorm.

kuidas on Java Platvormist sรตltumatu?

Erinevalt C kompilaatorist, Java kompilaator ei tooda konkreetse masina jaoks algset kรคivitatavat koodi. Selle asemel Java loob unikaalse vahevormingu nimega baitkoodBaitkood kรคivitatakse vastavalt JVM-i spetsifikatsioonis sรคtestatud reeglitele, mistรตttu Java on platvormist sรตltumatu keel.

Baitkood on arusaadav iga JVM-i jaoks, mis on installitud mis tahes operatsioonisรผsteemile. Lรผhidalt, Java lรคhtekood saab tรถรถtada igas kaasaegses operatsioonisรผsteemis ilma uuesti kompileerimiseta, mis on selle alus Javalubadus โ€žkirjuta รผks kord, jookse kรตikjaleโ€.

KKK

JDK on arenduskomplekt, mis sisaldab kompilaatorit ja tรถรถriistu. JRE on kรคituskeskkond, mis sisaldab JVM-i ja klassiteeke, mida on vaja kรคivitamiseks. Java programmid. JVM on JRE-sisene mootor, mis teisendab baitkoodi kรคitusajal natiivseks masinkoodiks.

Jah. Java on ettevรตtte sรผsteemide jaoks endiselt vรคga oluline, Android rakendused, finantsplatvormid, suurandmed ja mikroteenused. Kaasaegsed versioonid, nรคiteks Java 21 ja Java 25 LTS lisab kirjeid, virtuaalseid lรตime, mustrite sobitamist ja parandab jรตudlust, et sรคilitada Java konkurentsivรตimeline.

Algajad peaksid installima pikaajalise toe (LTS) versiooni. Java SE 25, mis ilmus 2025. aasta septembris, on uusim LTS-versioon koos Java 21 ja Java 17 on endiselt laialdaselt kasutusel. LTS-versioonid saavad mรผรผjatelt laiendatud turvapaigaldusi ja stabiilset tuge.

Tehisintellekti kasutatakse koos Java ettevรตtte masinรตppe, pettuste avastamise, soovitusmootorite ja vestlusrobotite jaoks. Teegid nagu DJL, Deeplearning4j ja Tribuo toovad JVM-i sรผvaรตppe, samas kui tehisintellektil pรตhinevad kodeerimisassistendid kiirendavad Java refaktoriseerimine ja รผhiktestide genereerimine.

Jah. Tehisintellekti kodeerimisassistendid selgitavad Java sรผntaksit, harjutusรผlesannete genereerimist, vigade silumist ja koodi reaalajas รผlevaatamist. Algajad saavad kasu interaktiivsest tagasisidest, mis toob esile objektorienteeritud parimad tavad, JVM-i kรคitumise ja levinud vead, mida traditsioonilised รตpikud harva kajastavad.

Vรตta see postitus kokku jรคrgmiselt: