You are on page 1of 10

Ispitna pitanja za predmet KI103

1. Objasnite razliku između JDK i JRE.

JDK - Java development kit predstavlja skup programskih alata za razvoj Java aplikacija. Sadrži alat
za programiranje i Java Runtime Environment JRE koji pokreće i izvršava java programe.
JRE sadrži Java virtualnu mašinu JVM i biblioteke i druge komponente koje omogućuju izvršavanje
Java programa.

2. Šta predstavlja Javina virtuelna mašina?


Java koristi kombinovani model izvršavanja. Izvorni kod se prevodi na takozvani bajtkod, a onda tako
dobiveni kod se interpretira na virtuelnoj mašini.
Java Virtual Machine (JVM) uzima bajtkod koji se prethodno prevodi iz koda, i onda taj bajtkod
interpretira na virtuelnoj mašini. On omogućava da jednom napisan kod u Javi može raditi na bilo
kojoj mašini i OS.Za svaki tip računara (procesora), pravi se odgovarajuća mašina.

3. Šta su identifikatori u Javi? Objasnite pravila pisanja identifikatora za metode, objekta, klase,
promenljive i konstante.
Identifikatori su imena koja identifikuju elemente kao što su klase, metode i promenljive u
programu.
Pravila
– Identifikator je sekvencijalni niz znakova koje čini slova, brojevi, donje crte (_) i znaci dolara
($).
– Identifikator mora da počne sa slovom, donjom crtom ili znakom dolara ($). Ne sme početi
brojem.
– Identifikator ne sme biti neka od rezervisanih reči (u Javi).
– Identifikator ne može biti reč true, false ili null.
– Dužina identifikatora nije ograničena.
Dodatna konvencija koje se pridržavaju Java programeri radi bolje čitljiivosti programa je:
• Imena klasa počinju velikim slovom
• Imena promenljivih i metoda počinju malim slovom
• Imena konstanti se sastoje od svih velikih slova
4. Šta su primitivni, a šta klasni tipovi podataka? Navedite najčešće korišćene primitivne tipove
podataka.
Tip podataka definiše veličinu i organizaciju podatka, opseg mogućih vrednosti i skup operacija koje
se mogu obaviti nad tim vrednostima.
Primitivni (prosti) tipovi podataka su predstavljaju tipovi podataka koji su unapred "ugrađeni" u jezik
i postoje kod svih programskih jezika. Ne mogu da se rastave na manje elemente koji bi mogli
nezavisno da se obrađuju, zato se kaže da oni nemaju strukturu. To su brojevi, znakovi i logičke
vrednosti.
Najčešće korišćeni primitivni tipovi podataka su: int, double, char, boolean.
Svi tipovi podataka koji nisu primitivni tipovi, su klasni tipovi podataka, jer se defnišu određenom
klasom. Podaci klasnih (složenih) tipova sastoje se od nekoliko elemenata koji mogu da se obrađuju
nezavisno. Elementi objekata, tj. klasnih tipova, mogu da budu prosti, ali i sami mogu da budu
složeni. U jeziku Java, klasni podaci su nizovi i klase.

5. Objasnite razlike između promenljive i konstante u Java programu.


Promenljiva je tip podataka koji se može menjati više puta tokom izvršavanja programa.
Deklaracijom se navodi njen tip i ime: datatype variableName;
Konstante su podaci koji ne mogu promeniti vrednost tokom izvršavanja programa. Deklarišu se
tako što prvo stoji reč final a zatim dolaze njen tip i ime. Njihova imena se sastoje samo od velikih
slova. final datatype CONSTANTNAME = value;

6. Koje tipove komentara u Javi poznajete? Koja je namena komentara u programima?


