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

Post on 06-Feb-2018

226 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

JAVAJAVA

A NYELV NEVEA NYELV NEVE

•• Kezdetben: OakKezdetben: Oak

•• James GoslingJames Gosling

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

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

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

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

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

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

SpecifikSpecifikáácicióó

TervezTervezééss

KKóódoldolááss

TesztelTesztelééss

DokumentDokumentáállááss

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

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

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óó

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ó.

ÉÉrtelmezrtelmezőő

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

ÉÉ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

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

FordFordííttóó

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

CompilerCompiler

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

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

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őő

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)

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óó..

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).

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

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őő..

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.

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.

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

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

top related