Johdatus Java

โšก ร„lykรคs yhteenveto

Johdatus Java selittรครค yleiskรคyttรถisen, luokkapohjaisen, olio-ohjelmointikielen, joka toimii myรถs laskenta-alustana. Tรคmรค opetusohjelma kattaa Javahistoria, versiot, ominaisuudet, ydinkomponentit (JDK, JVM, JRE), alustaversiot ja tavukoodimekanismi, joka tekee Java aito kerran kirjoitettava, missรค tahansa ajettava kieli.

  • โ˜• Ydinmรครคritelmรค: Java on yleiskรคyttรถinen, luokkapohjainen, olio-ohjelmointikieli ja ajonaikainen alusta, joka on suunniteltu siirrettรคvyyttรค ja luotettavuutta silmรคllรค pitรคen.
  • ๐Ÿงฉ Kolme komponenttia: Java Alusta koostuu JDK:sta kehitystรค varten, JVM:stรค suoritusta varten ja JRE:stรค ajonaikaista tukea varten.
  • ๐Ÿ“œ Historian kohokohdat: Alun perin nimeltรครคn OAK vuonna 1991, nimettiin uudelleen Java vuonna 1995, ja sen hankki Oracle Sun Microsystemsiltรค vuonna 2009.
  • ๐ŸŒ Neljรค versiota: Java SE, Java EE (nykyisin Jakarta EE), Java MINร„ ja JavaFX-kohdetietokoneet, yritysjรคrjestelmรคt, sulautetut laitteet ja monipuoliset asiakasohjelmat.
  • ๐Ÿ” Alustan riippumattomuus: Java lรคhdekoodi kรครคntyy tavukoodiksi, joka toimii millรค tahansa JVM:llรค, mikรค mahdollistaa todellisen kertakirjoituksen ja missรค tahansa suoritettavan siirrettรคvyyden kรคyttรถjรคrjestelmien vรคlillรค.

Johdatus Java - Miten Java Virtuaalikone toimii

Mikรค on Java?

Java on yleiskรคyttรถinen, luokkapohjainen, olio-ohjelmointikieli, joka on suunniteltu minimoimaan toteutusriippuvuudet. Se on myรถs laskenta-alusta sovelluskehitykseen. Java on nopea, turvallinen ja luotettava, minkรค vuoksi se toimii ohjelmistojen voimanlรคhteenรค kannettavissa tietokoneissa, datakeskuksissa, pelikonsoleissa, tieteellisissรค supertietokoneissa, matkapuhelimissa ja sulautetuissa laitteissa. Monialustaisena, verkkokeskeisenรค kielenรค Java on edelleen yksi alan laajimmin kรคytetyistรค ohjelmointikielistรค, ja useimmat organisaatiot suosivat sitรค kriittisten projektien rakentamisessa.

Mikรค on Java Alusta?

Java foorumi on kokoelma ohjelmia, jotka auttavat kehittรคjiรค luomaan ja suorittamaan Java sovelluksia tehokkaasti. Se sisรคltรครค suoritusmoottorin, kรครคntรคjรคn ja joukon kirjastoja sekรค mรครคritykset, jotka mรครคrittelevรคt niiden yhteentoimivuuden. James Gosling kehitti Java Sun Microsystemsin alustalla ja Oracle Corporation hankki sen Sunin oston kautta vuonna 2009.

Tรคmรค video esittelee Java foorumi ja selittรครค miksi Java on sekรค alusta ettรค ohjelmointikieli:

Napauta tรครคltรค jos video ei ole saatavilla.

Mikรค on Java Kรคytetรครคn?

Tรคssรค on joitakin tรคrkeimmistรค tosielรคmรคn sovelluksista Java:

  • Developing Android sovellukset.
  • Yritysohjelmistojen rakentaminen suurille organisaatioille.
  • Laajan valikoiman mobiililaitteita Java sovelluksissa.
  • Tieteellisen laskennan sovellusten suorittaminen.
  • Big data -analytiikan prosessien ajaminen.
  • Sulautettujen laitteistojen ohjelmointi.
  • Palvelinpuolen teknologiat, kuten Apache, JBoss, GlassFish ja Tomcat.

