43
JAVA Gordana Gardić

Java

Embed Size (px)

Citation preview

Page 1: Java

JAVAGordana Gardić

Page 2: Java
Page 3: Java

Sadržaj:

1. Poreklo Jave

2. Nastanak Jave

3. Pojmovi koji oblikuju Javu

4. Alati za razvoj

5. Java platforma

6. Java programi

7. Prevođenje i interpretacija Java programa

8. Struktura projekta

9. Identifikatori

Page 4: Java

Poreklo Jave

• Java je srodnik jezika C++, koji je direktan potomak jezika C.

• Iz jezika C Java je preuzela sintaksu.

• Karakteristike koje definišu Javu potiču od njenih prethodnika ili su nastale kao odgovor na njih.

Page 5: Java

Poreklo Jave

• Pošto C++ objedinjuje visoku efikasnost i stilske elemente C-a sa objektno orijentisanim pristupom, mogao se koristiti za pravljenje široke lepeze programa.

• World Wide Web i Internet će pokrenuti novu revoluciju na polju programiranja.

Page 6: Java

Nastanak Jave

• 1991. godina (James Gosling, Patrick Naughton, Chris Warth, Ed Frank, Mike Sheridan)-Sun Microsystems, Inc.

• 18 meseci rada da bi se došlo do prve radne verzije.

• “Oak” – hrast

• 1995. godine – JAVA

Page 7: Java

Nastanak Jave

• Iznenađuje to što glavni pokretač za razvoj Jave nije bio Internet!

• Osnovni motiv je bila potreba za jezikom nezavisnim od računarske platforme .

• U vreme kad je nastajala JAVA uobličio se i WWW ovakav kakvim ga danas poznajemo.

• Java se probila u prvi plan računarskih jezika, jer su i za Web bili potrebni prenosivi programi.

Page 8: Java

Pojmovi koji oblikuju Javu

1. Jednostavno

2. Bezbedno

3. Prenosivo

4. Objektno orijentisano

5. Robusno

6. Višenitno

7. Nezavisno od platforme

8. Interpretirano

9. Visokoefikasno

10. Distribuirano

11. Dinamično

Page 9: Java

Jednostavno

• Java je koncipirana tako da programeri mogu lako da je nauče i efikasno koriste.

• Sa predznanjem C-a i C++ savladavanje Jave nije problem.

Page 10: Java

Bezbedno

• Kada koristite čitač Weba koji podržava Javu, možete bezbedno da preuzimate Java aplete bez bojazni od virusa ili zlih namera.

• Java obezbeđuje ovu zaštitu tako što program ograničava na okruženje za izvršavanje Java programa, ne dozvoljavajući mu pristup drugim delovima računara.

Page 11: Java

Bezbedno

• Mogućnost preuzimanja apleta bez straha od štete ili bojazni da će biti prekršena bezbednosna pravila, za mnoge predstavlja najveću novinu koju je Java donela.

Page 12: Java

Prenosivo

• Tri velike grupe korisnika različitih operativnih sistema:

Windows

Linux

Mackintosh

• I još veliki broj manje poznatih operativnih sistema.

• I još bezbroj različitih konfiguracija računara.

Page 13: Java

Objektno orijentisano

• Iako je Java nastala pod uticajem svojih predhodnika, nije bilo predviđeno da njen izvorni kôd bude kompatibilan sa izvornim kodom bilo kog drugog jezika.

• Zato su autori Jave imali potpuno odrešene ruke.

• Jedan rezultat koji je odavde proizišao jeste čist, upotrebljiv i pragmatičan tretman objekata.

• Model objekta u Javi jednostavan je i lako se proširuje, dok prosti tipovi, kao što su celi brojevi, nisu ni obuhvaćeni objektima jer su tako mnogo efikasniji.

Page 14: Java

Robusno

• Web okruženje sa više platformi postavlja izuzetne programske zahteve jer program mora da se pouzdano izvršava na različitim sistemima.

• U cilju postizanja pouzdanosti rada programa, Java vas ograničava u nekoliko ključnih područja, terajući vas da programske greške ispravite u ranoj fazi.

Page 15: Java

Robusno

• Istovremeno, Java vas oslobađa briga o mnogim najčešćim programskim greškama.

• Pošto je Java strogo tipiziran jezik, ona proverava kôd u trenutku njegovog prevođenja.

• Međutim, ona ga proverava i u trenutku izvršavanja.

• Glavna prednost Jave je to što možete da predvidite kako će se ono što ste napisali ponašati u različitim uslovima.

Page 16: Java

Robusno

• Dva glavna razloga otkazivanja programa:

greške pri upravljanju memorijom i

loša obrada izuzetaka .

• Java otklanja ove probleme jer dodeljuje i oslobađa memoriju umesto vas. (garbage collector)

• Java obezbeđuje objektno orijentisanu obradu izuzetaka.

Page 17: Java

Višenitno

• Java je projektovana tako da izađe u susret realnim zahtevima pravljenja interaktivnih mrežnih programa.

• Java podržava višenitno programiranje – varijantu programiranja koja omogućuje da vaš program istovremeno radi više stvari.

Page 18: Java

Nezavisno od platform

• Osnovni problem dizajnera Jave bilo je stvaranje prenosivog koda koji će trajno raditi.

• Operativni sistemi se neprestano poboljšavaju, poboljšavaju se i procesori, a kada se sve kombinuje s promenama u osnovnim resursima sistema, može se dogoditi da program više ne radi kako treba.

“Napiši jednom; izvršavaj bilo gde, bilo kada i zauvek”

Page 19: Java

Interpretirano i visokoefikasno

• Java omogućuje pravljenje programa za više platformi prevodeći izvorni kôd u međuproizvod, zvan bajt kôd.

• Ovakav kôd se može izvršavati na svakom sistemu koji ima Javinu virtuelnu mašinu.

• Najveći broj prethodnih pokušaja da se napravi kôd koji će raditi nezavisno od platforme ostvarivao je to na račun performansi.

• Javin bajt kôd je pažljivo optimizovan tako da se po potrebi, pomoću JIT prevodioca, lako prevodi u mašinski kôd konkretnog računara, čime se postižu visoke performanse.

Page 20: Java

Distribuirano

• Java je posebno namenjena distribuiranom okruženju Interneta jer lako rukuje protokolima TCP/IP.

• Java podržava i daljinsko izvršavanje procedura (Remote Method Invocation,RMI).

• Dakle, program može da zahteva izvršavanje procedura koje se nalaze na bilo kojoj mrežnoj adresi.

Page 21: Java

Dinamično

• Java programi sadrže znatne količine podataka o tipu koji se koriste za proveravanje i razrešavanje pristupa objektima u trenutku izvršavanja.

• Time je omogućeno dinamičko povezivanje koda na pouzdan i efikasan način.

Page 22: Java

Alati za razvoj

• Za izvršavanje Java aplikacija potrebno je imati instaliranu samo Java platformu.

• Java Runtime Enviroment (JRE)• Za razvoj Java aplikacija je potrebno osim JRE imati i

skup alata kojima se radi razvoj.

• Java Development Kit (JDK)• JDK, dakle, sadrži JRE i sve dodatne alate neophodne za

osnovni razvoj Java aplikacija.

Page 23: Java

Alati za razvoj

Page 24: Java

JDK izdanja

• Za neke Java aplikacije su potrebne dodatne mogućnosti, koje nisu sadržane osnovnim skupom JDK, kao što je slučaj sa web aplikacijama.

• Zato postoje razna izdanja (edition) JDK-a.

Page 25: Java

JDK izdanja

• Najpopularnija su sledeća izdanja:• Java SE (Standard Edition)• Osnovno izdanje namenjeno za razvoja svih aplikacija, osim

onih koje su dizajnirane za posebne uređaje. Java SE ediciju čini JRE, prevodilac i prateće alatke i API, uključujući i njegov izvorni kod.

• Java EE (Enterprise Edition)• Ovo izdanje uključuje aplikativni server, web server, J2EE API,

podršku za Enterprise JavaBeans, Java Servlet API i Java Server Pages (JSP) tehnologije. J2EE se koristi sa JSE.

Page 26: Java

JDK izdanja

• Java ME (Micro Edition)• Služi za razvoj java aplikacija na mobilnim uređajima.

• JavaFX (Script Technology)• Efikasan skript jezik za lako kreiranje bogatih sadržaja u

Java okruženju.

Page 27: Java

Java platforma

• Platforma je softversko i/ili hardversko okruženje u kome se izvršava program.

• Java se upravo razlikuje od mnogih drugih platformi u tome što je isključivo softverska, koja radi na drugim hardverskim platformama.

• Ovo čini Javu portabilnom i nezavisnom od hardverske platforme.

Page 28: Java

Java platforma

• Java platforma se sastoji iz dve komponente:

Java Virtuelne Mašine (JVM) predstavlja osnovu Java platforme koja je portovana

na različite hardverske platforme.

Java Application Programming Interface (API) ogromna kolekcija gotovih softverskih komponenti

koje pružaju mnogo korisnih mogućnosti. Nju čine klase i interfejsi, grupisani u pakete.

Page 29: Java

Java platforma

Page 30: Java

Virtuelna mašina

• Virtualna mašina je softverska implementacija mašine (računara) koja može da izvršava programe kao i sam računar (fizička mašina).

• Dve osnovne kategorije virtualnih mašina:

Sistemska virtualna mašina–poseduje kompletnu sistemsku platformu koja omogućuje instalaciju i pokratanje operativnog sistema.

Aplikativna virtualna mašina–dizajnirana za pokretanje jednog programa (aplikacije), odnosno, podržava jedan proces.

• Bitna karakteristika virtualne mašine –softver koji se pokreće unutar nje je ograničen na resurse koje mašina pruža (drugim rečima, ne može se izaći van granica njenog virtualnog sveta).

Page 31: Java

Biblioteke klasa u Javi

• U Javi postoji standardna biblioteka klasa koja se može koristiti kada je potrebno.

• Biblioteka klаsa je skup klasa koje podržavaju rаzvoj programa.

• Klase koje se nalaze u ovim bibliotekama su za programere bitne, pošto sadrže specijalne funkcije.

• Klasa u okviru standardne biblioteke klasa su grupisane u pakete (package).

Page 32: Java

Biblioteke klasa u Javi Neki od najvažnijih paketa u

standardnoj biblioteci klasa su: Paket

Opis

java.applet Kreiraju se programi (apleti) koji se lako prebacuju preko Weba

java.awt Crta se grafika i kreira grafički korisnički interfejs (AWT je skraćenica za Abstract Windowing

toolkit)

java.beans Definišu se softverske komponente koje se lako ubacuju u aplikacije.

java.io Klase koje obavljaju različite funkcije vezane za ulaz i izlaz

java.lang Generalna podrška. Ovaj paket je automatski uvezen u sve programe.

java.math Klase za matematička izračunavanja

java.net Klase za komunikaciju preko mreže

java.rmi Klase za pisanje programa koji se mogu distribuisati na više računara (RMI je skraćenica za

Remote Method Invocation).

java.security Klase vezane za sigurnost

java.sql Klase za rad sa bazama podataka. SQL je skraćenica za Structure Query Language)

java.text Klase za formatiranje teksta

java.util Generalne pomoćne klase

javax.swing Klase za kreiranje grafičkog korisničkog interfejsa. Proširenje klasa iz paketa

Page 33: Java

Biblioteke klasa u Javi

• Sve klase u Javi su organizovane u pakete.

• Paketi u Javi su slični direktorijumima (fasciklama) koji se koriste za organizaciju podataka na disku.

• Pakovanje klase se izvodi tako što se u datoteku u kojoj se nalazi klasa na početku doda iskaz za pakovanje.

Page 34: Java

Biblioteke klasa u Javi

package Proba;

public class Sfera …

• Prethodni iskaz kaže da je klasa Sfera pripadnik paketa Proba.

• U jednom paketu može biti više klasa.

• Ključna reč public u definiciji klase ukazuje na to da se klasi Sfera može pristupiti i iz drugih paketa i klasa u programu.

Page 35: Java

Biblioteke klasa u Javi

• Standardne klase i paketi

• Klase koje se nalaze u paketu java.lang se automatski mogu koristiti kod pisanja programa.

• Ove klase su toliko osnovne da se mogu smatrati proširenjem jezika.

• Svaka klasa iz paketa java.lang, kao što su klase String ili System, se može koristiti u programu bez ikakvih dodatnih radnji.

Page 36: Java

Java programi

• Postoje dve osnovne vrste programa koji se mogu pisati u Javi:

Aplikacija to je samostalni program za rešavanje jednog ili

skupa problema, koji sadrži metod main() i jednu ili više klasa

Aplet to je dinamički interaktivni program koji se

može izvršavati u okviru WEB stranice, a posredstvom nekog od browser-a ( čitača )

Page 37: Java

Prevođenje i interpretacija Java programa

Page 38: Java

Prevođenje i interpretacija Java programa

• Java prevodilac (javac) prevodi Java izvorni kod (.java) u tzv. bajt-kod(.class) koji je binarani isti za sve platforme(“prevedi jednom izvršavaj bilo gde”).

• Bajt-kod (Bytecode)su mašinske instrukcije za JVM.

• JVM operiše upravo nad bajtkodom.

• Java interpreter (java) tumači bajtkod i izvršava akcije koje su specificirane u bajtkodu, unutar JVM.

Page 39: Java

Struktura projekta

• Važno je dobro organizovati Java projekat.

• Uobičajeno je u programiranju da imena direktorijuma, svojim imenom, sugerišu njegov sadržaj.

• Direktorjum src (sinonim za source, izvorni kod) sadrži celokupan izvroni kod java programa.

• Direktorijum out (sinonim za output, rezultat kreiranja aplikacije; često se naziva i bin, što je sinonim za binary, binarni, tj. prevedeni kod) sadrži celokupan rezultat prevođenja aplikacije (.class fajlove).

Page 40: Java

Struktura projekta

• Direktorijum lib (sinonim za library, biblioteke)

sadrži sve eksterne biblioteke koje aplikacija koristi.

• Direktorijum etc (sinonim za  et cetera, 'i ostale stvari') može da sadrži sve pomoćne fajlove u vezi projekta - uputstva, zahteve, SQL skriptove i tome slično.

• Direktorijum dist (sinonim za distribution, distribucija) sadrži finalni rezultat build-ovanja aplikacije, spreman za distribuciju

Page 41: Java

Identifikatori

• Java koristi identifikatore da imenuje:

promenljive

metode

klase

pakete• Sintaksna pravila:

Mora početi slovom (velikim ili malim slovom)

Može biti praćeno bilo kojim brojem slova i cifara

Karakteri $ i _ su prihvaćena slova

Java identifikator imena je osetljiv na veličinu slova (case sensitive)

Ne sme biti ključna reč

Page 42: Java

Ključne reči

abstract continue for new switch

assert*** default goto* package synchronized

boolean do if private this

break double implements protected throw

byte else import public throws

case enum**** instanceof return transient

catch extends int short try

char final interface static void

class finally long strictfp** volatile

const* float native super while

*  not used**  added in 1.2

***  added in 1.4****  added in 5.0

Page 43: Java

•Nastaviće se...