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.

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 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.
Kahdeksan bittiรค nรคistรค signaaleista on ryhmitelty yhteen tekstin, numeroiden ja symbolien tulkitsemiseksi.
Esimerkiksi tietokone tunnistaa #-merkin muodossa 10101010. Vastaavasti "yhteenlasku"-funktion mallia edustaa luku 10000011.
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รค:
- 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.
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.
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.
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.
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".