Historia Java Ohjelmointikieli

Tรคssรค ovat tรคrkeimmรคt maamerkkit historiasta Java Kieli:

  • Java kielen nimi oli alun perin OAK.
  • Se kehitettiin alun perin kannettavien laitteiden ja digisovittimien kรคsittelyyn, kun taas OAK oli kaupallinen epรคonnistuminen.
  • Vuonna 1995 Sun nimesi kielen uudelleen muotoon "Javaโ€ ja uudelleentarkastelun avulla se hyรถdynsi nopeasti kasvavaa World Wide Webiรค.
  • Vuonna 2009, Oracle Corporation osti Sun Microsystemsin ja otti omistukseensa kolme keskeistรค Sun-ohjelmistoomaisuutta: Java, MySQLja Solaris.

Java versiot

Tรคssรค on lyhyt historia Java versiot ja niiden julkaisupรคivรคt, pรคivitettynรค viimeisimmรคn pitkรคaikaisen tuen julkaisun myรถtรค:

Java Versio Release Date
JDK Alpha ja Beta 1995
JDK 1.0 23rd tammikuu 1996
JDK 1.1 19th Helmikuu 1997
J2SE 1.2 8th joulukuu 1998
J2SE 1.3 8th toukokuuta 2000
J2SE 1.4 6th Helmikuu 2002
J2SE 5.0 30th Sep 2004
Java SE 6 11th joulukuu 2006
Java SE 7 28th heinรคkuu 2011
Java SE 8 (LTS) 18th Mar 2014
Java SE 9 21st syyskuu 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. maaliskuuta 2022
Java SE 19 20th Sep 2022
Java SE 20 21st maaliskuu 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 Ominaisuudet

Tรคssรค on joitakin tรคrkeimmistรค Java ominaisuuksia, jotka ovat pitรคneet sen ajan tasalla lรคhes kolmen vuosikymmenen ajan:

  • Se on yksi helpoimmin opittavista olio-ohjelmointikielistรค.
  • โ€Kirjoita kerran, suorita missรค tahansaโ€ โ€“ yhdellรค koneella kรครคnnetty koodi toimii lรคhes millรค tahansa laskenta-alustalla.
  • Java on alustariippumaton tavukoodisuoritusmallinsa ansiosta.
  • Se on suunniteltu alusta alkaen oliopohjaisia โ€‹โ€‹sovelluksia varten.
  • Se on monisรคikeinen kieli, jossa on automaattinen muistinhallinta (roskienkeruu).
  • Se luotiin internetin hajautettua ympรคristรถรค varten.
  • Se helpottaa hajautettua laskentaa verkkokeskeisen suunnittelunsa ansiosta.

Komponentit Java Ohjelmointikieli

A Java ohjelmoija kirjoittaa koodia ihmisen luettavalla kielellรค, jota kutsutaan lรคhdekoodiCPU ei koskaan ymmรคrrรค lรคhdekoodia suoraan โ€“ CPU:t ajavat vain konekielistรค koodia, ja tuo konekielinen koodi vaihtelee CPU-perheiden vรคlillรค. Tรคmรคn kuilun kaventamiseksi Java alusta muuntaa lรคhdekoodin kannettavaan vรคlimuotoon. Kaikki tรคmรค tapahtuu kolmen ydinkomponentin sisรคllรค: JDK:ssa, JVM:ssรค ja JRE:ssรค.

Java Kehityspaketti (JDK)

JDK on ohjelmistokehitysympรคristรถ, jota kรคytetรครคn sovelmien ja ohjelmien kehittรคmiseen. Java sovelluksia. JDK:n tรคysi muoto on Java Kehityspaketti. Java kehittรคjรคt voivat kรคyttรครค sitรค Windows, macOS, Solarisja Linux. JDK auttaa heitรค koodaamaan ja suorittamaan Java ohjelmia. On mahdollista asentaa useampi kuin yksi JDK-versio samalle tietokoneelle.

