java - kezdő · pdf filejava-ban tisztázni kell ezeket a fogalmakat, mivel...

27
JAVA JAVA

Upload: dinhdang

Post on 06-Feb-2018

226 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: JAVA - Kezdő · PDF fileJava-ban Tisztázni kell ezeket a fogalmakat, mivel kétszer történik feldolgozás: először fordítunk, majd másodszor a kapott bájtkódot

JAVAJAVA

Page 2: JAVA - Kezdő · PDF fileJava-ban Tisztázni kell ezeket a fogalmakat, mivel kétszer történik feldolgozás: először fordítunk, majd másodszor a kapott bájtkódot

A NYELV NEVEA NYELV NEVE

•• Kezdetben: OakKezdetben: Oak

•• James GoslingJames Gosling

•• Java: Sun Mycrosystems vJava: Sun Mycrosystems véédjegyedjegye

Page 3: JAVA - Kezdő · PDF fileJava-ban Tisztázni kell ezeket a fogalmakat, mivel kétszer történik feldolgozás: először fordítunk, majd másodszor a kapott bájtkódot

EGY KIS FEGY KIS FÖÖLDRAJZLDRAJZ

•• IndonIndonéézia egyik szigetezia egyik szigete

•• Jakarta: az orszJakarta: az orszáág fg főővváárosarosa

•• FFööld 13. legnagyobb szigeteld 13. legnagyobb szigete

Page 4: JAVA - Kezdő · PDF fileJava-ban Tisztázni kell ezeket a fogalmakat, mivel kétszer történik feldolgozás: először fordítunk, majd másodszor a kapott bájtkódot

Mit egyszerMit egyszerűű csincsináálni?lni?

–– AlkalmazAlkalmazáásokat sokat íírnirni

–– Interneten mInterneten máás szs száámmííttóóggéépek felpek feléé tovtováábbbbíítanitani

–– GrafikGrafikáákat, weboldalakat megjelenkat, weboldalakat megjelenííteniteni

–– Minden mMinden máás programozs programozóói feladat is megoldhati feladat is megoldhatóó, ,

amire a klasszikus programozamire a klasszikus programozáási nyelvek ksi nyelvek kéépesekpesek

Page 5: JAVA - Kezdő · PDF fileJava-ban Tisztázni kell ezeket a fogalmakat, mivel kétszer történik feldolgozás: először fordítunk, majd másodszor a kapott bájtkódot

ObjektumorientObjektumorientáált nyelvlt nyelv

ObjektumokObjektumok éés ezek mints ezek mintááinak tekinthetinak tekinthetőőosztosztáályoklyok öösszesssszesséégege

OsztOsztáályok:lyok:mezmezőőkbkbőől (vl (vááltozltozóókbkbóól),l),metmetóódusukbdusukbóól (fl (füüggvggvéényekbnyekbőől)l)

épülnek fel

Page 6: JAVA - Kezdő · PDF fileJava-ban Tisztázni kell ezeket a fogalmakat, mivel kétszer történik feldolgozás: először fordítunk, majd másodszor a kapott bájtkódot

MezMezőőkben:kben:elteltáárolhatjuk az adatokatrolhatjuk az adatokat

MetMetóódusokkal:dusokkal:megadhatjuk az adatokon vmegadhatjuk az adatokon véégezhetgezhetőő mműűveletek veletek kkóódjdjáátt

Page 7: JAVA - Kezdő · PDF fileJava-ban Tisztázni kell ezeket a fogalmakat, mivel kétszer történik feldolgozás: először fordítunk, majd másodszor a kapott bájtkódot

A programkA programkéészszííttéés folyamatas folyamata

SpecifikSpecifikáácicióó

TervezTervezééss

KKóódoldolááss

TesztelTesztelééss

DokumentDokumentáállááss

Page 8: JAVA - Kezdő · PDF fileJava-ban Tisztázni kell ezeket a fogalmakat, mivel kétszer történik feldolgozás: először fordítunk, majd másodszor a kapott bájtkódot

SpecifikSpecifikáácicióó

A feladat pontos meghatA feladat pontos meghatáározrozáásasaTartalmazza:Tartalmazza:–– a feladat sza feladat szööveges veges

matematikaimatematikai–– A megoldA megoldáással szemben tssal szemben táámasztott masztott

kköövetelmvetelméényeket, knyeket, köörnyezeti igrnyezeti igéényeketnyeket

leírását

Page 9: JAVA - Kezdő · PDF fileJava-ban Tisztázni kell ezeket a fogalmakat, mivel kétszer történik feldolgozás: először fordítunk, majd másodszor a kapott bájtkódot

TervezTervezééss

ElkElkéészszüülhet a megoldlhet a megoldáás algoritmusas algoritmusaAz algoritmus Az algoritmus ááltal hasznltal hasznáált lt adatokadatok leleíírráásasaA jelentA jelentőősebb problsebb probléémmáákat kat rréészfeladatokszfeladatokra kell ra kell

szszéétbontanitbontani

Algoritmus: anyanyelvAlgoritmus: anyanyelvüünknköön megfogalmazott n megfogalmazott parancssorozatparancssorozat

Page 10: JAVA - Kezdő · PDF fileJava-ban Tisztázni kell ezeket a fogalmakat, mivel kétszer történik feldolgozás: először fordítunk, majd másodszor a kapott bájtkódot

KKóódoldolááss

ProgramozProgramozáási nyelven lesi nyelven leíírt programrt programForrForrááskskóód: utasd: utasííttáások sorozatasok sorozata

ForrForráássáállomllomáány: programozny: programozáási nyelven lesi nyelven leíírt verzirt verzióó

Page 11: JAVA - Kezdő · PDF fileJava-ban Tisztázni kell ezeket a fogalmakat, mivel kétszer történik feldolgozás: először fordítunk, majd másodszor a kapott bájtkódot

SzSzáámmííttóóggéépp

ProcesszorProcesszor

Rendkívül szűk elemi utasításkészletet ért meg, a gépi kódot (tárgykód, natív kód),

ami egyesek és nullák sorozataként ábrázolható.

Page 12: JAVA - Kezdő · PDF fileJava-ban Tisztázni kell ezeket a fogalmakat, mivel kétszer történik feldolgozás: először fordítunk, majd másodszor a kapott bájtkódot

ÉÉrtelmezrtelmezőő

ForrForrááskskóódd GGéépi kpi kóóddÉÉrtelmezrtelmezőőInterpreterInterpreter

Page 13: JAVA - Kezdő · PDF fileJava-ban Tisztázni kell ezeket a fogalmakat, mivel kétszer történik feldolgozás: először fordítunk, majd másodszor a kapott bájtkódot

ÉÉrtelmezrtelmezőő

ÉÉrtelmezrtelmezőő ttíípuspusúú interpretinterpretáált nyelvek (Basic)lt nyelvek (Basic)1.1. A programozA programozóó megmegíírja a forrrja a forrááskskóódotdot2.2. A felhasznA felhasznáállóó az az éértelmezrtelmezőő segsegíítstsééggéével vel

vvéégrehajtja a forrgrehajtja a forrááskskóódotdot3.3. a) Az a) Az éértelmezrtelmezőő utasutasííttáásonksonkéént nt éértelmezi rtelmezi éés s

egybegybőől vl véégrehajtja (Basic) grehajtja (Basic) b) Az b) Az éértelmezrtelmezőő valamilyen egysvalamilyen egyséégenkgenkéént nt

éértelmezi, lefordrtelmezi, lefordíítja tja éés futtatja s futtatja

Page 14: JAVA - Kezdő · PDF fileJava-ban Tisztázni kell ezeket a fogalmakat, mivel kétszer történik feldolgozás: először fordítunk, majd másodszor a kapott bájtkódot

InterpretInterpretáált nyelvlt nyelv

HHáátrtráánya:nya:–– A gA géépi kpi kóód eld előőáállllííttáása csak a vsa csak a véégrehajtgrehajtáás alatt ts alatt töörtrtéénik nik

meg meg →→ lassabban futnak le az ilyen programoklassabban futnak le az ilyen programok–– ForrForráásnyelven kersnyelven kerüülnek terjesztlnek terjesztéésre sre →→ a program a program

jogosulatlan felhasznjogosulatlan felhasznáálláássáára minden lehetra minden lehetőősséég adottg adott

ElElőőnye:nye:–– PortPortáábilisek: kbilisek: köönnyen nnyen áátvihettvihetőők egy szk egy száámmííttóóggééprprőől l

egy megy máás ts tíípuspusúú rendszerrerendszerre