Jednolinijske komentare, pišu se nakon „//“ i kompajler prilikom prevođenja zanemaruje celu liniju
koda nakon ovih karaktera.
Viselinijske komentare koji se pišu izmedju „/*“ i „*/“ , ovi komentari mogu biti napisani i u više
linija, i takodje ih kompajler zanemaruje prilikom prevođenja.
I treca vrsta komentara su javadoc komentari oni se pišu između „/**“ i „*/“, dobijaju se u jednoj
HTML datoteci upotrebom javadoc naredbe definisane u JDK.
Namena komentara je da kod čine čitljivijim, da objasne šta program radi, da uputi na njegova glavna
svojstva i funkcije, da objasne ono što je u samom kodu teško čitljivo isl.
7. Kako se dele operatori u Javi? Navedite primere operatora.
Operatori predstavljaju operacije koje se izvršavaju nad operandima pri čemu daju određeni
rezultat. Dele se (u zavisnosti da li se primenjuju na jedan, dva ili tri operanda) na unarne, binarne i
ternarne operatore.
Unarni operatori: --i, j++
- Unarni operatori mogu biti prefiksni i postfiksni u zavisnosti da li stoje ispred ili iza operanda.
Binarni operatori: 5+3
– Binarni operatori se uvek nalaze između dva operanda (+, -, *, /, %).
Ternarni operator: a % 2 == 0 ? “paran“ : “neparan“;
- Jedini ternarni operator (?:) u Javi (radi sa tri operanda). „ ?“ se stavlja izmedju prvog i drugog
operanda a „:“ izmedju drugog i treceg operanda. Rezultat izračunjavanja moze biti: promenljiva,
vrednost ili nista (void).

8. Objasnite naredbe grananja: if, if – else, if – else if - …- else .


Naredbe granjanja obezbeđuju alternativne puteve toka izvršavanja programa zavisno od vrednosti
nekog izraza. One omogućavaju da se izabere jedan niz naredbi za izvršavanje a da se drugi niz
naredbi (ili vise njih) potpuno preskoči i nikad ne izvrši.
if - ukoliko je uslov ispunjen (true) izvršiće se naredba ili blok naredbi iza if-a, a ukoliko uslov nije
ispunjen (false) program će preći na prvu narednu naredbu u programu.
If – else - ukoliko je uslov ispunjen (true) izvršiće se naredba ili blok naredbi iza if, a ukoliko uslov
nije ispunjen (false) izvršicć se naredba ili blok naredbi iza else naredbe.
if – else if - … - else - ukoliko je uslov ispunjen (true) izvršiće se naredba ili blok naredbi iza if, a
ukoliko uslov nije ispunjen (false) onda će se ispitivati uslov iz else if naredbe i ukoliko je uslov
ispunjen (true) izvršiće se naredba ili blok naredbi iza else if, a ukoliko uslov nije ispunjen (false)
izvršiće se naredba ili blok naredbi iza else naredbe.

9. Objasnite naredbu grananja: switch.


Switch naredba se koristi za uslovno izvršavanje izraza na bazi vrednosti celobrojnog izraza.
Prvo se izračunava vrednost izraza koji moze biti celobrojnog tipa, znakovnog tipa ili string. U
zavisnosti od dobijene vrednosti izraza izvršava se niz naredbi koji je pridružen nekom od case delova
swith naredbe. Pored case delova switch naredba može da sadrži i jedan default deo (kao poslednji
slucaj) koji ce se izvršiti ukoliko se vrednost izraza ne podudara ni sa jednim literalom case delova.
Ukoliko default deo nije naveden i izračunata vrednost izraza nije jednaka nijednom literalu u case
delovima, ništa se dodatno ne izvršava i izvršavanje switch naredbe se odmah završava.
Na kraju svakog case dela se obično, ali ne uvek, navodi break naredba. Efekat break naredbe je da
se prekine izvršavanje odgovarajućeg case dela, a samim tim i cele switch naredbe. Ako se na kraju
case dela koji se izvršava ne nalazi break naredba, prelazi se na izvršavanje narednog case dela
unutar switch naredbe. Ovaj postupak se nastavlja sve dok se ne naiđe na break naredbu ili se ne
dođe do kraja switch naredbe.
10. Objasnite upotrebu i razliku između naredbi iteracije: while i do – while.
Naredbe ponavljanja while obezbeđuju izvršavanje neke (blok) naredbe više puta, sve dok je uslov
zadovoljen, tj. true. Broj ponavljanja te naredbe kod naredbi ponavljanja se kontroliše vrednošću
jednog logičkog izraza. To znači da se naredba ponavlja sve dok je vrednost tog logičkog izraza
jednaka true, a da se ponavljanje prekida u trenutku kada vrednost tog logičkog izraza postane false.
Ponovljeno izvršavanje iste naredbe se može, u principu, izvoditi beskonačno, ali takva beskonačna
petlja obično predstavlja grešku u programu.
Razlika izmedju while i do while naredbe ogleda se u tome da se kod while naredbe prvo ispituje
uslov i ako je vrednost uslova true izvrsava se naredba ili blok naredbi a ukoliko je vrednost uslova
false zavrsava se sa while naredbom i prelazi se na prvu narednu naredbu u programu., dok se kod
do while naredbe uvek prvo jednom izvrsi blok naredbi pa se onda ispituje uslov.

11. Objasnite upotrebu i razliku između naredbi iteracije: while i for.


Blok naredbi iz petlje while se ponavlja sve dok je uslov zadovoljen, odnosno true, dok se kod petlje
for blok naredbi izvršava za sve vrednosti nekog intervala. To je ujedno i razlika izmedju ove dve
petlje.

12. Objasnite ulogu naredbi break i continue.


Naredba break prekida izvršavanje petlje i šalje izvršenje na prvu liniju nakon petlje.
Naredba continue prekida iteraciju i šalje izvršenje na prvu liniju u petlji, odnosno na uslov petlje.

13. Objasnite kako se koriste ugnježdene petlje.


Ukoliko jedna petlja nije dovoljna za rešavanje nekog problema, mozemo koristiti ugnježdavanje
petlji. Unutar tela jedne petlje može da postoji druga, unutar tela druge treća itd. Pravilo izvršavanja
ugnježdenih petlji je da se uvek izvršavaju prvo krajnja unutrašnja petlja, pa onda sledeća u kojoj se
ona nalazi itd. Tip petlje kod ugnježdavanja nije bitan.
14. Navedite najčešće korišćene aritmetičke operatore. Opišite operatore inkrementiranja i
dekrementiranja.
Aritmetički operatori su simboli koji označavaju potrebu da se izvrši neka aritmetička operacija.
Operandi su vrednosti na kojima se operator primenjuje.
- Operator mnozenja – ( * )
- Operator deljenja – ( / ) Deljenje može biti celobrojno ili deljenje realnih brojeva ako je bar jedan
operant realan broj
- Operator deljenja po modulu – ( % ) Prikazuje ostatak celobrojnog deljenja
- Operator sabiranja – ( + )
- Operator oduzimanja – ( - )
- Operator inkrementiranja povecava vrednost promenljive na koju se primenjuje za 1. Postoji
prefiks i postfiks verzija, razlika je ta što kod prefiks verzije operator prvo dodaje vrednost a onda
vrši neku naredbu ili blok naredbi, a kod postfiks verzije prvo izvrši neku naredbu ili blok naredbi, pa
onda povećava vrednost. Ako se koristi samostalno onda nije bitno koji se koristi.
- Operator dekremtiranja smanjuje vrednost promenljive na kojoj se primenjuje za 1. Kao i kod
operatora inkrementiranja, i kod operatora dekrementiranja postoje prefiks i postfiks vezija. Kod
prefiks verzije se vrednost promenljive prvo smanjuje za 1, a onda izvršava naredba ili blok naredbi,
a kod postfiks verzije se prvo izvrši naredba ili blok naredbi pa tek onda smanji vrednost promenljive
za 1.

15. Objasnite ulogu klase Math i pokažite nekoliko njenih metoda u primeni.
Klasa Math je deo Javine biblioteke koja sadrži veliki broj metoda za izračunavanje različitih
matematičkih funkcija. Metodi su tipa static.
- Math.pow(x, n) – x na n-ti stepen
- Math.sqrt(x) – kvadratni koren od x
- Math.max(x, y) – vraća veći broj između x i y
- Math.min(x, y) – vraća manji broj između x i y
- Math.random(x) – generiše slučajan broj 0.0 <= x < 1
Pojedini metodi klase Math su poliformni jer mogu dati različiti rezultat u zavisnosti od tipa unetih
parametara.
16. U čemu je razlika između char i String tipa podataka u Javi?
Char je znakovni tip koji služi za predstavljanje pojedinačnih znakova u Javi. Tip podataka char
obuhvata: mala i velika slova, cifre, znakove interpunkcije i kontrolne znake.
Char spada u celobrojne tipove podataka – svaki znak ima odgovarajuću brojčanu vrednost. Može
da sadrži samo jedan znak.
Znakovni literali se u programu uokviruju jednim apostrofom (’ ’).
Klasa String je predifinisana klasa u Java biblioteci koja omogućava formiranje teksta koji čini skup
znakovnih tipova, tj. char.
Dakle, string nije primitivni tip podatka kao char, već referentni tip. Stringovi se uokviruju
dvostrukim apostrofom (“ “).
Dva znaka tipa char se upoređuju pomoću relacionih operatore kao što se upoređuju dva broja, tj
upoređuju se dva unicode broja.
Za upređivanje dva niza sa znakovima ne možemo koristiti operator == jer on daje samo informaciju
da li su dva niza, kao objekti, na istoj adresi. Da bi se utvrdilo da li dva niza imaju isti sadržaj, treba
koristiti metod equals().