Miksi kรคyttรครค JDK:ta?

  • JDK sisรคltรครค kirjoittamiseen tarvittavat tyรถkalut Java ohjelmat ja JRE niiden suorittamiseen.
  • Se sisรคltรครค kรครคntรคjรคn (javac), Java sovellusten kรคynnistysohjelma, AppletViewer ja vastaavat apuohjelmat.
  • Kรครคntรคjรค muuntaa koodin, joka on kirjoitettu Java tavukoodiksi.
  • Java sovellusten kรคynnistysohjelma avaa JRE:n, lataa tarvittavan luokan ja suorittaa sen pรครคmenetelmรคn.

Java Virtuaalikone (JVM)

Java Virtuaalikone (JVM) on moottori, joka tarjoaa ajoympรคristรถn Java koodia tai sovelluksia. Se muuntaa Java tavukoodi konekielelle. JVM on osa Java Ajonaikainen ympรคristรถ (JRE). Muissa ohjelmointikielissรค kรครคntรคjรค tuottaa konekoodia tietylle jรคrjestelmรคlle. Kuitenkin Java kรครคntรคjรค tuottaa koodia virtuaalikoneelle, joka tunnetaan nimellรค Java Virtuaalikone.

Miksi JVM?

  • JVM tarjoaa alustasta riippumattoman suoritustavan Java lรคhdekoodi.
  • Siinรค on lukuisia kirjastoja, tyรถkaluja ja kehyksiรค saatavilla suoraan pakkauksesta.
  • Kun olet koonnut Java ohjelmaa voi kรคyttรครค millรค tahansa alustalla, mikรค sรครคstรครค merkittรคvรคsti aikaa.
  • JVM toimitetaan JIT (Just-In-Time) -kรครคntรคjรคllรค, joka muuntaa tavukoodin matalan tason konekielelle ajonaikana, mikรค usein tekee siitรค nopeamman kuin tulkittu sovellus.

Java Runtime Environment (JRE)

JRE on ohjelmisto, joka on suunniteltu muiden ohjelmistojen suorittamiseen. Se sisรคltรครค luokkakirjastot, latausluokan ja JVM:n. Yksinkertaisesti sanottuna, jos haluat suorittaa vain Java ohjelman kehittรคmiseen (etkรค sellaisen kehittรคmiseen), tarvitset JRE:n tรคyden JDK:n sijaan.

Miksi kรคyttรครค JRE:tรค?

  • JRE sisรคltรครค luokkakirjastoja, JVM:n ja muita tukitiedostoja. Se ei sisรคllรค kehitystyรถkaluja, kuten virheenkorjaajaa tai kรครคntรคjรครค.
  • Se kรคyttรครค tรคrkeitรค pakettiluokkia, mukaan lukien math, swing, util, lang, awtja ajonaikaisia โ€‹โ€‹kirjastoja.
  • Jos pitรครค juosta Java sovelmia tai sovelluksia, JRE:n on oltava asennettuna jรคrjestelmรครคsi.

Erilaisia Java Alustat

On neljรค erillistรค Java ohjelmointikieliympรคristรถt, joista jokainen on viritetty eri kรคyttรถรถnottokohteeseen:

1. Java Alusta, Standard Edition (Java SE): Java SE:n API tarjoaa Java ohjelmointikielen ydintoiminnallisuus. Se mรครคrittelee kaiken perustyypeistรค ja objekteista korkean tason luokkiin, joita kรคytetรครคn verkottumiseen, tietoturvaan, tietokannan kรคyttรถรถn, graafisen kรคyttรถliittymรคn (GUI) kehittรคmiseen ja XML-jรคsentรคmiseen.

2. Java Alusta, Enterprise Edition (Jakarta EE, aiemmin Java EE): Jakarta EE -alusta tarjoaa API:n ja suoritusaikaisen ympรคristรถn kehitystyรถhรถnping ja erittรคin skaalautuvien, laaja-alaisten, monitasoisten, luotettavien ja turvallisten verkkosovellusten suorittaminen. Oracle siirsi alustan Eclipse Foundation vuonna 2017, joka muutti sen nimeksi Jakarta EE.

3. Java Alusta, Micro Edition (Java MINULLE): Java ME-alusta tarjoaa API:n ja pienikokoisen virtuaalikoneen suoritusta varten Java sovelluksia pienissรค laitteissa, kuten peruspuhelimissa ja sulautetuissa ohjaimissa.

