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.

  • โ˜• Osnovna definicija: Java je programski jezik opฤ‡e namjene, objektno orijentiran, temeljen na klasama i platforma za izvoฤ‘enje, projektirana za prenosivost i pouzdanost.
  • ๐Ÿงฉ Tri komponente: The Java Platforma se sastoji od JDK-a za razvoj, JVM-a za izvrลกavanje i JRE-a za podrลกku pri izvoฤ‘enju.
  • ๐Ÿ“œ Najvaลพniji dijelovi povijesti: Izvorno nazvan OAK 1991., preimenovan Java 1995. godine, a stekla ga je Oracle od tvrtke Sun Microsystems 2009. godine.
  • ๐ŸŒ ฤŒetiri izdanja: Java JI, Java EE (sada Jakarta EE), Java JA i JavaFX cilja na stolna raฤunala, poslovne sustave, ugraฤ‘ene ureฤ‘aje i bogate klijente.
  • ๐Ÿ” Neovisnost o platformi: Java Izvorni kod se kompajlira u bajtkod koji se izvrลกava na bilo kojem JVM-u, omoguฤ‡ujuฤ‡i istinsku prenosivost izmeฤ‘u operativnih sustava, s moguฤ‡noลกฤ‡u jednokratnog pisanja i izvrลกavanja bilo gdje.

Uvod u Java - Kako Java Virtualni stroj radi

ล 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 raฤunalo - osnovne komponente
ล to je PC?

ล 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.

Binarni signali obraฤ‘eni raฤunalom

Osam bitova ovih signala grupira se zajedno kako bi se interpretirao tekst, brojevi i simboli.

Osam-bitna grupaping za tekst i simbole

Na primjer, raฤunalo identificira simbol # kao 10101010. Sliฤno tome, uzorak za funkciju "zbrajanja" predstavljen je s 10000011.

Binarni prikaz raฤunalnih instrukcija

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:

Assembly primjer zbrajanja dvaju brojeva u jeziku

  • 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.

Asembler pretvara asemblerski kod u strojni kod

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.

Cjevovod kompajlera i asemblera

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 za viลกe platformi

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.

Kako Java Virtualni stroj radi 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".

Pitanja i odgovori

JDK je razvojni komplet koji sadrลพi kompajler i alate. JRE je okruลพenje za izvoฤ‘enje koje ukljuฤuje JVM i biblioteke klasa potrebne za izvrลกavanje. Java programa. JVM je mehanizam unutar JRE-a koji pretvara bajtkod u izvorni strojni kod tijekom izvoฤ‘enja.

Da. Java ostaje vrlo relevantan za poslovne sustave, Android aplikacije, financijske platforme, veliki podaci i mikroservisi. Moderna izdanja kao ลกto su Java 21 i Java 25 LTS dodaje zapise, virtualne niti, usklaฤ‘ivanje uzoraka i poboljลกane performanse kako bi se odrลพalo Java konkurentni.

Poฤetnici bi trebali instalirati izdanje s dugoroฤnom podrลกkom (LTS). Java SE 25, objavljena u rujnu 2025., najnovija je LTS verzija s Java 21 i Java 17 se joลก uvijek ลกiroko koristi. LTS verzije dobivaju proลกirene sigurnosne zakrpe i stabilnu podrลกku od dobavljaฤa.

Umjetna inteligencija se koristi s Java za strojno uฤenje u poduzeฤ‡ima, otkrivanje prijevara, mehanizme za preporuke i chatbotove. Biblioteke poput DJL-a, Deeplearning4j-a i Tribuo-a donose duboko uฤenje u JVM, dok AI asistenti za kodiranje ubrzavaju Java refaktoriranje i generiranje jediniฤnih testova.

Da. Asistenti za AI kodiranje objaลกnjavaju Java sintaksu, generiranje vjeลพbi, otklanjanje pogreลกaka i pregled koda u stvarnom vremenu. Poฤetnici imaju koristi od interaktivnih povratnih informacija koje istiฤu najbolje prakse objektno orijentiranog programiranja, ponaลกanje JVM-a i uobiฤajene pogreลกke koje se rijetko pojavljuju u tradicionalnim udลพbenicima.

Saลพmite ovu objavu uz: