You are on page 1of 72

UVOD U JAVA

PROGRAMIRANJE
ŠTA JE JAVA?
Java je programski jezik i platforma.
Java je robustan, siguran i objektno-orijentisan programski jezik
visokog nivoa.
PLATFORMA
Svako hardversko ili softversko okruženje u kojem se program radi
naziva se platforma. Pošto Java ima svoje sopstveno runtime
okruženje (JRE) i API, ona se naziva platformom.
JAVA PRIMJER

class Simple{ 
    public static void main(String args[]){ 
     System.out.println("Hello Java"); 
    } 
}

Ispis na ekranu:
Hello Java
GDJE SE KORISTI?
Prema kompaniji Sun, 3 milijarde uređaja koristi Javu. Postoji mnogo
uređaja gdje se Java trenutno koristi. Navešćemo neke od njih:

Desktop aplikacije kao što su acrobat reader, media player, antivirus itd.
Web aplikacije.
Enterprise aplikacije kao što su bankarske aplikacije.
Mobilni uređaji.
Ugrađeni (Embedded) sistemi.
Smart Card
Robotika
Igre itd.
TIPOVI JAVA APLIKACIJA

Postoje uglavnom 4 tipa aplikacija koje se mogu kreirati pomoću


Java programiranja:

Samostalne (Standalone) aplikacije


Web aplikacije
Enterprise aplikacije
Mobilne aplikacije
SAMOSTALNE
(STANDALONE)
APLIKACIJE
Poznate su takođe i kao desktop aplikacije ili window-based
aplikacije. To su aplikacije koje moramo instalirati na svakoj mašini
kao što su media player, antivirus itd. AWT i Swing se koriste u Javi
za kreiranje samostalnih aplikacija.
WEB APLIKACIJE
Aplikacija koja radi na serverskoj strani i kreira dinamičke stranice,
se naziva web aplikacija. Trenutno, servlet, jsp, struts, jsf itd.
tehnologije se koriste za kreiranje web aplikacija u Javi.
ENTERPRISE APLIKACIJE
To su aplikacije koje se distribuiraju u oblastima kao što je
bankarstvo i sl. One imaju prednost visokog nivoa sigurnosti, tzv.
load balancing-a (u računarstvu, load balancing poboljšava
distribuciju radnih sati preko višestrukih računarskih resursa, kao što
su računari, računarski klasteri, mrežni linkovi, centralne procesne
jedinice ili disk drajvovi. Optimizuje upotrebu resursa, minimizuje
vrijeme i smanjuje preopterećenje svakog pojedinog resursa), i
klasterovanja. U Javi, EJB se koristi za kreiranje enterprise
aplikacija.
MOBILNE APLIKACIJE
To su aplikacije koje su kreirane za mobilne uređaje. Trenutno,
Android i Java ME se koriste za kreiranje mobilnih aplikacija.
UVOD U JAVA Historijat Jave

PROGRAMIRANJE
HISTORIJAT JAVE

Historija Jave počinje sa Green Team-om. Članovi Java tima (takođe


poznati kao Green Team), inicirali su revolucionarni zadatak da
razviju jezik za digitalne uređaje kao što su set-top box-ovi, televizija
i sl. 
Za članove Green Team-a, to je za ono vrijeme bio napredan
koncept. Ali, bio je pogodan za internet programiranje. Kasnije, Java
tehnologiju je inkorporirao Netscape.
Glavne tačke koje opisuju historijat Jave: 
1) James Gosling, Mike Sheridan, i Patrick Naughton iniciraju
projekt Java jezika u junu 1991. Mali tim Sun-ovih inženjera nazvan
je Green Team.

2) Izvorno je dizajnirana za male, ugrađene (embedded) sisteme u


elektronskim uređajima kao što su set-top box-ovi.
3) Prvobitno, bila je nazvana "Greentalk" od Jamesa Goslinga, a
ekstenzija fajla je bila .gt.

4) Nakon toga, bila je nazvana Oak i bila je razvijena kao dio


projekta Green.
5) Zašto Oak? Hrast (engl. Oak) je simbol snage i nacionalni je
simbol u mnogim zemljama, između ostalih i SAD.

6) U 1995, Oak je preimenovan u "Java" jer je to već bio trademark


firme Oak Technologies.
7) Zašto su izabrali ime Java? Tim se sastao da izabere novo ime.
Sugerisane su bile riječi "dynamic", "revolutionary", "Silk", "jolt",
"DNA" itd. Željeli su nešto što će odražavati suštinu tehnologije:
revolucionarno, dinamično, živo, dopadljivo, jedinstveno, a lako za
izgovor.
Prema Jamesu Goslingu "Java je bilo na vrhu liste izbora zajedno
sa Silk". Pošto je Java bilo tako jedinstveno, većina članova tima se
odlučila za Java. 
8) Java je ostrvo u Indoneziji gdje je prvi put proizvedena kafa
(poznata java kafa).

9) Primijetimo da je Java ime, a ne akronim.

10) Izvorno razvijena od Jamesa Goslinga u Sun Microsystems-u


(koji je danas dio Oracle korporacije) i objavljena u 1995.
11) U 1995, časopis Time nazvao je Javu jednim od 10 najboljih
proizvoda u 1995. 

12) JDK 1.0 je izdat 23. januara 1996.


HISTORIJAT JAVA
VERZIJA
JDK Beta 1994
JDK 1.0 1996
JDK 1.1 1997
J2SE 1.2 1998
J2SE 1.3 2000
J2SE 1.4 2002
J2SE 5.0 2004
Java SE 6 2006
Java SE 7 2011
Java SE 8 2014
Java SE 9 2017
UVOD U JAVA Karakteristike Jave
PROGRAMIRANJE
KARAKTERISTIKE JAVE
Može se navesti mnogo karakteristika Jave. One su takođe poznate i kao “java buzzwords”.
Sljedeće karakteristike Jave su jednostavne i lake za razumijevanje:

Jednostavnost Prenosivost
Objektna orijentisanost Dinamičnost
Platformna nezavisnost Interpretiranost
Sigurnost Visoke performanse
Robustnost Višenitnost (Multithread)
Arhitekturna neutralnost Distribuiranost
JEDNOSTAVNOST
Prema kompaniji Sun, jezik Java je jednostavan zato što:
ima sintaksu koja je zasnovana na C++ (pa je za programere lakše
da ga nauče nakon C++).
je uklonio mnogo zbunjujućih i/ili rijetko korištenih karakteristika
napr. eksplicitne pointere, preopterećenje operatora itd.
nema potrebe za uklanjanjem nereferenciranih objekata jer sadrži
tzv. Automatsko sakupljanje smeća (Automatic Garbage Collection).
OBJEKTNA
ORIJENTISANOST
Objektna orijentisanost znači da se softver organizuje kao kombinacija
različitih tipova objekata koji uključuju i podatke i ponašanje.
Objektno-orijentisano programiranje (OOP) je metodologija koja
pojednostavljuje razvoj i održavanje softvera tako što obezbjeđuje određena
pravila.
Osnovni koncepti OOP su:
Objekt
Klasa
Nasljeđivanje
Polimorfizam
Apstrakcija
Enkapsulacija
PLATFORMNA
NEZAVISNOST
Platforma je hardversko ili softversko okruženje u kojem program
radi. Dakle, postoje dva tipa platformi: softverski zasnovane i
hardverski zasnovane.
Java obezbjeđuje softverski zasnovanu platformu.
Java platforma se razlikuje od većine drugih platformi u smislu da je
to softverski zasnovana platforma koja radi na drugim hardverski
zasnovanim platformama.
Ona ima dvije komponente:
Runtime okruženje
API (Application Programming Interface)
PLATFORMNA
NEZAVISNOST
Java kod se može pokrenuti na
različitim platformama napr.
Windows, Linux, Sun Solaris,
Mac/OS itd. Java kod se prvo
kompajlira, a onda konvertuje u
tzv. bytecode.
Ovaj bytecode je platformno
nezavisan kod i može se
pokrenuti na različitim
platformama.
Ovaj princip se naziva Write
Once Run Anywhere (WORA),
tj. napiši jednom pokreni svuda.
SIGURNOST
Java je sigurna zato što:
nema eksplicitnih pointera
programi se pokreću unutar tzv. “vreće s pijeskom u virtualnoj
mašini” (Virtual Machine Sandbox)
SIGURNOST
Classloader – poboljšava sigurnost razdvajajući paket za klase
lokalnog fajl sistema od onih koje su uvezene iz mrežnih izvora.
Bytecode Verifikator – provjerava fragmente koda na ilegalni kod
koji može narušiti pristupna prava objektima.
Security Manager – određuje kojim resursima klasa može pristupiti,
napr. čitanje i pisanje po lokalnom disku.

Ove sigurnosti obezbjeđuju jezik Java. Neke sigurnosti se takođe


mogu obezbijediti preko aplikacionog developera kroz SSL, JAAS,
kriptografiju 
ROBUSTNOST
Robustan jednostavno znači snažan. Java koristi snažno upravljanje
memorijom.
Odsustvom pointera izbjegavaju se sigurnosni problemi. U Javi
postoji automatsko sakupljanje otpadaka (garbage collection).
Takođe, u Javi postoje mehanizmi rukovanja izuzecima (exception
handling) i provjere tipa (type checking).
Sve ove stavke čine Javu robustnom.
ARHITEKTURNA NEUTRALNOST

Nema karakteristika zavisnih od implementacije napr. veličina


primitivnih tipova je utvrđena.
PRENOSIVOST
Moguće je prenijeti Java bytecode na bilo koju platformu.
VISOKE PERFORMANSE
Java je brža od tradicionalne interpretacije pošto je bytecode "blizak"
izvornom kodu, ali ipak je nešto sporija od kompajliranih jezika
(napr. C++).
DISTRIBUIRANOST
Moguće je kreirati distribuirane aplikacije u Javi. RMI i EJB se
koriste za kreiranje distribuiranih aplikacija.
Moguće je pristupati fajlovima pozivanjem metoda iz bilo koje
mašine na internetu.
VIŠENITNOST (MULTI-
THREADING)
Nit (thread) je poput zasebnog programa koji se izvršava
konkurentno.
Moguće je pisati Java programe koji rade na mnogim zadacima
odjednom tako što se definišu višestruke niti.
Glavna prednost višenitnosti (multi-threadinga) je da on dijeli istu
memoriju.
Niti su važne za multimediju, Web aplikacije itd.
UVOD U JAVA The Java Virtual Machine –

PROGRAMIRANJE JVM
THE JAVA VIRTUAL
MACHINE – JVM
Programi pisani u Javi se prevode u strojni jezik, ali u strojni jezik
računala koje zapravo ne postoji. Ovo takozvano prividno (virtual)
računalo se zove "Java Virtual Machine".
Strojni jezik za Java Virtual Machine se zove Java bytecode.
Jedna od glavnih prednosti Jave je da zapravo može biti korištena na
bilo kojem računaru.
Sve što je na tom računaru potrebno je interpreter za Java bajt kod.
Takav interpreter oponaša Java virtual machine na isti način kao što
prividno računalo oponaša osobno računalo.
Java interpreter je potreban za svaku vrstu računala, ali nakon što
računalo dobije Java bajt kod interpreter, može izvršavati bilo koji
Java bajt kod program.

A isti taj Java bajt kod program može biti izvršen na bilo kojem
računalu koje ima takav interpreter.

Ovo je jedna od glavnih osobina Jave: isti kompilirani program se


može izvršavati na više različitih vrsta računala.
UVOD U JAVA Poređenje C++ i Jave
PROGRAMIRANJE
POREĐENJE C++ I JAVE
Indeks poređenja C++ Java
Platformna nezavisnost C++ je platformno zavisan. Java je platformno nezavisna.
Uglavnom se koristi za C++ se uglavnom koristi za Java se uglavnom koristi za
sistemsko programiranje. aplikaciono programiranje.
Široko se koristi u window, web,
enterprise i mobilnim
aplikacijama.
Goto C++ podržava goto naredbu. Java ne podržava goto naredbu.
Višestruko nasljeđivanje C++ podržava višestruko Java ne podržava višestruko
nasljeđivanje. nasljeđivanje kroz klasu. To se
može postići preko interfejsa u
Javi.
Preopterećenje operatora C++ podržava preopterećenje Java ne podržava preopterećenje
operatora. operatora.
Pointeri (pokazivači) C++ podržava pointere. Moguće Java podržava pointer interno. Ali
je napisati pointer program u C+ nije moguće napisati pointer
+. program u Javi. To znači da Java
ima ograničenu podršku za
pointer.
Kompajler i Interpreter C++ koristi samo kompajler. Java koristi i kompajler i
interpreter.
Indeks poređenja C++ Java
Call by Value i Call C++ podržava i call Java podržava samo
by reference by value i call by call by value. Ne
reference. postoji call by
reference u Javi.
Strukture i Unije C++ podržava Java ne podržava
strukture i unije. strukture i unije.
Podrška za niti C++ nema ugrađenu Java ima ugrađenu
(Thread) podršku za niti. Zavisi podršku za niti.
od biblioteka treće
strane za podršku niti.
Dokumentacioni C++ ne podržava Java podržava
komentar dokumentacioni dokumentacioni
komentar. komentar (/** ... */)
za kreiranje
dokumentacije za
Java izvorni kod.
UVOD U JAVA Jednostavan program u Javi
PROGRAMIRANJE
JEDNOSTAVAN PROGRAM
U JAVI
class Simple{ 
    public static void main(String args[]){ 
       System.out.println("Hello Java"); 
    } 
}
 
Ispis na ekranu:
Hello Java
Pogledajmo šta znači
class,
public,
static,
void,
main,
String[],
System.out.println()
class ključna riječ se koristi za deklarisanje klase u Javi.

public ključna riječ je modifikator pristupa koja predstavlja


vidljivost, a znači vidljivo za sve.
static je ključna riječ, ako deklarišemo neki metod kao static,
zovemo ga statički metod. Suštinska prednost statičkog metoda je da
nema potrebe za kreiranjem objekta koji bi pozvao statički metod.
Main method izvršava JVM, tako da on ne zahtijeva kreiranje
objekta koji poziva main metod. Tako se štedi memorija.

void je tip koji vraća metod, znači da on ne vraća nikakvu vrijednost.


main predstavlja početak (startup) programa.
String[] args se koristi za argument komandne linije.
System.out.println() se koristi kao naredba za ispis. 
UVOD U JAVA Osnovni elementi Jave
PROGRAMIRANJE
JAVA IMENA
Imena su ključna za programiranje. U programima, imena se koriste
za pozivanje različitih stvari. Da bi mogao koristiti te stvari,
programer mora razumjeti pravila davanja imena i pravila korištenja
imena. Zapravo, programer mora znati sintaksu i semantiku imena.
Prema sintaksnim pravilima Jave, ime je niz od jednog ili više
karaktera. Mora počinjati slovom i mora biti u potpunosti sastavljeno
od slova, brojeva i donje crte "_". Nekoliko primjera ispravnih imena:

N
n
rate
x15
quite_a_long_name
HelloWorld
Velika i mala slova smatraju se različitima pa su:

HelloWorld
helloworld
HELLOWORLD i
HElloWorLD

sasvim različita imena.


Neka imena rezervirana su za posebne namjene u Javi i programer ih
ne može koristiti za druge namjene. Rezervirane riječi uključuju:

class
public
static
if
else
while
VARIJABLE
Programi upravljaju podacima spremljenim u memoriji. U
mašinskom jeziku podaci se mogu pozivati samo pozivom numeričke
adrese memorijske lokacije na kojoj je podatak spremljen. U Javi se
za poziv podataka koriste imena umjesto brojeva. Programer treba
zapamtiti samo ime, a računar vodi računa o tome gdje je stvarno
podatak smješten. Ovakvo ime koje služi za pozivanje podataka
spremljenih u memoriji se zove varijabla.
Jedini način na koji se u Javi može spremiti podatak u varijablu je
korištenjem naredbe pridjeljivanja vrijednosti (assignment statement)
u obliku:
varijabla = izraz;
gdje izraz predstavlja bilo što što se odnosi na neku vrijednost ili
računa neku vrijednost. Kad računar za vrijeme izvođenje naiđe na
naredbu pridjeljivanja, procjenjuje izraz i rezultat sprema u varijablu.
Varijabla se može koristit u programu samo ako je prethodno
deklarirana. Naredba deklariranja varijable (variable declaration
statement) se koristit da bi se varijabla deklarirala i pridijelilo joj se
ime. Kada računar izvršava naredbu deklaracije varijable, rezervira
dio memorije za tu varijablu i povezuje ime varijable s tim dijelom
memorije. Jednostavni oblik naredbe deklaracije je:

tip_varijable ime_varijable;

npr. int brojac;


Varijable u Javi su takve da spremaju samo jednu određenu vrstu
podataka i nijednu drugu. Svako kršenje ovog pravila kompiler će
smatrati sintaksnom greškom. Kaže se da je Java "strogo pisani"
jezik jer nameće ovo pravilo.
TIPOVI VARIJABLI
Postoje tri tipa varijabli u Javi

• lokalne varijable
• instansne varijable
• statičke varijable
Lokalne varijable
Varijabla koja je deklarisana unutar metoda se naziva lokalna
varijabla.
Instansna varijabla
Varijabla koja je deklarisana unutar klase ali izvan metoda se naziva
instansna varijabla. Nije deklarisana kao statička.
Statička varijabla
Varijabla koja je deklarisana kao statička se naziva statička varijabla.
Ona ne može biti lokalna.
PRIMJER ZA
RAZUMIJEVANJE TIPOVA
VARIJABLI

class A{ 
  int data=50; //instansna varijabla 
  static int m=100; //statička varijabla 
  void method(){ 
    int n=90; //lokalna varijabla 
  } 
} //kraj klase
TIPOVI PODATAKA U JAVI
U Javi, postoje dva tipa
podataka
•primitivni tipovi podataka
•neprimitivni tipovi podataka
PRIMITIVNI TIPOVI
 byte  •Prve četiri vrste spremaju cijele
brojeve, a razlikuju se po
   short  rasponu brojeva koje mogu
   int  spremiti.

   long  • Float i double spremaju realne


brojeve i razlikuju se po rasponu
   float  i preciznosti.
   double  • Char sprema jedan znak iz
Unicode skupa.
   char 
•Boolean jednu od dvije logičke
   boolean vrijednosti (true ili false).
SLOŽENI TIP PODATAKA
String je složeni tip podataka. Stringovima se smatraju svi nizovi
obuhvaćeni dvostrukim navodnicima.
OPERATORI U JAVI
Četiri osnovne skupine operatora su:
 aritmetički
 operatori na bitovima
 relacijski
 logički
PRIORITETI OPERATORA
Ukoliko se koristi više operatora u jednom izrazu, a bez zagrada koje
bi odredile redoslijed procjenjivanja, potrebno je voditi računa o
prioritetima operatora koji određuju redoslijed procjenjivanja.
KOMENTARI
Kako bismo se u vlastitom kodu uspješno snalazili i nakon nekog
vremena, odnosno kako bismo olakšali razumijevanje koda svima
onima koji će ga kasnije čitati, koristimo komentare.Opsta namjena
komentara je da se unutar njih stavljaju objašnjenja koda ili neke
napomene za izmjene programa.Želimo li u komentar staviti samo
jednu liniju koda, na početku te linije ćemo staviti
//
.
//komentar
 Više linija koda ćemo staviti u komentar tako da na početku prve
linije koda stavimo
/*
, te izaposljednjeg znaka stavimo
*/

You might also like