4. JavaFX: JavaFX on kehitysalustaping rikkaat internet-sovellukset kevyen kรคyttรถliittymรคrajapinnan avulla. Se kรคyttรครค laitteistokiihdytettyjรค grafiikka- ja mediamoottoreita, jotka auttavat Java Hyรถdynnรค tehokkaampia asiakasohjelmia, modernia ulkoasua ja kรคyttรถkokemusta sekรค korkean tason API-rajapintoja verkkoon yhdistettyihin tietolรคhteisiin yhteyden muodostamiseen.

Ymmรคrtรครค Java ohjelmointikielellรค meidรคn on tarkasteltava uudelleen joitakin peruskรคsitteitรค siitรค, miten tietokoneohjelma suorittaa komentoja ja toimintoja.

Mikรค on PC?

Tietokone on elektroninen laite, joka pystyy suorittamaan laskutoimituksia. Se koostuu nรคytรถstรค, nรคppรคimistรถstรค, hiirestรค ja muistista tiedon tallentamiseksi. Tรคrkein komponentti on kuitenkin PROSESSORI. Prosessori suorittaa kaiken tietokoneen ajattelun โ€“ mutta miten se oikeastaan โ€‹โ€‹tekee tuon ajattelemisen? Miten se ymmรคrtรครค tekstiรค, kuvia ja videoita?

Mikรค on PC - keskeiset komponentit
Mikรค on PC?

Mikรค on Assembly Kieli?

Tietokone on elektroninen laite, joten se ymmรคrtรครค vain elektronisia signaaleja โ€“ binรครคrisignaaleja. 5 voltin elektroninen signaali voi edustaa binรครคrilukua 1, kun taas 0 volttia voi edustaa binรครคrilukua 0. Tietokonettasi pommitetaan jatkuvasti nรคillรค signaaleilla.

Tietokoneen kรคsittelemรคt binรครคrisignaalit

Kahdeksan bittiรค nรคistรค signaaleista on ryhmitelty yhteen tekstin, numeroiden ja symbolien tulkitsemiseksi.

Kahdeksanbittinen grouping tekstille ja symboleille

Esimerkiksi tietokone tunnistaa #-merkin muodossa 10101010. Vastaavasti "yhteenlasku"-funktion mallia edustaa luku 10000011.

Tietokoneohjeiden binรครคriesitys

Tรคtรค kutsutaan 8-bittiseksi laskennaksi. Nykyaikaiset prosessorit pystyvรคt dekoodaamaan 64-bittisiรค kรคskyjรค kerrallaan. Mitรค tekemistรค tรคllรค kรคsitteellรค on? JavaKรคydรครคn lรคpi esimerkki.

Oletetaan, ettรค haluat kรคskeรค tietokonetta laskemaan yhteen kaksi lukua (1 + 2), jotka esitetรครคn binรครคriluvuilla (10000011). Miten viestit tรคmรคn tietokoneellesi? Kรคytรคt assembly-kieltรค koodisi suorittamiseen.

"Assembly Kieli on ohjelmistokehityskielten alkeellisin muoto."

Annat komentoja seuraavassa muodossa. Kahden luvun yhteenlasku assembly-kielellรค nรคyttรคisi tรคltรค:

Assembly kielen kahden numeron yhteenlasku -esimerkki

  • Tallenna numero 1 muistipaikkaan A.
  • Tallenna numero 2 muistipaikkaan B.
  • Laske yhteen sijaintien A ja B sisรคltรถ.
  • Sรคilytรค tulos.

1950-luvulla, kun tietokoneet olivat valtavia ja tehoa ahneita, assembly-koodi muunnettiin vastaavaksi konekieliseksi koodiksi (ykkรถset ja nollat) kรคyttรคmรคllรค map-funktiota.ping arkkeja. Koodi rei'itettiin sitten konekorteille ja syรถtettiin tietokoneelle. Tietokone luki nรคmรค koodit ja suoritti ohjelman. Tรคmรค oli pitkรค prosessi โ€“ kunnes KOKOONPANIJA saapui automatisoimaan muunnoksen.

Mitรค ovat Assembler ja Compiler?

