Java Basics Flashcards
Kako je nastala Java i kada, kako se izvršava Java kod...
Java
Java je objektno-orijentisan, višenamneski programski jezik koji omogućava pisanje programa jednom i njihovo izvršavanje na različitim platformama (Write Once, Run Anywhere). Koristi se za izradu dekstop, web, mobilnih aplikacija…
Nastao je 1991. godine pod imenom Oak u kompaniji Sun Mycrosystems, a 1995. godine je dobio naziv Java
2010. godine Oracle je kupio Sun Mycrosystems
Prednosti i mane Jave
Prednosti:
Platformska nezavisnost (kod se kompajlira u bajtkod koji se izvršava na JVM, omogućavajuću pokretanje na bilo kojoj platformi koja ima JVM)
Velika zajednica i biblioteke
Sigurnost (proveravanje tipova i sandbox)
Garbage Collections
Multithreading
Mane:
Sporije izvršavanje u poređenju sa C++ (zbog JVM)
Velika potrošnja memorije (zbog garbage collection-a)
**Verbosity **(pisanje koda u Javi zahteva više linija koda za jednostavne zadatke)
JDK
Java Development Kit (JDK) je skup alata za razvoj u Javi, koji uključuje JRE, komapjler (javac), debugger i dokumentaciju (javadoc). Potreban je za kreiranje Java programa.
JDK = JRE + komapjler + …
JRE
Java Runtime Environment (JRE) je skup alata potreban za izvršavanje Java aplikacija. Sadrži JVM i osnovne bilioteke klase
JRE = JVM + biblioteke…
JVM
Java Virtual Machine (JVM) je virutelna mašina koja izvršava Java bajtkod. Njene glavne funkcije su:
1. Kompajliranje u runtime-u (JIT)
2. Upravljanje memorijom (dodela memorije i garbage collection)
3. Platformska nezavisnost
Izvršavanje Java koda
Pisanje koda - kod se piše u .java datoteci
Komapjliranje - kod se kompajlira u bajtkod koristeći javac što generiše .class datoteku
Izvršavanje - JVM čita .class fajl i izvršava bajtkod
Java VS C++
Sličnosti
Oba jezika koriste C-stil sintakse i podržavaju OOP principe
Razlike:
Java je platformski nezavisna, dok se C++ kompajlira za specifičan OS (platformski zavistan)
Java ima Garbage Collection, dok se u C++ ručno upravlja memorijom
Java nema pokazivače, dok ih C++ ima
Java ne podržava multiple inheritance
C++ se više koristi za sistemsko programiranje
Tipovi podataka u Javi
Primitivni:
byte
short
int
long
float
double
char
boolean
Referentni:
Klase (String, Scanner…)
Nizovi
Interfejesi
Enums
Null vrednost