17. Pokažite primenu najčešće korišćenih metoda za rad sa stringovima.

String poruka = "Proba metoda stringa";


System.out.println(poruka); Proba metoda stringa
String poruka1 = poruka.toLowerCase();
System.out.println(poruka1); proba metoda stringa
String poruka2 = poruka.toUpperCase();
System.out.println(poruka2); PROBA METODA STRINGA
String poruka3 = poruka.concat(poruka2);
System.out.println(poruka3); Proba metoda stringaPROBA METODA STRINGA
String poruka4 = poruka.substring(0, 5);
System.out.println(poruka4); Proba
18. Šta su metode i kako se definišu?
Potprogrami su sveprisutni u programskim jezicima, ali se javljaju pod različitim imenima. U Javi, oni
se nazivaju metod.
Metod je niz naredbi i promenjivih koje predstavljaju neku funkcionalnu celinu sa svojim posebnim
imenom.
Glavna svrha metoda jeste da se složeni program podeli u manje delove koji se mogu lakše i
nezavisno razvijati. Pored toga, ovakva podela omogućava da se naredbe koje se pišu u metodu pišu
samo jednom, a mogu se pozvati neograničen broj puta.
Zaglavlje metoda sadrži: ime metoda, tip i imena parametara metoda, tip povratne vrednosti i razne
modifikatore koji dodatno određuju karakteristike metoda.
Opšti oblik definisanja metoda u Javi je:
modifikatori tipRezultata imeMetoda(listaParametara) {
naredba1;
...
naredbaN;
}
19. Po čemu je sve moguće razlikovati metode?
Najpre, metode možemo razlikovati po definisanom pravu pristupa metodi, a što je definisano
modifikatorom u zaglavlju metoda. Tako razlikujemo:
1. private: metod može da bude aktiviran samo od objekta ove klase;
2. protected: metod može da bude aktiviran iz programa istog paketa i objekta ove klase i njenih
podklasa;
3. public: metod može biti aktiviran bilo kojim Java programom;
4. default: isto kao "protected" + program istog paketa.
Pored toga, razlikujemo statičke i objektne metode, što se takođe imenuje u zaglavlju metoda.
Statičke metode ne mogu da direktno priđu atributima objekta ili metodima objekata neke klase,
niti smeju da pristupaju nijednom članu klase, sem statičkim podacijma. Statički metodi su servisi
koje obezbeđuje klasa. Oni nemaju nikakav efekat na objekte te klase. Statički metodi se koriste za
funkcije koje ne zahtevaju pristup određenom objektu.
Metod objekta je deo objekta, i on određuje ponašanje jednog objekta. Metod objekta ne pripada
celoj klasi u kojoj je definisan, te se poziva obavezno uz navođenje imena metoda kome pripada i na
koji ima efekta.
Metodi objekta:
• definišu ponašanje objekta;
• pristupaju atributima objekta;
• mogu da pozivaju statičke metode
Metodi se mogu razlikovati i po listi parametara.
20. Da li metoda tipa void vraća rezultat nakon poziva?
Ne. Ukoliko je kao tip rezultata u zaglavlju metoda označena rezervisana reč void, to znači da metod
ne vraća nijednu vrednost.

21. Šta je preopterećenje metoda?


Preopterećenje (overloading) metoda je ako klasa ima više metoda istog imena ali različitih
parametara.
• Preopterećenje metoda poboljšava čitljivost programa.
• Postoje dva načina preopterećenja metoda u Javi
1.Promjena broja argumenata
2.Promjena tipa podataka
• U Javi, preopterećenje metoda nije moguće promenom return tipa metode (tipa koji metoda
vraća).

22. Objasnite vraćanje rezultata nakon poziva metode.


Pozivanjem metode, u tački programa gde je potreban rezultat metoda, redom se izvršavaju sve
naredbe u telu metoda uz prethodni prenos argumenata dok se ne naiđe na naredbu return.
Metod može vraćati jednu vrednost, a ako ne vraća ništa onda se koristi ključna reč void u zaglavlju
metoda umesto povratnog tipa podatka.

23. Šta je jednodimenzionalni niz?


Jednodimenzionalni niz je lista srodnih promenljvih.
Za deklarisanje jednodimenzionalnog niza koristi se opšti oblik:
tip imeNiza[ ] = new tip[veličina];
Tip deklariše osnovni tip niza kojim se određuje tip podatka svakog elementa niza. Broj elemenata
niza određuje se veličinom.
Pošto se nizovi implementiraju kao objekti, kreiranje niza sastoji se iz dva koraka:
Prvi, deklariše se niz kao referencna promenljiva.
Drugi, alocira se memorija za niz, dodeljuje se referenca niza na tu memoriju. Svi nizovi u Javi se
dinamički alociraju korišćenjem operatora new.
Pošto se niz jednom napravi, njegova veličina, odnosno max broj elemenata koji može da primi, više
se ne može menjati.
24. Objasnite proceduru učitavanja i obrade jednodimezionalnog niza?

Niz se učitava sa tastaure korišćenjem petlje for:

25. Koje vrednosti dobijaju članovi niza kojima nije eksplicitno dodeljena vrednost?
Pošto elementi niza predstavljaju u suštini atribute objekta niza, ti elementi se u trenutku
konstruisanja niza inicijalizuju podrazumevanim vrednostima
- za bazni tip niza – 0
- za numerički tip, false za logički tip
- '\u0000' za znakovni tip
- null za klasni tip.

26. Šta je matrica, kako se učitava i obrađuje?


Matricu u Javi predstavljaju dvodimenzionalni nizovi.
Elemente matrice predstavljaju promenljive koje imaju dvostruke indekse a[i][j]
Prvi indeks predstavlja vrstu a drugi kolonu u kojoj se element nalazi u matrici
Dvodimenzionalni niz se deklariše na sledeći način: int[][] mojNiz;
27. Pokažite kako klasa Arrays može biti od pomoći prilikom rada sa nizovima.

Klasa Arrays iz paketa java.util može biti jako korisna u radu sa nizovima. Ona sadrži nekoliko
statičkih metoda koji obezbeđuju korisne operacije nad nizovima čiji je bazni tip jedan od primitivnih
tipova.
Sledi nepotpun spisak i opis ovih statičkih metoda:
String toString(tip[] a) - vraća reprezentaciju niza a u formi stringa. Pri tom se svi elementi niza a
nalaze unutar uglastih zagrada po redu njihovih pozicija u nizu i međusobno su razdvojeni zarezima.
tip[] copyOf (tip[] a, int d) - vraća novu kopiju niza a dužine d. Ako je dužina d veća od a.length, višak
elemenata kopije niza se inicijalizuje nulom ili vrednošću false. U suprotnom slučaju, kopira se samo
početnih d elemenata niza a.
tip[] copyOfRange (tip[] a, int od, int do) - kopira niz a od indeksa od do indeksa do u novi niz.
Element sa indeksom od niza a se uključuje, dok se onaj sa indeksom do ne uključuje u novi niz. Ako
je indeks do veći od a.length, višak elemenata kopije niza se inicijalizuje nulom ili vrednošću false.
void sort (tip[] a) - sortira niz a u mestu u rastućem redosledu.
int binarySearch (tip[] a, tip v) - koristi binarnu pretragu za nalaženje vrednosti v u sortiranom nizu
a. Ako je data vrednost v nađena u nizu, vraća se indeks odgovarajućeg elementa. U suprotnom
slučaju, vraća se negativna vrednost k tako da -k-1 odgovara poziciji gde bi data vrednost trebalo da
se nalazi u sortiranom nizu.
void fill(tip[] a, tip v) - dodeljuje svim elementima niza a istu vrednost v.
boolean equals(tip[] a, tip[] b) - vraća vrednost true ukoliko nizovi a i b imaju istu dužinu i jednake
odgovarajuće elemente. U suprotnom slučaju, vraća vrednost false.
boolean equals(tip[] a, tip[] b) - vraća vrednost true ukoliko nizovi a i b imaju istu dužinu
i jednake odgovarajuće elemente. U suprotnom slučaju, vraća vrednost false.

Osnovne operacije sa stringovima u Javi:


(dopuna za 17)

length() - vraća broj znakova u stringu - dužinu stringa


charAt(index) - vraća oznaku na datoj lokaciji u stringu
concat() - spaja dva stringa
toUpperCase() - sva slova prebacuje u velika
toLowerCase() - sva slova prebacuje u mala
trim() - uklanja prazna mesta na krajevima stringa
substring() - vraća podniz
parseInt() - konverzija niza u int
equals() - vršimo uporedjivanje dva niza tako što proveravamo da li imaju iste sadržaje
compereTo() - vršimo uporedjivanje dva niza tako što proveravamo da li je neki od njih veći ili
manji od ovog drugog

You might also like