Teknologian kehittyessรค keksittiin I/O-laitteita. Voit kirjoittaa ohjelmasi suoraan tietokoneelle kรคyttรคmรคllรค ASSEMBLER-komentoa, joka muuntaa sen vastaavaksi konekieliseksi koodiksi (110001โ€ฆ) ja syรถttรครค sen prosessorille. Palatakseni 1 + 2 -esimerkkiimme, assembler muuntaa assembly-koodin konekieliseksi koodiksi tulosteena.

Assembler muuntaa assembly-koodin konekielelle

Assemblyn lisรคksi sinun on myรถs kutsuttava kรคyttรถjรคrjestelmรคn tarjoamia funktioita tulosteen nรคyttรคmiseksi.

Pelkkรค assembler ei riitรค; se tarvitsee myรถs Kร„ร„NTร„Jร„N pakkaamaan pitkรคn lรคhdekoodin pienemmiksi, optimoiduiksi paloiksi. Korkeamman tason ohjelmistokehityskielillรค koko yllรค oleva assembler-koodinpรคtkรค kutistuu yhdelle riville, kuten printf("%d", 1 + 2)Kรครคntรคjรค muuntaa sinun C-kieli koodi assembly-koodiksi; assembler muuntaa sen sitten konekieliseksi koodiksi transmitprosessorille. Yleisin tietokoneissa kรคytetty prosessori on Intel-prosessori.

Kรครคntรคjรค- ja assembler-putkisto

Nykyaikaiset kรครคntรคjรคt usein niputtavat assemblerin, jotta ne voivat muuntaa korkeamman tason kielikoodia suoraan konekieleksi.

Oletetaan nyt, Windows toimii Intel-prosessorilla โ€“ kรคyttรถjรคrjestelmรคn ja prosessorin yhdistelmรครค kutsutaan ALUSTAKSI. Yleisin alusta on Windows Intel-alustalla, joka tunnetaan myรถs nimellรค Wintel. Muita suosittuja alustoja ovat AMD, Linux, PowerPC ja macOS.

Prosessorin vaihtuessa myรถs kokoamisohjeet muuttuvat. Esimerkiksi:

  • Intelin "add"-kรคskyรค voidaan AMD:llรค kutsua nimellรค ADDITION.
  • Tai โ€œMath ADDโ€ PowerPC:llรค.

Ja kรคyttรถjรคrjestelmรคn muutoksen myรถtรค myรถs kรคyttรถjรคrjestelmรคtason puheluiden taso ja luonne muuttuvat.

Kehittรคjรคnรค haluat ohjelmistosi toimivan kaikilla alustoilla maksimoidaksesi tavoittavuuden. Tรคmรค tarkoittaa, ettรค sinun on ostettava erilliset kรครคntรคjรคt, jotka muuntavat printf komennon jokaisen kohteen natiiviin konekoodiin.

Useita alustoja kรครคntรคvรคt

Kรครคntรคjรคt ovat kalliita, ja kรคyttรถjรคrjestelmien vรคlillรค on aina yhteensopivuusongelmien riski. Erillisen kรครคntรคjรคn ostaminen ja asentaminen jokaiselle kรคyttรถjรคrjestelmรค-prosessori-yhdistelmรคlle ei ole kรคytรคnnรถllistรค. Joten mikรค on vaihtoehto? Kirjoita Java Kieli.

Miten Java Virtuaalikone toimii?

Kรคyttรคmรคllรค Java Virtuaalikone, tรคmรค ongelma voidaan ratkaista. Mutta miten se toimii eri prosessoreilla ja kรคyttรถjรคrjestelmillรค? Kรคydรครคn se lรคpi askel askeleelta.

Miten Java Virtuaalikone toimii askel askeleelta

Vaihe 1) Kahden luvun yhteenlaskun nรคyttรคvรค koodi โ€” System.out.println(1+2) โ€” tallennetaan nimellรค .java tiedosto.

Vaihe 2) Kรคyttรคen Java kรครคntรคjรค (javac), koodi muunnetaan vรคlikoodiksi, jota kutsutaan tavukoodiTuloste on .luokka tiedosto.

