Razumijevanje Java kompajlera i Java virtuelne mašine - dio 4


Do sada smo prošli kroz rad i strukturu koda Jave i klase, glavne metode i kontrole petlje u Javi. Ovdje u ovom postu ćemo vidjeti šta je Java kompajler i Java virtuelna mašina. Za šta su oni namijenjeni i njihove uloge.

Šta je Java Compiler

Java je jezik jakog tipa što znači da varijabla mora sadržavati pravu vrstu podataka. U jeziku sa jakom tipizacijom varijabla ne može sadržavati pogrešan tip podataka. Ovo je sigurnosna karakteristika vrlo dobro implementirana u Java programskom jeziku.

Java kompajler je odgovoran za proveru varijabli za bilo kakvo kršenje u čuvanju tipa podataka. Nekoliko izuzetaka može nastati u vremenu izvođenja koje je obavezno za dinamičku vezu Jave. Kako se Java program pokreće, on može uključivati nove objekte koji ranije nisu postojali, stoga da bi imao određeni stepen fleksibilnosti, dozvoljeno je nekoliko izuzetaka u tipu podataka koji varijabla može zadržati.

Java Compiler je postavio filter za one dijelove koda koji se nikada neće kompajlirati osim za komentare. Kompajler ne analizira komentare i ostavlja ga kako jeste. Java kod podržava tri vrste komentara unutar Programa.


1. /* COMMENT HERE */
2. /** DOCUMENTATION COMMENT HERE */
3. // COMMENT HERE

Sve što se nalazi između /* i */ ili /** i */ ili nakon // Java kompajler ignoriše.

Java Compiler je odgovoran za strogu provjeru bilo kakvog kršenja sintakse. Java Compiler je dizajniran da bude kompajler bajtkoda, tj. kreira datoteku klase od stvarne programske datoteke napisane isključivo u bajtkodu.

Java Compiler je prva faza sigurnosti. To je prva linija odbrane na kojoj se provjerava provjera netačnog tipa podataka u varijabli. Pogrešan tip podataka može uzrokovati oštećenje programa i izvan njega. Također kompajler provjerava da li neki dio koda pokušava dozvati ograničeni dio koda poput privatne klase. Ograničava neovlašteni pristup kodu/klasi/kritičnim podacima.

Java kompajler proizvodi bajtkodove/datoteke klase koji su platformski i arhitektonski neutralni koji zahtijevaju JVM za pokretanje i bukvalno će raditi na bilo kojem uređaju/platformi/arhitekturi.

Šta je Java virtuelna mašina (JVM)

Java virtuelna mašina je sljedeća linija sigurnosti koja postavlja dodatni sloj između Java aplikacije i OS-a. Također provjerava datoteku klase koja je sigurnosno provjerena i kompajlirana od strane Java Compiler-a, ako je neko mijenjao fajl klase/bajt-kod kako bi ograničio pristup neovlaštenim kritičnim podacima.

Java virtuelna mašina tumači bajt kod učitavanjem datoteke klase u mašinski jezik.

JVM je odgovoran za funkcije kao što su učitavanje i skladištenje, aritmetičko izračunavanje, konverzija tipa, kreiranje objekata, rukovanje objektom, prijenos kontrole, izbacivanje izuzetaka itd.

Radni model Jave u kojem Java kompajler kompajlira kod u calssfile/bytecodes, a zatim Java Virtual Machine pokreće classfile/bytecode. Ovaj model osigurava da kod radi velikom brzinom, a dodatni sloj osigurava sigurnost.

Dakle, šta mislite – Java kompajler ili Java virtuelna mašina obavljaju važniji zadatak? Java program u suštini mora da prolazi i kroz površinu (kompajler i JVM).

Ovaj post sumira ulogu Java kompajlera i JVM-a. Svi vaši prijedlozi su dobrodošli u komentarima ispod. Radimo na sljedećem postu “objektno orijentirani pristup Jave”. Do tada ostanite sa nama i povezani na TecMint. Lajkujte i podijelite nas i pomozite nam da se širimo.