Page 15: JAVA - Kezdő · PDF fileJava-ban Tisztázni kell ezeket a fogalmakat, mivel kétszer történik feldolgozás: először fordítunk, majd másodszor a kapott bájtkódot

FordFordííttóó

ForrForrááskskóódd GGéépi kpi kóóddFordFordííttóó

CompilerCompiler

Page 16: JAVA - Kezdő · PDF fileJava-ban Tisztázni kell ezeket a fogalmakat, mivel kétszer történik feldolgozás: először fordítunk, majd másodszor a kapott bájtkódot

FordFordííttóó

FordFordííttóó ttíípuspusúú kompilkompiláált nyelvek (Pascal, C, C++)lt nyelvek (Pascal, C, C++)

1.1. A programozA programozóó megmegíírja a forrrja a forrááskskóódotdot2.2. A programozA programozóó fordfordííttóó programmal lefordprogrammal lefordíítja tja

ggéépi kpi kóódradra3.3. A felhasznA felhasznáállóó kkééssőőbbbb a ga géépi kpi kóódot futtatja a dot futtatja a

szszáámmííttóóggéépenpen

Page 17: JAVA - Kezdő · PDF fileJava-ban Tisztázni kell ezeket a fogalmakat, mivel kétszer történik feldolgozás: először fordítunk, majd másodszor a kapott bájtkódot

JAVAJAVA

ForrForrááskskóódd GGéépi kpi kóóddÉÉrtelmezrtelmezőőInterpreterInterpreter

FordFordííttóóCompilerCompiler

BBáájtjtkkóódd

Olyan, mint egy virtuális processzor gépi kódja.

javac java.java

.class

Page 18: JAVA - Kezdő · PDF fileJava-ban Tisztázni kell ezeket a fogalmakat, mivel kétszer történik feldolgozás: először fordítunk, majd másodszor a kapott bájtkódot

BBáájtkjtkóódd

ElElőőnyeinyei::

ElElőőfordfordíított btott báájtkjtkóód gyorsabban d gyorsabban éértelmezhetrtelmezhetőő MegvMegvéédi az algoritmusokat a lopdi az algoritmusokat a lopááststóóll PlatformfPlatformfüüggetlen: nem szggetlen: nem száámmíít milyen t milyen

szszáámmííttóóggéépen pen áállllíítjuk eltjuk előő

Page 19: JAVA - Kezdő · PDF fileJava-ban Tisztázni kell ezeket a fogalmakat, mivel kétszer történik feldolgozás: először fordítunk, majd másodszor a kapott bájtkódot

Java Java éértelmezrtelmezőő

JVM: a bJVM: a báájtkjtkóódot utasdot utasííttáásonksonkéént nt éértelmezi rtelmezi éés s futtatja (virtufuttatja (virtuáális glis géép, szoftver)p, szoftver)

JIT: (Just In Time) a lefordJIT: (Just In Time) a lefordíított utastott utasííttáást a st a program futprogram futáása alatt megjegyzi sa alatt megjegyzi éés csak a s csak a legklegköözelebbi betzelebbi betööltltééskor fordskor fordíítja tja úújra jra (technol(technolóógia, amit a JVM tud)gia, amit a JVM tud)

Page 20: JAVA - Kezdő · PDF fileJava-ban Tisztázni kell ezeket a fogalmakat, mivel kétszer történik feldolgozás: először fordítunk, majd másodszor a kapott bájtkódot

ProgramszerkesztProgramszerkesztőő programprogramLinkerLinker

A lefordA lefordíított ttott táárgykrgykóód d öönnáállllóóan nem kan nem kéépes futni, pes futni, mméég g öösszeszerkesztsszeszerkesztéésre vsre váár.r.

Az Az öösszeszerkesztsszeszerkesztéést a linker vst a linker véégzi.gzi.Csak a linker Csak a linker ááltal ltal öösszesszeáállllíított program futtathattott program futtathatóó..

Page 21: JAVA - Kezdő · PDF fileJava-ban Tisztázni kell ezeket a fogalmakat, mivel kétszer történik feldolgozás: először fordítunk, majd másodszor a kapott bájtkódot

FuttatFuttatááss

A programot be kell tA programot be kell töölteni a memlteni a memóóririáába ba éés vs véégre gre kell hajtatni a processzorralkell hajtatni a processzorral

A futA futáás ks köözben elzben előőfordulfordulóó hibhibáák legtk legtööbbszbbszöör a r a program leprogram leáálllláássáához vezetnek, ezek a futhoz vezetnek, ezek a futáás alatti s alatti hibhibáák (runtime error).k (runtime error).

Page 22: JAVA - Kezdő · PDF fileJava-ban Tisztázni kell ezeket a fogalmakat, mivel kétszer történik feldolgozás: először fordítunk, majd másodszor a kapott bájtkódot

Compile time (FordCompile time (Fordííttáási idsi időő), ), Runtime (FutRuntime (Futáási idsi időő))

Bizonyos hibBizonyos hibáák fordk fordííttáási idejsi idejűű hibhibáák k Pl.:Pl.:ElElíírráás a forrs a forrááskskóódbandbanNem megengedett fNem megengedett füüggvggvéényhnyhíívváássParamParamééterezterezééss

Bizonyos hibBizonyos hibáák futk futáási idejsi idejűű hibhibáákk Pl.:Pl.: 00--val valval valóó osztosztáássA felhasznA felhasznáállóó inputjinputjáát nem sikert nem sikerüült lt éértelmeznirtelmezniNem lNem lééteztezőő filefileCsupa olyan dolog, amit nem lehet tudni fordCsupa olyan dolog, amit nem lehet tudni fordííttáási idsi időőbenben

Page 23: JAVA - Kezdő · PDF fileJava-ban Tisztázni kell ezeket a fogalmakat, mivel kétszer történik feldolgozás: először fordítunk, majd másodszor a kapott bájtkódot

JavaJava--ban ban TisztTisztáázni kell ezeket a fogalmakat, mivel kzni kell ezeket a fogalmakat, mivel kéétszer ttszer töörtrtéénik nik

feldolgozfeldolgozáás: els: előőszszöör fordr fordíítunk, majd mtunk, majd máásodszor a sodszor a kapott bkapott báájtkjtkóódot interpretdot interpretááljuk, ezzel pljuk, ezzel páárhuzamos a rhuzamos a futtatfuttatáás.s.

Mivel az Mivel az interpreterinterpreter inputja a binputja a báájtkjtkóód, amit a fordd, amit a fordííttóóáállllíított eltott előő, a b, a báájtkjtkóódban mint forrdban mint forrááskskóódban ldban léévvőő hibhibáák k ott voltak mott voltak máár az eredeti forrr az eredeti forrááskskóódban is. dban is.

Mivel a fordMivel a fordííttáás nem sikers nem sikerüülhetett volna hiblhetett volna hibáás s forrforrááskskóóddal, ezddal, ezéért a brt a báájtkjtkóódrdróól feltl feltéételezhetjtelezhetjüük, hogy k, hogy hibhibáátlantlan

ÍÍgy interpretgy interpretáálláás ks köözben mzben máár csak futr csak futáási idejsi idejűű hibhibáák k fordulhatnak elfordulhatnak előő..

Page 24: JAVA - Kezdő · PDF fileJava-ban Tisztázni kell ezeket a fogalmakat, mivel kétszer történik feldolgozás: először fordítunk, majd másodszor a kapott bájtkódot

Integrated Development EnvironmentIntegrated Development EnvironmentIntegrIntegráált Fejlesztlt Fejlesztőői Ki Köörnyezet rnyezet

IDEIDE a neve a a neve a szszáámmííttóóggéépp--programozprogramozáástst megkmegköönnynnyííttőő, r, réészben szben automatizautomatizáállóó programoknak. programoknak.

AlapvetAlapvetőő szerepe van a szerepe van a gyors alkalmazgyors alkalmazáásfejlesztsfejlesztéésbensben..

Az IDEAz IDE--k rendszerint tartalmaznak k rendszerint tartalmaznak egy szegy szöövegszerkesztvegszerkesztőőt a program forrt a program forrááskskóódjdjáának szerkesztnak szerkesztéésséére, re, egy fordegy fordííttóóprogramot vagy programot vagy éértelmezrtelmezőőt, t, fordfordííttáásautomatizsautomatizáálláási eszksi eszköözzööket, ket, valamint valamint nyomknyomköövetvetéésisi, , grafikusfelgrafikusfelüületlet--szerkesztszerkesztéési si éés s vvááltozatkezelltozatkezeléésisi lehetlehetőősséégeket sok egygeket sok egyééb mellett. b mellett.

A komolyabbakhoz, pA komolyabbakhoz, pééldldáául az ul az EclipseEclipse--hez kieghez kiegéészszííttőők tk töömege mege éérhetrhetőőel, amelyek a el, amelyek a rendszerfejlesztrendszerfejlesztééss egyegyééb fb fáázisaiban, pl. zisaiban, pl. dokumentdokumentáállááss, , projektmenedzsmentprojektmenedzsment stb. nystb. nyúújtanak nagy segjtanak nagy segíítstsééget.get.

Page 25: JAVA - Kezdő · PDF fileJava-ban Tisztázni kell ezeket a fogalmakat, mivel kétszer történik feldolgozás: először fordítunk, majd másodszor a kapott bájtkódot

Java Development Kit Java Development Kit Java FejlesztJava Fejlesztőők Csomagjak Csomagja

JDKJDK: a : a Sun MicrosystemsSun Microsystems egyik egyik JavaJava fejlesztfejlesztőőknek knek szszáánt termnt termééke. ke.

A Java nyelv elterjedA Java nyelv elterjedéése se óóta messze ez az egyik ta messze ez az egyik legnlegnéépszerpszerűűbb bb SDKSDK (fejleszt(fejlesztőőeszkeszkööz). z).

20062006 november 17november 17--éénn a Sun bejelentette, hogy a Sun bejelentette, hogy megnyitja a JDK megnyitja a JDK forrforrááskskóódjdjáátt, , éés s GNU General GNU General Public LicensePublic License (GPL) alatt adja ki a (GPL) alatt adja ki a szoftvertszoftvert..

Ez nagyrEz nagyréészt csak szt csak 20072007 mmáájus 8jus 8--áánn ttöörtrtéént meg az nt meg az OpenJDKOpenJDK kiadkiadáássáával.val.

Page 26: JAVA - Kezdő · PDF fileJava-ban Tisztázni kell ezeket a fogalmakat, mivel kétszer történik feldolgozás: először fordítunk, majd másodszor a kapott bájtkódot

A JDK tartalma A JDK tartalma A JDK elsA JDK elsőősorban programozsorban programozáási eszksi eszköözzöök szk szééles skles skáálláájjáát t

tartalmazza:tartalmazza: javacjavac –– A A fordfordííttóóprogramprogram, ami a forr, ami a forráásbsbóól ll léétrehozza a trehozza a

bbáájtkjtkóódot. dot. javajava –– A Java programok indA Java programok indííttáássáához szhoz szüüksksééges ges

interpreterinterpreter, mely k, mely kéépes pes éértelmezni a rtelmezni a javacjavac fordfordííttóó ááltal ltal genergeneráált class flt class fáájlokat. jlokat.

jarjar –– Archiver, ami a kivArchiver, ami a kiváálasztott class flasztott class fáájlokbjlokbóól egyetlen l egyetlen JAR fJAR fáájltjlt genergeneráál. l.

javadocjavadoc –– DokumentDokumentáácicióó kkéészszííttéésséére alkalmas eszkre alkalmas eszkööz, z, mely a forrmely a forrááskskóódban elhelyezett kommenteket dban elhelyezett kommenteket éértelmezi. rtelmezi.

jdbjdb –– DebuggerDebugger. . javapjavap –– Class fClass fáájl disassembler. jl disassembler. appletviewerappletviewer –– Appletek Appletek bbööngngéészszőő nnéélklküüli li

megtekintmegtekintéésséére re éés debuggols debuggoláássáára hasznra hasznáálhatlhatóó eszkeszkööz. z.

javahjavah extcheckextcheck aptapt jhatjhat jstackjstack jstatjstat jstatdjstatd jinfojinfo jmapjmap idljidlj policytoolpolicytool

Page 27: JAVA - Kezdő · PDF fileJava-ban Tisztázni kell ezeket a fogalmakat, mivel kétszer történik feldolgozás: először fordítunk, majd másodszor a kapott bájtkódot

Java Runtime EnvironmentJava Runtime EnvironmentJava FuttatJava Futtatóó KKöörnyezetrnyezet

Tartalmazza pl.:Tartalmazza pl.: JVM (Java JVM (Java VirtualVirtual MachineMachine) ( Java Virtu) ( Java Virtuáális Glis Géép)p)

az az éértelmezrtelmezőőtt Java osztJava osztáályklyköönyvtnyvtáárat brat báájtkjtkóódra forddra fordíított formtott formáábanban