Java je objektno-orijentirani programski jezik razvijen u timu predvođenim Jamesom Goslingom u kompaniji Sun Microsystems početkom 1990-tih.
Ovaj članak ili neki od njegovih odlomaka nije dovoljno potkrijepljen izvorima (literatura, veb-sajtovi ili drugi izvori). |
Ideja je bila da se stvori programski jezik koji bi bio nezavisan od operativnog sistema, baziran na C++-u, ali sa pojednostavljenom sintaksom, stabilnijim runtime sistemom i pojednostavljenom kontrolom memorije.
Java | |
---|---|
Programska Paradigma | Objektno orijentisano programiranje |
Pojavio se | 1990-te |
Tvorac | James Gosling i tim iz Sun Microsystems |
Sistem tipovanja | statični, strogi |
Glavne implementacije | razne |
Utjecali | C++, Smalltalk, Objective-C |
Utjecao na | C#, J#, VJ# |
Java nema veze sa JavaScriptom, iako oba jezika koriste sličnu sintaksu baziranu na C sintaksi.
Ovaj odlomak potrebno je proširiti. |
Pet osnovnih razloga za razvoj Jave su:
Da bi postigli mrežnu podršku i izvršavanje programa na udaljenim serverima, Java programeri ponekad moraju koristiti dodatke poput CORBA ili OSGi.
Osnovni koncept u Javi je klasa (engleski: class), tj. sav izvorni kod je napisan unutar klasa. U pravilu, svaka klasa je deklarirana unutar datoteke sa istim imenom i sufiksom .java. Ovo pravilo je donekle nametnuto kompajlerom koji zahtijeva da su imena klasa i datoteka ista (osim tzv. unutrašnjih klasa, engleski: inner classes). Osnovni tipovi u Javi, poput int
, boolean
, byte
i sl. su također predstavljeni u klasama (napomena: Reflection types) i imaju odgovarajuće klasne omote poput java.lang.Integer
, java.lang.Boolean
i java.lang.Byte
.
Javin izvorni kod nije kompajliran u mašinski kod nego je pretvoren u tzv. bytecode koji zahtijeva posebno okruženje da bi se mogao izvršavati. To okruženje se u ovom slučaju zove Javina virtualna mašina (engl. Java Virtual Machine ili JVM). Trenutno JVM podržava najrasprostranjenije operativne sisteme, mada ne sve. Ideja je da ako se kod napiše i kompajlira na jednoj platformi (npr. Mac OS X), taj isti bytecode se može izvršavati na svim ostalim platformama koje imaju JVM (npr. Microsoft Windows XP, Linux) bez potrebe za ponovnim kompajliranjem na toj platformi.
U Javi, za razliku od npr. C++-a, memorija namijenjena objektu je automatski počišćena, tj. vraćena sistemu čim se taj objekat više ne koristi (za tog objekta kažemo da je van domašaja ili engleski: out of scope). To nije slučaj u C++-u gdje svaki objekat koji je stvoren mora biti ručno izbrisan koristeći uputu delete
(ako se to ne uradi onda dođe do tzv. curenja memorije ili engleski: memory leak).
Ovaj odlomak potrebno je preurediti. |
Iako je Java nastala od C++, ali za razliku od C++, koji dozvoljava struktuirane kao i objektno orijentirane principe, u Javi su objektno orijentirani principi obavezni. Sve je u Javi objekat, a sav izvorni kod je pisan unutar klasa.
// VozdraRaja.java public class VozdraRaja { public static void main(String[] args) { System.out.println("Hello world!"); } }
VozdraRaja
koja je deklarirana u datoteci VozdraRaja.java
, kompajler će stvoriti class datoteku sa nazivom VozdraRaja.class. U slučaju nepoznate (anonimne) klase, generirana datoteka će imati ime klase koja sadrži nepoznatu klasu, zajedno sa simbolom $ i brojem. Npr. VozdraRaja$1.class
.main()
, tzv. glavnu metodu.void
označava da metoda main()
ne vraća ništa.main()
metoda mora uzimati niz String objekata kao parametar. Obično se taj parametar imenuje args
, međutim bilo koje dozvoljeno ime varijable se može koristiti kao parametar (npr. argumenti
).static
označava da je ova metoda statična tzv. metoda na nivou klase, umjesto uobičajenog nivoa objekta (instance). Glavna metoda mora biti označena static
.public
(javna) označava da se ta metoda može zvati iz koda u drugim klasama ili da se ta klasa može koristiti u drugim klasama izvan hierarhije te klase.java.lang.System
definira javnu staticnu (public static) varijablu out
koja je instanca (objekat) klase java.io.PrintStream
i ima metodu println(java.lang.String)
koja ispisuje informaciju na ekranu (tzv. standardni output).javac
program, tj. pozivajući Java kompajler. Npr. da bi kompajlirali gore navedeni primjer u trenutačnom direktoriju$ javac VozdraRaja.java
C:\> javac VozdraRaja.java
main()
(glavnu) metodu koja se automatski poziva. Npr. gore spomenuti program se pokreće na sljedeći način (ako je VozdraRaja.java kompajliran u trenutnom direktoriju)$ java -cp . VozdraRaja
C:\> java -cp . VozdraRaja
Ime klase koja sadrži glavnu metodu koja se pokreće može se također deklarisati u META-INF/MANIFEST.MF datoteci u Java arhivi, tj. JAR fajlu.
Java apleti (applets) su (obično mali) programi koji su uključeni unutar drugih aplikacija, obično web stranice prikazane (i izvršavane) unutar browsera.
// VozdraRaja.java applet import java.applet.Applet; import java.awt.Graphics; public class VozdraRaja extends Applet { public void paint(Graphics gc) { gc.drawString("Vozdra raja, nema Hello world!", 65, 95); } }
<html> <head> <title>Vozdra Raja Applet Primjertitle> head> <body> <applet code="VozdraRaja" width="200" height="200"> applet> body> html>
import
upućuje kompajler da uključi java.applet.Applet
i java.awt.Graphics
klase u kompilaciju. Koristeći import
uputu programer može koristiti normalizirano (skraćeno) ime klase (npr. Applet
) umjesto čitavog imena (npr. java.applet.Applet
) u svom izvornom kodu.VozdraRaja
klasa proširuje klasu Applet
, tj. Applet
daje osnovnu okosnicu aplikaciji za prikazivanje i kontrolu tokom rada apleta. Applet
klasa je komponenta Abstract Windowing Toolkit (AWT), koji daje apletu mogućnost da se prikaže u korisnikovom grafičkom interfejsu (tj. GUI) i reaguje na GUI događaje (poput klika na dugme).VozdraRaja
overrides (termin koji opisuje da metoda u ovoj klasi ima prednost nad roditeljskom klasom) paint(Graphics)
metodu nasliđenu od Container
super-klase koja, daje, tj. sadrži kod za prikazivanje apleta. Metoda paint()
uzima Graphics
objekat kao parametar koji sadrži grafički kontekst unutuar kojeg se prikazuje aplet. Tako npr. paint()
poziva metodu drawString(String, int, int)
unutar grafičkog kontexta da prikaže "Vozdra raja, nema Hello world!" počevši na piksel koordinatama 65 i 95 u apletovom prostoru.code="VozdraRaja"
- naznačuje ime klase koju treba izvrsitiwidth="200"
- znači širina, tj. širina apletovog prostoraheight="200"
- znači visina, tj. visina apletovog prostoraobject
ili embeded
elemente (tj. tagove), mada podrška za ove element varira ovisno o internet pregledniku. [1] Arhivirano 18. 12. 2008. na Wayback Machine[2] Arhivirano 29. 6. 2006. na Wayback Machine)
Commons ima datoteke na temu: Java (programski jezik) |
This article uses material from the Wikipedia Bosanski article Java (programski jezik), which is released under the Creative Commons Attribution-ShareAlike 3.0 license ("CC BY-SA 3.0"); additional terms may apply (view authors). Sadržaj je dostupan pod licencom CC BY-SA 4.0 osim ako nije drugačije navedeno. Images, videos and audio are available under their respective licenses.
®Wikipedia is a registered trademark of the Wiki Foundation, Inc. Wiki Bosanski (DUHOCTRUNGQUOC.VN) is an independent company and has no affiliation with Wiki Foundation.