Vaihe 3) Tรคtรค tavukoodia ei ymmรคrrรค mikรครคn fyysinen alusta, ainoastaan โ€‹โ€‹virtuaalinen alusta nimeltรค Java Virtuaalikone.

Vaihe 4) JVM sijaitsee kรคyttรถjรคrjestelmรคsi RAM-muistissa. Kun JVM:lle syรถtetรครคn tรคmรค tavukoodi, se tunnistaa alustan, jolla se toimii, ja muuntaa tavukoodin natiiviksi konekoodiksi lennossa.

Kun tyรถskentelet tietokoneellasi tai selailet verkkoa, aina kun nรคet Java-aiheisten kuvakkeiden avulla voit olla varma, ettรค JVM on ladattu RAM-muistiisi. Mikรค tekee siitรค Java attracon, ettรค kรครคnnettyรค koodia voidaan ajaa paitsi kaikilla PC-alustoilla, myรถs matkapuhelimissa ja muissa elektronisissa laitteissa, jotka tukevat Java.

"Java on sekรค ohjelmointikieli ettรค alusta.โ€

Miten on Java Alustasta riippumaton?

Toisin kuin C-kรครคntรคjรค, Java kรครคntรคjรค ei tuota natiivia suoritettavaa koodia tietylle koneelle. Sen sijaan Java tuottaa ainutlaatuisen vรคlimuotoisen nimisen tavukoodiTavukoodi suoritetaan JVM-spesifikaation sรครคntรถjen mukaisesti, minkรค vuoksi Java on alustasta riippumaton kieli.

Tavukoodi on ymmรคrrettรคvissรค millรค tahansa JVM:llรค, joka on asennettu mihin tahansa kรคyttรถjรคrjestelmรครคn. Lyhyesti sanottuna, Java lรคhdekoodi voi toimia kaikissa moderneissa kรคyttรถjรคrjestelmissรค ilman uudelleenkรครคntรคmistรค, mikรค on perusta Javan lupaus "kirjoita kerran, juokse minne tahansa".

UKK

JDK on kehityspaketti, joka sisรคltรครค kรครคntรคjรคn ja tyรถkaluja. JRE on ajonaikainen ympรคristรถ, joka sisรคltรครค JVM:n ja luokkakirjastot, joita tarvitaan suorittamiseen. Java ohjelmia. JVM on JRE:n sisรคllรค oleva moottori, joka muuntaa tavukoodin natiiviksi konekieleksi ajonaikana.

Kyllรค. Java on edelleen erittรคin merkityksellinen yritysjรคrjestelmille, Android sovellukset, rahoitusalustat, big data ja mikropalvelut. Nykyaikaiset julkaisut, kuten Java 21 ja Java 25 LTS lisรครค tietueita, virtuaalisรคikeitรค, kuvioiden yhteensovitusta ja parantaa suorituskykyรค Java kilpailukykyinen.

Aloittelijoiden tulisi asentaa Long-Term Support (LTS) -julkaisu. Java Syyskuussa 2025 julkaistu SE 25 on uusin LTS-versio, jossa on Java 21 ja Java 17 on edelleen laajalti kรคytรถssรค. LTS-versiot saavat laajennetut tietoturvapรคivitykset ja vakaan tuen toimittajilta.

Tekoรคlyรค kรคytetรครคn Java yritysten koneoppimiseen, petosten havaitsemiseen, suosittelukoneisiin ja chatbotteihin. Kirjastot, kuten DJL, Deeplearning4j ja Tribuo, tuovat syvรคoppimista JVM:รครคn, kun taas tekoรคlykoodausavustajat nopeuttavat Java refaktorointi ja yksikkรถtestien generointi.

Kyllรค. Tekoรคlykoodausavustajat selittรคvรคt Java syntaksia, harjoitustehtรคvien luomista, virheiden detangointia ja koodin tarkastelua reaaliajassa. Aloittelijat hyรถtyvรคt interaktiivisesta palautteesta, joka korostaa oliopohjaisen suunnittelun parhaita kรคytรคntรถjรค, JVM-kรคyttรคytymistรค ja yleisiรค virheitรค, joita perinteiset oppikirjat harvoin tuovat esiin.

Tiivistรค tรคmรค viesti seuraavasti: