Uvod u Java
โก Pametni saลพetak
Uvod u Java objaลกnjava opฤi, na klasama temeljen, objektno orijentiran programski jezik koji sluลพi i kao raฤunalna platforma. Ovaj vodiฤ pokriva Javapovijest, verzije, znaฤajke, kljuฤne komponente (JDK, JVM, JRE), izdanja platforme i mehanizam bajtkoda koji ga ฤini Java pravi jezik u koji se moลพe pisati samo jednom, a izvrลกavati bilo gdje.

ล to je Java?
Java je programski jezik opฤe namjene, baziran na klasama, objektno orijentiran, dizajniran za minimalne implementacijske ovisnosti. Takoฤer je raฤunalna platforma za razvoj aplikacija. Java je brz, siguran i pouzdan, zbog ฤega pokreฤe softver na prijenosnim raฤunalima, podatkovnim centrima, igraฤim konzolama, znanstvenim superraฤunalima, mobitelima i ugraฤenim ureฤajima. Kao viลกeplatformski, mreลพno-centriฤni jezik, Java ostaje jedan od najลกire prihvaฤenih programskih jezika u industriji i veฤina organizacija ga preferira za izgradnju projekata kritiฤnih za misiju.
ล to je Java Platforma?
The Java Platforma je skup programa koji pomaลพe programerima u stvaranju i pokretanju Java uฤinkovito upravlja aplikacijama. Objedinjuje izvrลกni mehanizam, kompajler i skup biblioteka, zajedno sa specifikacijama koje definiraju kako oni meฤusobno djeluju. James Gosling razvio je Java platforma u Sun Microsystemsu i Oracle Korporacija ga je preuzela putem akvizicije Suna 2009. godine.
Ovaj video predstavlja Java platforma i objaลกnjava zaลกto Java je i platforma i programski jezik:
Kliknite ovdje ako video nije dostupan.
ล to je Java Koristi za?
Evo nekih od najvaลพnijih primjena u stvarnom svijetu Java:
- Razvojping Android aplikacije.
- Izrada poslovnog softvera za velike organizacije.
- Omoguฤuje ลกirok raspon mobilnih ureฤaja Java aplikacija.
- Pokretanje znanstvenih raฤunalnih aplikacija.
- Pokretanje procesa analize velikih podataka.
- Programiranje ugraฤenih hardverskih ureฤaja.
- Tehnologije na strani posluลพitelja kao ลกto su Apache, JBoss, GlassFish i Tomcat.
Povijest Java Programski jezik
Ovdje su vaลพne znamenitosti iz povijesti Java Jezik:
- The Java jezik se u poฤetku zvao HRAST.
- Izvorno je razvijen za rukovanje prijenosnim ureฤajima i set-top boxovima, gdje je OAK bio komercijalni neuspjeh.
- Godine 1995. Sun je preimenovao jezik u โJava"i preusmjerio ga kako bi iskoristio prednosti brzorastuฤeg World Wide Weba."
- U 2009, Oracle Korporacija je kupila Sun Microsystems i preuzela vlasniลกtvo nad tri kljuฤna Sun softverska sredstva: Java, MySQLi Solaris.
Java verzije
Evo kratke povijesti Java verzije i njihovi datumi izdanja, aลพurirani putem najnovijeg izdanja dugoroฤne podrลกke:
| Java Verzija | Datum objave |
|---|---|
| JDK alfa i beta | 1995 |
| JDK1.0 | 23. sijeฤnja 1996 |
| JDK1.1 | 19th Feb 1997 |
| J2SE 1.2 | 8th Dec 1998 |
| J2SE 1.3 | XNUMIX svibnja 8 |
| J2SE 1.4 | 6th Feb 2002 |
| J2SE 5.0 | 30th Sep 2004 |
| Java SE 6 | 11th Dec 2006 |
| Java SE 7 | 28th Srpanj 2011 |
| Java JI 8 (LTS) | 18th Mar 2014 |
| Java SE 9 | 21st rujan 2017 |
| Java SE 10 | 20th Mar 2018 |
| Java JI 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 JI 17 (LTS) | 14th Sep 2021 |
| Java SE 18 | 22. oลพujka 2022 |
| Java SE 19 | 20th Sep 2022 |
| Java SE 20 | 21. oลพujka 2023 |
| Java JI 21 (LTS) | 19th Sep 2023 |
| Java SE 22 | 19th Mar 2024 |
| Java SE 23 | 17th Sep 2024 |
| Java SE 24 | 18th Mar 2025 |
| Java JI 25 (LTS) | 16th Sep 2025 |
Java Znaฤajke
Evo nekih od najvaลพnijih Java znaฤajke koje ga odrลพavaju relevantnim gotovo tri desetljeฤa:
- To je jedan od najlakลกih objektno orijentiranih programskih jezika za uฤenje.
- โNapiลกi jednom, pokreni bilo gdjeโ โ kod kompiliran na jednom raฤunalu izvodi se na gotovo svakoj raฤunalnoj platformi.
- Java neovisan je o platformi zahvaljujuฤi svom modelu izvrลกavanja bajtkoda.
- Dizajniran je od temelja za objektno orijentirane aplikacije.
- To je viลกenitni jezik s automatskim upravljanjem memorijom (skupljanjem smeฤa).
- Stvoren je za distribuirano okruลพenje interneta.
- Omoguฤuje distribuirano raฤunanje zbog svog mreลพno-centriฤnog dizajna.
Komponente Java Programski jezik
A Java Programer piลกe kod u jeziku koji je ฤitljiv ljudima, a koji se zove Izvorni kodCPU nikada ne razumije izvorni kod izravno - CPU-i izvrลกavaju samo strojni kod, a taj se strojni kod razlikuje meฤu obiteljima CPU-a. Kako bi se premostio taj jaz, Java Platforma prevodi izvorni kod u prenosivi meฤuoblik. Sve se to dogaฤa unutar tri kljuฤne komponente: JDK-a, JVM-a i JRE-a.
Java Razvojni komplet (JDK)
JDK je okruลพenje za razvoj softvera koje se koristi za izradu apleta i Java aplikacije. Puni oblik JDK je Java Komplet za razvoj. Java programeri ga mogu koristiti na Windows, macOS, Solarisi Linux. JDK im pomaลพe u kodiranju i pokretanju Java programa. Moguฤe je instalirati viลกe od jedne JDK verzije na isto raฤunalo.
Zaลกto koristiti JDK?
- JDK sadrลพi alate potrebne za pisanje Java programe i JRE za njihovo izvrลกavanje.
- Ukljuฤuje kompajler (
javac) Je Java pokretaฤ aplikacija, AppletViewer i sliฤni usluลพni programi. - Kompajler pretvara kod napisan u Java u bajtkod.
- The Java pokretaฤ aplikacija otvara JRE, uฤitava potrebnu klasu i izvrลกava svoju glavnu metodu.
Java Virtualni stroj (JVM)
The Java Virtualni stroj (JVM) je motor koji pruลพa okruลพenje za izvoฤenje za voลพnju Java kod ili aplikacije. Pretvara Java bajtkod u strojni jezik. JVM je dio Java Runtime Environment (JRE). U drugim programskim jezicima, kompajler proizvodi strojni kod za odreฤeni sustav. Meฤutim, Java kompajler stvara kod za virtualni stroj poznat kao Java Virtualni stroj.
Zaลกto JVM?
- JVM pruลพa naฤin izvoฤenja neovisan o platformi Java izvorni kod.
- Ima brojne biblioteke, alate i okvire dostupne odmah nakon instalacije.
- Nakon ลกto sastavite Java program, moลพete ga pokrenuti na bilo kojoj platformi, ลกto znaฤajno ลกtedi vrijeme.
- JVM dolazi s JIT (Just-In-Time) kompajlerom koji pretvara bajtkod u strojni jezik niske razine tijekom izvoฤenja, ฤesto ฤineฤi da se izvrลกava brลพe od interpretirane aplikacije.
Java Runtime Environment (JRE)
JRE je softver dizajniran za pokretanje drugog softvera. Sadrลพi biblioteke klasa, klasu za uฤitavanje i JVM. Jednostavno reฤeno, ako ลพelite pokrenuti samo Java program (a ne razvoj istog), potreban vam je JRE umjesto punog JDK-a.
Zaลกto koristiti JRE?
- JRE sadrลพi biblioteke klasa, JVM i ostale prateฤe datoteke. Ne ukljuฤuje alate za razvojne programere poput programa za ispravljanje pogreลกaka ili kompajlera.
- Koristi vaลพne klase paketa, ukljuฤujuฤi
math,swing,util,lang,awti biblioteke za vrijeme izvoฤenja. - Ako morate trฤati Java aplete ili aplikacije, JRE mora biti instaliran na vaลกem sustavu.
Razliฤite vrste Java Platforme
Postoje ฤetiri razliฤita Java platforme programskih jezika, svaka prilagoฤena razliฤitom cilju implementacije:
1. Java Platforma, standardno izdanje (Java JI): Java SE-ov API nudi Java Osnovna funkcionalnost programskog jezika. Definira sve, od osnovnih tipova i objekata do klasa visoke razine koje se koriste za umreลพavanje, sigurnost, pristup bazama podataka, razvoj grafiฤkog korisniฤkog suฤelja (GUI) i parsiranje XML-a.
2. Java Platforma, Enterprise izdanje (Jakarta EE, prije Java EE): Platforma Jakarta EE nudi API i okruลพenje za izvoฤenje za razvojping i pokretanje visoko skalabilnih, velikih, viลกeslojnih, pouzdanih i sigurnih mreลพnih aplikacija. Oracle prenio je platformu na Eclipse Foundation 2017. godine, koja ga je preimenovala u Jakarta EE.
3. Java Platforma, mikro izdanje (Java MI): The Java ME platforma nudi API i virtualni stroj malih dimenzija za pokretanje Java aplikacije na malim ureฤajima kao ลกto su obiฤni mobiteli i ugraฤeni kontroleri.
4. JavaFX: JavaFX je platforma za razvojping bogate internetske aplikacije koristeฤi lagani API korisniฤkog suฤelja. Koristi hardverski ubrzanu grafiku i medijske mehanizme koji pomaลพu Java iskoristite prednosti klijenata s viลกim performansama, modernog izgleda i dojma te visokorazinskih API-ja za povezivanje s mreลพnim izvorima podataka.
Da se razumijemo Java programskog jezika, moramo ponovno prouฤiti neke osnovne koncepte o tome kako raฤunalni program izvrลกava naredbe i radnje.
ล to je PC?
Raฤunalo je elektroniฤki ureฤaj sposoban za izvrลกavanje izraฤuna. Sastoji se od monitora, tipkovnice, miลกa i memorije za pohranu informacija. Najvaลพnija komponenta je, meฤutim, PROCESOR. Procesor obavlja sav misaoni proces raฤunala - ali kako on to zapravo ฤini? Kako razumije tekst, slike i videozapise?

ล to je Assembly Jezik?
Raฤunalo je elektroniฤki ureฤaj, pa razumije samo elektroniฤke signale - binarne signale. Elektroniฤki signal od 5 volti moลพe predstavljati binarni broj 1, dok 0 volti moลพe predstavljati binarni broj 0. Vaลกe raฤunalo je kontinuirano bombardirano tim signalima.
Osam bitova ovih signala grupira se zajedno kako bi se interpretirao tekst, brojevi i simboli.
Na primjer, raฤunalo identificira simbol # kao 10101010. Sliฤno tome, uzorak za funkciju "zbrajanja" predstavljen je s 10000011.
To se naziva 8-bitno raฤunanje. Moderni procesori mogu dekodirati 64-bitne instrukcije odjednom. Pa kakve veze ovaj koncept ima s... JavaPogledajmo jedan primjer.
Pretpostavimo da ลพelite reฤi raฤunalu da zbroji dva broja (1 + 2) predstavljena nekim binarnim brojevima (10000011). Kako to komunicirate svom raฤunalu? Koristite asemblerski jezik za izvrลกavanje koda.
"Assembly Jezik je najelementarniji oblik jezika za razvoj softvera.โ
Naredbe se izdaju u sljedeฤem formatu. Kod za zbrajanje dvaju brojeva u asemblerskom jeziku izgledao bi ovako:
- Pohrani broj 1 na memorijsku lokaciju A.
- Pohrani broj 2 na memorijsku lokaciju B.
- Dodajte sadrลพaj lokacija A i B.
- Spremite rezultat.
Pedesetih godina proลกlog stoljeฤa, kada su raฤunala bila ogromna i zahtjevna za energijom, asemblerski kod biste pretvorili u odgovarajuฤi strojni kod (jedinice i nule) koristeฤi map.ping listova. Kod je zatim urezan u kartice stroja i ubaฤen u raฤunalo. Raฤunalo je ฤitalo te kodove i izvrลกavalo program. To je bio dug proces - sve dok nije stigao ASSEMBLER kako bi automatizirao pretvorbu.
ล to su Asembler i Compiler?
S napretkom tehnologije, izumljeni su I/O ureฤaji. Program ste mogli upisati izravno u raฤunalo pomoฤu ASSEMBLERA, koji ga pretvara u odgovarajuฤi strojni kod (110001โฆ) i ลกalje ga procesoru. Vraฤajuฤi se na naลก primjer 1 + 2, asembler pretvara asemblerski kod u strojni kod kao izlaz.
Osim asemblera, morate pozivati โโi funkcije operacijskog sustava kako biste prikazali izlaz.
Sam asembler nije dovoljan; potreban mu je i KOMPILER za komprimiranje dugog izvornog koda u manje, optimizirane dijelove. S jezicima za razvoj softvera viลกe razine, cijeli gornji asemblerski isjeฤak smanjuje se na jedan redak, kao ลกto je printf(โ%dโ, 1+2)Kompajler pretvara vaลก C jezik kod u asemblerski kod; asembler ga zatim pretvara u strojni kod transmitvezano uz procesor. Najฤeลกฤi procesor koji se koristi u raฤunalima je Intelov procesor.
Moderni kompajleri ฤesto ukljuฤuju asembler kako bi mogli izravno pretvoriti kod viลกeg jezika u strojni kod.
Sada, pretpostavimo Windows radi na Intelovom procesoru โ kombinacija operativnog sustava i procesora naziva se PLATFORMA. Najฤeลกฤa platforma je Windows na Intelu, poznatoj i kao Wintel platforma. Druge popularne platforme ukljuฤuju AMD, Linux, PowerPC i macOS.
S promjenom procesora mijenjaju se i asemblerske upute. Na primjer:
- Naredba "dodavanje" na Intelu se moลพe nazvati ADDITION na AMD-u.
- Ili "Matematiฤki ZBROJ" na PowerPC-u.
A s promjenom operativnog sustava, mijenjaju se i razina i priroda poziva na razini operativnog sustava.
Kao programer, ลพelite da vaลก softver radi na svakoj platformi kako biste maksimalno poveฤali doseg. To znaฤi da biste morali kupiti zasebne kompajlere koji pretvaraju vaลกe printf naredbu u izvorni strojni kod za svaki cilj.
Kompajleri su skupi i uvijek postoji rizik od problema s kompatibilnoลกฤu izmeฤu operativnih sustava. Kupnja i instaliranje zasebnog kompajlera za svaku kombinaciju OS-a i procesora nije praktiฤno. Pa koja je alternativa? Unesite Java Jezik.
Kako Java Rad virtualnog stroja?
Upotrebom Java Virtualni stroj, ovaj se problem moลพe rijeลกiti. Ali kako funkcionira na razliฤitim procesorima i operativnim sustavima? Proฤimo kroz to korak po korak.
Korak 1) Kod za prikaz zbrajanja dvaju brojeva โ System.out.println(1+2) โ sprema se kao .java file.
Korak 2) Koriลกtenje Java kompajler (javac), kod se pretvara u meฤukod koji se naziva bajtIzlaz je .razred file.
Korak 3) Ovaj bajtkod ne razumije nijedna fiziฤka platforma, veฤ samo virtualna platforma koja se zove Java Virtualni stroj.
Korak 4) JVM se nalazi u RAM-u vaลกeg operativnog sustava. Kada JVM primi ovaj bajtkod, on identificira platformu na kojoj se izvodi i u hodu pretvara bajtkod u izvorni strojni kod.
Dok radite na raฤunalu ili pregledavate web, kad god vidite Javaikone povezane s -, moลพete biti sigurni da je JVM uฤitan u vaลกu RAM memoriju. ล to ฤini Java attracPrednost je u tome ลกto se kompajlirani kod moลพe izvoditi ne samo na svakoj PC platformi, veฤ i na mobitelima i drugim elektroniฤkim ureฤajima koji podrลพavaju Java.
"Java je programski jezik, ali i platforma.โ
Kako je Java Neovisan o platformi?
Za razliku od C kompajlera, Java kompajler ne proizvodi izvorni izvrลกni kod za odreฤeni stroj. Umjesto toga, Java stvara jedinstveni meฤuformat koji se naziva bajtBajtkod se izvrลกava prema pravilima navedenim u JVM specifikaciji, zbog ฤega Java je jezik neovisan o platformi.
Bajtkod je razumljiv bilo kojem JVM-u instaliranom na bilo kojem operativnom sustavu. Ukratko, Java Izvorni kod moลพe se izvoditi na svakom modernom operativnom sustavu bez ponovnog kompiliranja, ลกto je temelj Javaobeฤanje "napiลกi jednom, pokreni bilo gdje".








