乐东黎族自治县滨海大道工程(龙沐湾核心区至望楼...
Java je objektno orijentirani programski jezik koji su razvili James Gosling, Patrick Naughton i drugi in?enjeri u tvrtci Sun Microsystems. Razvoj je po?eo 1991. kao dio projekta Green, a objavljen je u studenom 1995.
Tvrtka Sun posjeduje trademark na ime Java, ali samo okru?enje mogu?e je bez pla?anja skinuti sa Sunovih internetskih poslu?itelja.[to?no?]
Velika prednost u odnosu na ve?inu dotada?njih programskih jezika je to ?to se programi pisani u Javi mogu izvoditi bez preinaka na svim operativnim sustavima za koje postoji JVM (Java Virtual Machine), dok je klasi?ne programe pisane primjerice u C-u potrebno prilago?avati platformi (operacijskom sustavu) na kojem se izvode.
Time i bogatim skupom klasa za rad s mre?nim komunikacijama u jednom trenutku je Java bila najbolji izbor za ?iroku lepezu mogu?ih aplikacija. Microsoft je stoga razvio svoj C# i platformu .NET kao odgovor na open source alternative.
Java je jedan od najkori?tenijih programskih jezika. Procjene i izvje??a o broju korisnika kre?u se od gotovo 7 do preko 10 milijuna.[1][2][3]
Na dana?njem tr?i?tu, Java se koristi ?iroko i dosljedno tamo gdje prete?e brzina razvoja programskog sustava nad zahtjevima do brzine rada programa. Iako inspirirana jezikom C, Java pru?a bolji stupanj sigurnosti i pouzdanosti zahvaljuju?i VM-u i hermeti?ki zatvorenom okoli?u u kome svaki program operira: na Javi se br?e razvija program s manje pogre?aka.
Upravo zbog toga je popularna za razvoj programa na mobilnim telefonima i kod financijskih kompanija. Javlja se kao osnovni jezik za programiranje Googleovog sustava Android.
Javina sintaksa je sli?na sintaksi C++-a. Sav kod se pi?e u klasama, a svaki podatak je objekt - uz iznimku primitivnih tipova podataka (cijeli i decimalni brojevi, boolean vrijednosti i znakovi).
Za razliku od C++-a, java ne podr?ava preoptere?ivanje operatora (ad-hoc polimorfizam). Tako?er ne podr?ava vi?estruko naslje?ivanje klasa (ali dopu?ta vi?estruko naslje?ivanje su?elja). Uz dva tipa komentara kori?tena u C++-u (// ... za jednolinijski i /* ... */ za vi?elinijski kod), java uvodi i tzv. Javadoc komentare (/** ... */) koji dopu?taju pisanje dokumentacije za klase i metode.
Primjer Javadoc dokumentacije za klasu:
/**
* Obja?njenje koda klase
* mo?e se protezati kroz vi?e linija. *
* @author Ivan Horvat ** definira autora ove klase
* @version 1.0 ** definira ina?icu ovog koda
* @since 2025-08-06 ** broj ina?ice u kojoj je prvi put
* ** uvedena ova funkcionalnost
*/
Javadoc dokumentacija za metode ima jo? niz dodatnih parametara, na primjer:
/**
* Kao primjer ?emo koristiti metodu koja prima dva broja
* i vra?a njihov zbroj
* @param brojA Ovo je prvi parametar metode
* @param brojB Ovo je drugi parametar metode
* @return int Metoda vra?a cjelobrojni zbroj dva broja
* @exception IOException iznimka pri unosu vrijednosti koje nisu brojevi
* @see IOException ** poveznica na stranicu o iznimci
*/
Neki programi mogu automatski generirati dokumentaciju za program iz Javadoc komentara.
public class HelloWorldApp {
public static void main(String[] args) {
System.out.println("Hello World!"); // ispisuje string u konzolu
}
}
Datoteke izvornog koda moraju biti imenovane prema javnoj klasi koju sadr?e, uz ekstenziju .java (u na?em slu?aju HelloWorldApp.java). Ta ?e se datoteka kompajlirati u bytecode ekstenzije .class, ?to ?e dopustiti pokretanje koda. Mogu?e je imati samo jednu javnu (public) klasu u datoteci. Sve klase koje nisu javne mogu biti spremljene u bilo kojoj .java datoteci, no kompajlirat ?e se po jedna .class datoteka za svaku klasu, istog imena kao i klasa. Anonimne klase dobit ?e spojeni naziv njihove roditeljske klase, znaka $ i cijelog broja.
Svaka klasa i njezine metode (funkcije u klasi) imaju definirane razine pristupa, koje ograni?avaju tko ih sve smije pozvati i tko ima pristup njihovim varijablama (u primjeru klju?na rije? public.
Klasa | Paket | Naslije?ena klasa
(isti paket) |
Naslije?ena klasa
(drugi paket) |
Ostalo | |
---|---|---|---|---|---|
public | ima pristup | ima pristup | ima pristup | ima pristup | ima pristup |
protected | ima pristup | ima pristup | ima pristup | ima pristup | - |
nema modifikator | ima pristup | ima pristup | ima pristup | - | - |
private | ima pristup | - | - | - | - |
Klase zadano trebaju biti vezane za objekte (klasa definira tip objekta), i samo se putem objekta mogu pozvati varijable i metode neke klase, na primjer:
public class mojaKlasa {
int x = 5;
public static void main(String[] args) {
mojaKlasa mojObjekt = new mojaKlasa();
System.out.println(mojaKlasa.x); //pogre?no
System.out.println(mojObjekt.x); //ispravno - ispisuje 5
}
}
Klju?na rije? static ispred klase ozna?ava da se ta klasa ne treba instancirati, odn. ne treba biti vezana za objekt kako bi se pozvala:
public static class mojaKlasa { //stati?ka klasa
static int x = 5; //stati?ka varijabla
public static void main(String[] args) {
System.out.println(mojaKlasa.x); //ovo je sada u redu
}
}
Stati?ke metode ne mogu pristupiti ni jednom ?lanu klase koji tako?er nije stati?an.
Klju?na rije? void ozna?ava da funkcija na koncu izvo?enja ne vra?a nikakvu vrijednost onome tko ju je pozvao. Ako Java program prestaje raditi zbog gre?ke, mora eksplicitno pozvati System.exit( int ), gdje je int cijeli broj, kako bi mogao vratiti broj pogre?ke (obi?no se broj 0 uzima kao zavr?etak bez pogre?ke).
Funkcija naziva main je to?ka ulaska u program. Funkcija mora primati niz (polje) stringova (string je niz znakova), u slu?aju da se funkcija pokre?e uz dodatne argumente, oni se spremaju u niz imena args.
Klasa System deklarira public static polje imena out. Out objekt je instanca klase PrintStream, koja pru?a mnoge metode za ispis.
- ↑ (en.) Plumbr.eu: How many Java developers are there in the world? July 18, 2012, by Priit Potter ?Arhivirana ina?ica izvorne stranice od 19. sije?nja 2013. (Wayback Machine), pristupljeno 9. sije?nja 2013.
- ↑ (en.) LangPop.com: Programming Language Popularity ?Arhivirana ina?ica izvorne stranice od 3. rujna 2018. (Wayback Machine), pristupljeno 9. sije?nja 2013.
- ↑ (en.) TIOBE: Programming Community Index for January 2013, pristupljeno 9. sije?nja 2013.