Mi az a Memory Management

Méret: px
Mutatás kezdődik a ... oldaltól:

Download "Mi az a Memory Management"

Átírás

1 Memory management

2 Mi az a Memory Management A memória kezelés egy olyan aspektusa a programozásnak, ahol az egyes objektumok életciklusát vezéreljük, felszabadítva azokat, ha már nincs rájuk szükség. Ez sok szempontból kritikus feladat, a memória egyrészt véges, mástrészt a növekvő "memory footprint" teljesítmény csökkenést okoz.

3 Az eddigi tapasztalatok A c++ hoz képest a java jóval kényelmesebb! explicit meg kell határozni, mikor szabadítom fel a memóriát +1 dolog, amire figyelni kell sok hiba forrása, sok debug!

4 Ismerős fogalmak foglalás felszabadítás c malloc / calloc / stb free c++ new delete java new - (A legideálisabb)

5 static / stack / heap std::map<std::string, int> mymaponstack; mymaponstack["key"] = 5; std::map<std::string, int>* mymaponheap = new std::map<std::string, int>(); (*mymaponheap)["key"] = 5;

6 ios Memory Management ios platformon a memória kezelése referencia számlált megoldással valósul meg. Ha létrehozunk vagy másolunk egy objektumot, a referencia számlálója 1 lesz. Ezután ha más objektumo(k) birtokolni szeretné(k) a létrehozott objektumot, a referencia számláló nő. (+1) Ha a birtoklól objektumok már nem tartanak igényt a létrehozott objektumra lemondanak róla, a referencia számláló csökken. (-1) Ha a referencia számláló nullára csökken az objektum felszabadul.

7 Objective C nyelven //retain count = 1 NSNumber* number = [[NSNumber alloc] initwithfloat:12.3f]; //az objektum birtoklása, retain count = 2 [number retain]; //objektum elengedése (birtoklás lemondása), retain count = 1 [number release]; //objektum elengedése, retain count = 0, dealloc [number release];

8

9 [someobject retaincount] SOHA ne hasznaljuk! 1. The absolute retain count of an object may change at any time once an object has been passed through any system API. 2. Any subclass of any system provided class counts as through system API ; the retain count may be impacted by implementation details. 3. The retain count never reflects whether an object is autoreleased. 4. Autorelease is a per-thread concept whereas retain counts are global; race condition derived hilarity can easily ensue. 5. The retaincount method can never return Some classes are implemented as singletons some of the time. 7. Some classes may internally manipulate their retain count directly (I.e. no swizzle for you!). 8. While retain/release are effectively thread safe, there is always a race between calling retaincount and having the actual retain count change in some other execution context.

10 Objective C memory management négy fő szabály Te birtoklod azt az objektumot, amit te hoztál létre. Egy objektumot birtokba vehetsz, ha azt retain-eled. Ha már nincs szükséged egy objektumra, a birtoklási viszonyt meg kell hogy szüntestd Birtoklási viszonyt nem szüntethetsz meg olyan objektumnál, amit nem te birtokolsz

11 Te birtoklod azt az objektumot, amit te hoztál létre. A metódusok, amik objektumokat létrehoznak tartalmazzák az alábbi kifejezéseket: alloc, new, copy, mutablecopy Student* student = [[Student alloc] init]; NSNumber* somenumber = [NSNumber new]; NSString* copyofsomestring = [somestring copy];

12 Egy objektumot birtokba vehetsz, ha azt retain-eled. 1 Általában két föbb eset különíthető el: 1. accessor vagy init függvény esetén birtokolni szeretnénk adott objektumot, hogy beállíthassuk egy property (nonatomic, retain) NSString* name; - (void)setname:(nsstring *)newname { [_name release]; _name = [newname retain]; }

13 Egy objektumot birtokba vehetsz, ha azt retain-eled biztosítani szeretnénk hogy az adott objektum érvényes marad adott kontextusban id problematicnumber = nil; NSMutableArray* numbers = nil]; problematicnumber = [numbers objectatindex:0]; [numbers removeobjectatindex:0]; NSLog(@"problematicNumebr:%d", [problematicnumber intvalue]);

14 Ha már nincs szükséged egy objektumra, a birtoklási viszonyt meg kell hogy szüntestd [student release];

15 Birtoklási viszonyt nem szüntethetsz meg olyan objektumnál, amit nem te birtokolsz [someobjidontown release];

16 Property-k (attrib1, attrib2) type name; retain copy - lásd birtokba vétel - retain szabály - hasonlóképp az előzőhöz, csak nem retain-eljük, hanem egy másolatot készítüunk róla assign - sima értékadás memória management nélkül

17 Autorelease Az autorelease üzenet segítségével késleltetett release üzenetet küldhetünk az objektumoknak. Ez akkor hasznos, amikor egy objektum birtoklásáról lemondunk, de nem szeretnénk, hogy az azonnal felszabaduljon.

18 Autorelease példa //Vegyük példának ezt a gyártófüggvényt: + (Student*)studentWithName:(NSString*)name { Student* student = [[Student alloc] initwithname:name]; return [student autorelease]; } //valahol a kódban... Student* student = [Student studentwithname:@"vince"]; NSLog(@"sutdent name:%@", student.name); //ha birtokolni szeretnénk, küldünk neki retain üzenetet, ha nem akkor nem a mi felelőségünk a felszabadítás

19 Autorelease konvenció Minden olyan metódus, ami objektumot gyárt, és nincs benne az alloc, new, copy autorelese-elt objektumot ad vissza. Ez az elnevezésben is látszik: (sokszor osztályszintű metódusok) //str autorelase-elt NSString* str = [NSString stringwithformat:@"%d", 15]; //strretained-et birtoklom NSString* strretained = [[NSString alloc] initwithformat:@"%d", 15]; //tmpdict autorelase-elt NSDictionary* tmpdict = [NSDictionary dictionary]; //tmpdict-et birtoklom NSDictionary* tmpretained = [[NSDictionary alloc] init];

20 Autorelease egyszerűsít A két megoldás teljesen ekvivalens, de a második egyértelműbb, könnyebb követni UIView *view = [[UIView alloc] initwithframe:frame]; [self addsubview:view]; [view release]; UIView *view = [[[UIView alloc] initwithframe:frame] autorelease]; [self addsubview:view];

21 Mikor hivódik a release? Autorelease blokk végénél. NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; //... NSString* str = [NSString stringwithformat:@"%d", 15]; //... [pool drain];

22 Mikor nem érdemes használni autorelease-t? nagyon! szélsőséges példa, de előfordulhat... - (void)somemethod { for (int i = 0; i < ; i++) { id tempobject = [[[SomeClass alloc] init] autorelease]; //... } }

23 Ahoz, hogy a memory management működjön... Mindenkinek be kell tartania a szabályokat és követnie a konvenciókat. A rendelkezésre álló könyvtárak, keretrendszerek mind feltételezik ezek teljes megértését és használatát

24 ARC Automatic Reference Counting...

25 ARC "Automatic Reference Counting (ARC) is a compilerlevel feature that simplifies the process of managing the lifetimes of Objective-C objects. Instead of you having to remember when to retain or release an object, ARC evaluates the lifetime requirements of your objects and automatically inserts the appropriate method calls at compile time."

26 ARC használata Az ARC bevezetésével egy két megszorítás is jött. Például a klasszikus management metódusok nem hívhatók (retain, release, autorelase) com/library/ios/#releasenotes/general/whatsnewinios/arti cles/ios5.html

27 ARC property változások Két referencia típust különböztet meg. strong / weak A strong tökéletesen analóg a retain-es "régi" verzióval A weak egy intelligens assign. (ha a objektum melyreől referenciánk van felszabadul autómatikusan nil értéket kap a property!)

Objective-C PPKE-ITK 2013. 02. 14.

Objective-C PPKE-ITK 2013. 02. 14. Objective-C PPKE-ITK 2013. 02. 14. Objective-C bevezetés "Objective-C is a superset of C" Header:.h, osztálydeklarációk Implementáció:.m, osztályok implementációja Objective-C++:.mm Framework: Cocoa Szintaxis

Részletesebben

ios alkalmazásfejlesztés Koltai Róbert

ios alkalmazásfejlesztés Koltai Róbert ios alkalmazásfejlesztés Koltai Róbert robert.koltai@ponte.hu Mi az a block? Utasítások sorozata { }-ek között, amit egy objektumként tuduk kezelni. ios 4.0 és Mac OSX 10.6 óta 2 Egy példa a felépítésére

Részletesebben

ios alkalmazásfejlesztés

ios alkalmazásfejlesztés ios alkalmazásfejlesztés mi kell hozzá? Mac OS X ios Developer Program regisztráció (99$/year) SDK + Xcode eszközök 2 Mac OS X Finder Launchpad Spotlight Preview Terminal AppStore 3 Xcode felépítése 4

Részletesebben

Az iphone fejlesztés alapjai. I. előadás

Az iphone fejlesztés alapjai. I. előadás Az iphone fejlesztés alapjai I. előadás A ponte.hu Kft. 2001 óta a piacon Web iphone, Android, Nokia és Windows mobile fejlesztések Újszerű megoldások és technológiák keresése A kurzus menete 3x45+2x45

Részletesebben

Az iphone fejlesztés alapjai

Az iphone fejlesztés alapjai Az iphone fejlesztés alapjai I. előadás A ponte.hu Kft. 2001 óta a piacon Web iphone, Android, Nokia és Windows mobile fejlesztések Újszerű megoldások és technológiák keresése A kurzus menete 3x45+2x45

Részletesebben

Programozási nyelvek Java

Programozási nyelvek Java statikus programszerkezet Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 2. előadás csomag könyvtárak könyvtárak forrásfájlok bájtkódok (.java) (.class) primitív osztály

Részletesebben

Java és web programozás

Java és web programozás Budapesti M szaki Egyetem 2013. szeptember 18. 2. El adás Komplex szám public class Complex { private float repart_; private float impart_; public Complex() { repart_ = 0; impart_ = 0; public Complex(float

Részletesebben

JNDI - alapok. Java Naming and Directory Interface

JNDI - alapok. Java Naming and Directory Interface JNDI - alapok Java Naming and Directory Interface Naming Service Naming service: nevek hozzárendelése objektumokhoz, elérési lehetőség (objektumok/szolgáltatások lokalizálása), információk központosított

Részletesebben

Bevezetés a programozásba Előadás: Objektumszintű és osztályszintű elemek, hibakezelés

Bevezetés a programozásba Előadás: Objektumszintű és osztályszintű elemek, hibakezelés Bevezetés a programozásba 2 7. Előadás: Objektumszű és osztályszű elemek, hibakezelés ISMÉTLÉS Osztály class Particle { public: Particle( X, X, Y); virtual void mozog( ); ); virtual void rajzol( ) const;

Részletesebben

ios alkalmazásfejlesztés alapjai Nagy Aszter András BME MIK anagy@mik.bme.hu

ios alkalmazásfejlesztés alapjai Nagy Aszter András BME MIK anagy@mik.bme.hu ios alkalmazásfejlesztés alapjai Nagy Aszter András BME MIK anagy@mik.bme.hu 1 ios platform Apple mobil operációs rendszere iphone, ipod Touch, ipad OS X-en alapul De nem kompatibilis azzal Homogén rendszer

Részletesebben

Programozás C++ -ban

Programozás C++ -ban 8. Dinamikus objektumok Programozás C++ -ban Ahhoz hogy általános prolémákat is meg tudjunk oldani, szükség van arra, hogy dinamikusan hozhassunk létre vagy szüntethessünk meg objektumokat. A C programozási

Részletesebben

ios alkalmazásfejlesztés Koltai Róbert

ios alkalmazásfejlesztés Koltai Róbert ios alkalmazásfejlesztés Koltai Róbert mit vettünk a múlt órán? mi az a protocol? szintaktikája? mire jó a category? milyen memóriakezelés van ios-en? mi ennek a 4 állapota? mi a főszabály? + 4 része mi

Részletesebben

Széchenyi István Egyetem www.sze.hu/~herno

Széchenyi István Egyetem www.sze.hu/~herno Oldal: 1/6 A feladat során megismerkedünk a C# és a LabVIEW összekapcsolásának egy lehetőségével, pontosabban nagyon egyszerű C#- ban írt kódból fordítunk DLL-t, amit meghívunk LabVIEW-ból. Az eljárás

Részletesebben

Statistical Dependence

Statistical Dependence Statistical Dependence Petra Petrovics Statistical Dependence Deinition: Statistical dependence exists when the value o some variable is dependent upon or aected by the value o some other variable. Independent

Részletesebben

JAVA PROGRAMOZÁS 2.ELŐADÁS

JAVA PROGRAMOZÁS 2.ELŐADÁS Dr. Pál László, Sapientia EMTE, Csíkszereda JAVA PROGRAMOZÁS 2.ELŐADÁS 2014-2015 tavasz Tömbök, osztályok, objektumok, konstruktorok Tömbök 2 Referencia típusú változó Elemtípus Primitív Referencia: osztály,

Részletesebben

Osztályok. construct () destruct() $b=new Book(); $b=null; unset ($b); book.php: <?php class Book { private $isbn; public $title;

Osztályok. construct () destruct() $b=new Book(); $b=null; unset ($b); book.php: <?php class Book { private $isbn; public $title; PHP5 objektumok 1 Osztályok class, new book.php: construct () destruct() $b=new Book(); törlés: $b=null; vagy unset ($b); -elnevezési konvenciók private $isbn; public $title; function

Részletesebben

Java és web programozás

Java és web programozás Budapesti Műszaki Egyetem 2015. 02. 11. 2. Előadás Mese Néhány programozási módszer: Idők kezdetén való programozás Struktúrált Moduláris Funkcionális Objektum-orientált... Mese Néhány programozási módszer:

Részletesebben

Java és web programozás

Java és web programozás Budapesti M szaki Egyetem 2013. szeptember 25. 3. El adás User public class User { private String realname_; private String nickname_; private String password_; public User(String realname, String nickname)

Részletesebben

Smalltalk 3. Osztályok létrehozása. Készítette: Szabó Éva

Smalltalk 3. Osztályok létrehozása. Készítette: Szabó Éva Smalltalk 3. Osztályok létrehozása Készítette: Szabó Éva Metaosztály fogalma Mint korában említettük, a Smalltalkban mindent objektumnak tekintünk. Még az osztályok is objektumok. De ha az osztály objektum,

Részletesebben

iphone programozás alapjai

iphone programozás alapjai iphone programozás alapjai I. Gyakorlat A mai gyakorlat témái I. Számológép Egyszerű Interface Builder példa Outletek és Actionok bekötése II. Szakácskönyv Neki kezdünk a nagy feladatnak Megjelenítés elemei

Részletesebben

Java-ról Kotlinra. Ekler Péter AutSoft BME AUT. AutSoft

Java-ról Kotlinra. Ekler Péter AutSoft BME AUT. AutSoft Java-ról Kotlinra Ekler Péter peter.ekler@aut.bme.hu BME AUT Tartalom Java és Kotlin kapcsolata Hogyan próbálhatjuk ki? Kotlin kultúra kialakítása cégen belül Milyen a Kotlin a Java-hoz képest? Történet

Részletesebben

A C programozási nyelv V. Struktúra Dinamikus memóriakezelés

A C programozási nyelv V. Struktúra Dinamikus memóriakezelés A C programozási nyelv V. Struktúra Dinamikus memóriakezelés Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv V. (Struktúra, memóriakezelés) CBEV5 / 1 A struktúra deklarációja 1.

Részletesebben

C++ Gyakorlat jegyzet 5. óra. A C++ szabvány több memóriatípust különít el. Ezek közül elsősorban a stack-et használtuk eddig.

C++ Gyakorlat jegyzet 5. óra. A C++ szabvány több memóriatípust különít el. Ezek közül elsősorban a stack-et használtuk eddig. C++ Gyakorlat jegyzet 5. óra. A jegyzetet Umann Kristóf készítette Horváth Gábor gyakorlatán. (01. január 6.) 1. A C++ memóriamodellje A C++ szabvány több memóriatípust különít el. Ezek közül elsősorban

Részletesebben

Programozási nyelvek Java

Programozási nyelvek Java Objektum-orientált szemlélet - Egységbe zárás (incapsulation) - Információ elrejtés - Öröklődés altípusosság dinamikus kötés Öröklődés Programozási nyelvek Java - kiterjesztem, kibővítem, megváltoztatom

Részletesebben

Programozási nyelvek Java

Programozási nyelvek Java Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 13. előadás Throwable Error Exception RuntimeException IOException Saját (általában) Nem ellenörzött kivételek (Unchecked

Részletesebben

Programozási nyelvek Java

Programozási nyelvek Java -en objektumot tárolunk. Automatikus változók Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 3. előadás - végrehajtási vermen (execution stack) jönnek létre - alprogramok

Részletesebben

Az egészségügyi munkaerő toborzása és megtartása Európában

Az egészségügyi munkaerő toborzása és megtartása Európában Az egészségügyi munkaerő toborzása és megtartása Európában Vezetői összefoglaló Európai Egészségügyi Menedzsment Társaság. április Fogyasztó-, Egészség-, Élelmiszerügyi és Mezőgazdasági Végrehajtó Ügynökség

Részletesebben

Csatlakozás a BME eduroam hálózatához Setting up the BUTE eduroam network

Csatlakozás a BME eduroam hálózatához Setting up the BUTE eduroam network Csatlakozás a BME eduroam hálózatához Setting up the BUTE eduroam network Table of Contents Windows 7... 2 Windows 8... 6 Windows Phone... 11 Android... 12 iphone... 14 Linux (Debian)... 20 Sebők Márton

Részletesebben

Programozás II. 3. gyakorlat Objektum Orientáltság C++-ban

Programozás II. 3. gyakorlat Objektum Orientáltság C++-ban Programozás II. 3. gyakorlat Objektum Orientáltság C++-ban Tartalom OOP ismétlés Osztályok létrehozása Adattagok láthatóságai, elnevezési ajánlások Konstruktor, destruktor this pointer Statikus és dinamikus

Részletesebben

On The Number Of Slim Semimodular Lattices

On The Number Of Slim Semimodular Lattices On The Number Of Slim Semimodular Lattices Gábor Czédli, Tamás Dékány, László Ozsvárt, Nóra Szakács, Balázs Udvari Bolyai Institute, University of Szeged Conference on Universal Algebra and Lattice Theory

Részletesebben

Phenotype. Genotype. It is like any other experiment! What is a bioinformatics experiment? Remember the Goal. Infectious Disease Paradigm

Phenotype. Genotype. It is like any other experiment! What is a bioinformatics experiment? Remember the Goal. Infectious Disease Paradigm It is like any other experiment! What is a bioinformatics experiment? You need to know your data/input sources You need to understand your methods and their assumptions You need a plan to get from point

Részletesebben

Operációs rendszerek. Az Executive és a kernel Policy és mechanizmusok szeparálása Executive: policy - objektum kezelés Kernel: mechanizmusok:

Operációs rendszerek. Az Executive és a kernel Policy és mechanizmusok szeparálása Executive: policy - objektum kezelés Kernel: mechanizmusok: Operációs rendszerek MS Windows NT (2000) folyamatok Az Executive és a kernel Policy és mechanizmusok szeparálása Executive: policy - objektum kezelés Kernel: mechanizmusok: szálak ütemezése végrehajtásra

Részletesebben

Kölcsönös kizárás, atomicitás, szemafor.

Kölcsönös kizárás, atomicitás, szemafor. Kölcsönös kizárás, atomicitás, szemafor kertesz.gabor@nik.uni-obuda.hu Lock lock (object o) struktúra C#-ban Kölcsönös kizárás megvalósítása object o: szinkronizációs objektum Bármely közös változó lehet,

Részletesebben

Objektumok inicializálása

Objektumok inicializálása Objektumok inicializálása Miskolci Egyetem Általános Informatikai Tanszék Objektumok inicializálása CPP4 / 1 Tartalom public adattagok inicializálása felsorolással konstruktor objektum tömbök osztály típusú

Részletesebben

1. Gyakorlat: Telepítés: Windows Server 2008 R2 Enterprise, Core, Windows 7

1. Gyakorlat: Telepítés: Windows Server 2008 R2 Enterprise, Core, Windows 7 1. Gyakorlat: Telepítés: Windows Server 2008 R2 Enterprise, Core, Windows 7 1.1. Új virtuális gép és Windows Server 2008 R2 Enterprise alap lemez létrehozása 1.2. A differenciális lemezek és a két új virtuális

Részletesebben

Globális operátor overloading

Globális operátor overloading Programozás II. 9. gyakorlat Operátor overloading 2: Unáris operátorok, globálisan megvalósított operátorok, > operátorok Kivételkezelés, IO library Globális operátor overloading Előző alkalommal

Részletesebben

Bevezetés a programozásba II. 8. Előadás: Osztályok, objektumok, osztályszintű metódusok

Bevezetés a programozásba II. 8. Előadás: Osztályok, objektumok, osztályszintű metódusok Bevezetés a programozásba II 8. Előadás: Osztályok, objektumok, osztályszintű metódusok vektor.h #ifndef VEKTOR_H #define VEKTOR_H class Vektor { int meret, *mut; public: Vektor(int meret); int szamlal(int

Részletesebben

3. Osztályok II. Programozás II

3. Osztályok II. Programozás II 3. Osztályok II. Programozás II Bevezető feladat Írj egy Nevsor osztályt, amely legfeljebb adott mennyiségű nevet képes eltárolni. A maximálisan tárolható nevek számát a konstruktorban adjuk meg. Az osztályt

Részletesebben

2011.11.29. JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése

2011.11.29. JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése Tartalom Integrált fejlesztés Java platformon JUnit JUnit használata Tesztelési technikák Demo 2 A specifikáció alapján teszteljük a program egyes részeit, klasszikus V-modell szerint Minden olyan metódust,

Részletesebben

Osztályok. 4. gyakorlat

Osztályok. 4. gyakorlat Osztályok 4. gyakorlat Az osztály fogalma Az objektumok formai leírása, melyek azonos tulajdonsággal és operációkkal rendelkeznek. Osztályból objektum készítését példányosításnak nevezzük. Minden objektum

Részletesebben

SZERVER OLDALI JAVASCRIPT. 3. hét Javascript nyelvi elemek

SZERVER OLDALI JAVASCRIPT. 3. hét Javascript nyelvi elemek SZERVER OLDALI JAVASCRIPT 3. hét Javascript nyelvi elemek NYELVI ALAPOK: Ez sajnos igen száraz anyag, Viszont a megértékhez és a nyelv elsajátításához kell. Próbáljuk meg random gifekkel feldobni. MIRŐL

Részletesebben

Járműfedélzeti rendszerek II. 3. előadás Dr. Bécsi Tamás

Járműfedélzeti rendszerek II. 3. előadás Dr. Bécsi Tamás Járműfedélzeti rendszerek II. 3. előadás Dr. Bécsi Tamás 5.3. Mutatók,tömbök A mutató vagy pointer olyan változó, amely egy másik változó címét tartalmazza. A C nyelvű programokban gyakran használják a

Részletesebben

TestLine - OO Programozás alapjai Minta feladatsor

TestLine - OO Programozás alapjai Minta feladatsor 2016.09.20. 18:46:36 Oktató: n/a Kérdések száma: 16 kérdés Kitöltési idő: 29:45 Szélsőséges pontok: -196 pont +672 pont z Óbudai gyetem Programozás III című tárgyának előkövetelményeként létező Programozás

Részletesebben

Személyes adatváltoztatási formanyomtatvány - Magyarország / Personal Data Change Form - Hungary

Személyes adatváltoztatási formanyomtatvány - Magyarország / Personal Data Change Form - Hungary Személyes adatváltoztatási formanyomtatvány - Magyarország / Personal Data Change Form - Hungary Kitöltési útmutató: A formanyomtatványon a munkavállaló a személyes adatainak módosítását kezdeményezheti.

Részletesebben

Programozás C++ -ban 2007/7

Programozás C++ -ban 2007/7 Programozás C++ -ban 2007/7 1. Másoló konstruktor Az egyik legnehezebben érthető fogalom C++ -ban a másoló konstruktor, vagy angolul "copy-constructor". Ez a konstruktor fontos szerepet játszik az argumentum

Részletesebben

Objektumorientált programozás C# nyelven

Objektumorientált programozás C# nyelven Objektumorientált programozás C# nyelven 2. rész Öröklés és többalakúság Nemvirtuális metódusok, elrejtés Virtuális metódusok, elrejtés Típuskényszerítés, az is és as operátorok Absztrakt osztályok, absztrakt

Részletesebben

Memóriakezelés, dinamikus memóriakezelés

Memóriakezelés, dinamikus memóriakezelés Metódus: függvények és eljárások összefoglaló neve. Memóriakezelés, dinamikus memóriakezelés Nézzük végig, a C++ memóriakezelését. Alapvetően három fő memóriaterületet különböztetünk meg. Végrehajtási

Részletesebben

Programozás II. 4. Dr. Iványi Péter

Programozás II. 4. Dr. Iványi Péter Programozás II. 4. Dr. Iványi Péter 1 inline függvények Bizonyos függvények annyira rövidek, hogy nem biztos hogy a fordító függvényhívást fordít, hanem inkább az adott sorba beilleszti a kódot. #include

Részletesebben

Szoftvergyártás: gyártásvezérlés kód-figyeléssel

Szoftvergyártás: gyártásvezérlés kód-figyeléssel Szoftvergyártás: gyártásvezérlés kód-figyeléssel Előadó: Banai Miklós és Rakyta Péter Pályázatok: TECH_08-A2/2-2008-0089-SZOMIN08; KMOP-1.1.1-08/1-2008-0019; KMOP-1.1.2-08/1-2008-0002 Vízió: Szoftvergyártás

Részletesebben

Riak. Pronounced REE-ahk. Elosztott adattároló eszköz. Molnár Péter molnarp@ilab.sztaki.hu

Riak. Pronounced REE-ahk. Elosztott adattároló eszköz. Molnár Péter molnarp@ilab.sztaki.hu Riak Pronounced REE-ahk Elosztott adattároló eszköz Molnár Péter molnarp@ilab.sztaki.hu Mi a Riak? A Database A Data Store A key/value store A NoSQL database Schemaless and data-type agnostic Written (primarily)

Részletesebben

ARM processzorok felépítése

ARM processzorok felépítése ARM processzorok felépítése Az ARM processzorok több családra bontható közösséget alkotnak. Az Cortex-A sorozatú processzorok, ill. az azokból felépülő mikrokontrollerek a high-end kategóriájú, nagy teljesítményű

Részletesebben

Több app. Egy kódbázis

Több app. Egy kódbázis Több app Egy kódbázis Agenda Bevezető Technology stack A kód szervezése Debug és tesztelés CI Supercharge 2 Bevezető Adott egy vezető telekommunikációs vállalat Self-care alkalmazása Ezzel az alkalmazással

Részletesebben

Személyes adatváltoztatási formanyomtatvány- Magyarország / Personal Data Change Form - Hungary

Személyes adatváltoztatási formanyomtatvány- Magyarország / Personal Data Change Form - Hungary Személyes adatváltoztatási formanyomtatvány- Magyarország / Personal Data Change Form - Hungary KITÖLTÉSI ÚTMUTATÓ: A formanyomtatványon a munkavállaló a személyes adatainak módosítását kezdeményezheti.

Részletesebben

Szoftver-technológia II. Tervezési minták. Irodalom. Szoftver-technológia II.

Szoftver-technológia II. Tervezési minták. Irodalom. Szoftver-technológia II. Tervezési minták Irodalom Steven R. Schach: Object Oriented & Classical Software Engineering, McGRAW-HILL, 6th edition, 2005, chapter 8. E. Gamma, R. Helm, R. Johnson, J. Vlissides:Design patterns: Elements

Részletesebben

ISA szimulátor objektum-orientált modell (C++)

ISA szimulátor objektum-orientált modell (C++) Budapesti Műszaki és Gazdaságtudományi Egyetem ISA szimulátor objektum-orientált modell (C++) Horváth Péter Elektronikus Eszközök Tanszéke 2015. február 12. Horváth Péter ISA szimulátor objektum-orientált

Részletesebben

Generikus Típusok, Kollekciók

Generikus Típusok, Kollekciók Generikus Típusok, Kollekciók Tóth Zsolt Miskolci Egyetem 2013 Tóth Zsolt (Miskolci Egyetem) Generikus Típusok, Kollekciók 2013 1 / 26 Tartalomjegyzék 1 Enumeráció 2 Generikus Típusok 3 Kollekciók System.Collections

Részletesebben

A verem (stack) A verem egy olyan struktúra, aminek a tetejéről kivehetünk egy (vagy sorban több) elemet. A verem felhasználása

A verem (stack) A verem egy olyan struktúra, aminek a tetejéről kivehetünk egy (vagy sorban több) elemet. A verem felhasználása A verem (stack) A verem egy olyan struktúra, aminek a tetejére betehetünk egy új (vagy sorban több) elemet a tetejéről kivehetünk egy (vagy sorban több) elemet A verem felhasználása Függvény visszatérési

Részletesebben

Programozás C++ -ban

Programozás C++ -ban Programozás C++ -ban 4. Bevezetés az osztályokba 4.1 Az adatokhoz való hozzáférés ellenőrzése Egy C programban a struktúrák minden része mindig elérhető. Ugyanakkor ez nem a legkedvezőbb helyzet. Több

Részletesebben

iphone programozás alapjai I. Gyakorlat

iphone programozás alapjai I. Gyakorlat iphone programozás alapjai I. Gyakorlat A mai gyakorlat témái I. Számológép Egyszerű Interface Builder példa Outletek és Actionok bekötése II. Szakácskönyv Neki kezdünk a nagy feladatnak Megjelenítés elemei

Részletesebben

Programozás II gyakorlat. 8. Operátor túlterhelés

Programozás II gyakorlat. 8. Operátor túlterhelés Programozás II gyakorlat 8. Operátor túlterhelés Kezdő feladat Írjunk egy Vector osztályt, amely n db double értéket tárol. A konstruktor kapja meg az elemek számát. Írj egy set(int idx, double v) függvényt,

Részletesebben

EN United in diversity EN A8-0206/419. Amendment

EN United in diversity EN A8-0206/419. Amendment 22.3.2019 A8-0206/419 419 Article 2 paragraph 4 point a point i (i) the identity of the road transport operator; (i) the identity of the road transport operator by means of its intra-community tax identification

Részletesebben

A évi fizikai Nobel-díj

A évi fizikai Nobel-díj A 2012. évi fizikai Nobel-díj "for ground-breaking experimental methods that enable measuring and manipulation of individual quantum systems" Serge Haroche David Wineland Ecole Normale Superieure, Párizs

Részletesebben

Programozás. Osztályok, Származtatott osztályok. Fodor Attila

Programozás. Osztályok, Származtatott osztályok. Fodor Attila Programozás Osztályok, Származtatott osztályok Fodor Attila Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2010. március 11. Beadandó feladat

Részletesebben

White Paper. Grounding Patch Panels

White Paper. Grounding Patch Panels White Paper Grounding Patch Panels Tartalom 1. Bevezető... 1 2. A földelés jelentőssége... 3 3. AC elosztó rendszer... 3 4. Földelési rendszerek... 3 4.1. Fa... 3 4.2. Háló... 5 5. Patch panel földelési

Részletesebben

Programozás II gyakorlat. 7. Példák a polimorfizmus alkalmazásaira

Programozás II gyakorlat. 7. Példák a polimorfizmus alkalmazásaira Programozás II gyakorlat 7. Példák a polimorfizmus alkalmazásaira Probléma class A { public: ~A() { cout

Részletesebben

OOP #14 (referencia-elv)

OOP #14 (referencia-elv) OOP #14 (referencia-elv) v1.0 2003.03.19. 21:22:00 Eszterházy Károly Főiskola Információtechnológia tsz. Hernyák Zoltán adj. e-mail: aroan@ektf.hu web: http://aries.ektf.hu/~aroan OOP OOP_14-1 - E jegyzet

Részletesebben

C# versus Java. Óbudai Egyetem, Java Standard Edition Mérnök Informatikus szak, BSc Labor 3. Bedők Dávid v0.4

C# versus Java. Óbudai Egyetem, Java Standard Edition Mérnök Informatikus szak, BSc Labor 3. Bedők Dávid v0.4 C# versus Java Óbudai Egyetem, Java Standard Edition Mérnök Informatikus szak, BSc Labor 3 Bedők Dávid 2016.10.01. v0.4 Azonosságok I. Curly-bracket nyelvek ({}) C, C++, PHP, JavaScript, stb.) ProgrammingTheorem

Részletesebben

Komponens alapú fejlesztés

Komponens alapú fejlesztés Komponens alapú fejlesztés Szoftver újrafelhasználás Szoftver fejlesztésekor korábbi fejlesztésekkor létrehozott kód felhasználása architektúra felhasználása tudás felhasználása Nem azonos a portolással

Részletesebben

Android Pie újdonságai

Android Pie újdonságai Android Pie újdonságai Ekler Péter peter.ekler@aut.bme.hu BME AUT Tartalom Android 9 újdonságok Fejlesztői érdekességek API változások Mit tartogat a jövő? Android 9 újdonságok Testreszabott rendszer Egyszerűbb,

Részletesebben

Szálkezelés. Melyik az a hívás, amelynek megtörténtekor már biztosak lehetünk a deadlock kialakulásában?

Szálkezelés. Melyik az a hívás, amelynek megtörténtekor már biztosak lehetünk a deadlock kialakulásában? Szálkezelés 1. A szekvencia diagram feladata az objektumok egymás közti üzenetváltásainak ábrázolása egy időtengely mentén elhelyezve. Az objektumok életvonala egy felülről lefelé mutató időtengely. A

Részletesebben

Objektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN

Objektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN Objektum Orientált Programozás 11. Kivételkezelés 44/1B IT MAN B IT v: 2016.05.03 MAN Pici elmélet A Java kivételkezelésének célja a programfutás során keletkezett hibák kiszűrése és megfelelő kezelése.

Részletesebben

Széchenyi István Egyetem. Programozás III. Varjasi Norbert varjasin@sze.hu

Széchenyi István Egyetem. Programozás III. Varjasi Norbert varjasin@sze.hu Programozás III. Varjasi Norbert varjasin@sze.hu 1 A java virtuális gép (JVM) Képzeletbei, ideális számítógép. Szoftveresen megvalósított működési környezet. (az op. rendszer egy folyamata). Feladata:

Részletesebben

Angol Középfokú Nyelvvizsgázók Bibliája: Nyelvtani összefoglalás, 30 kidolgozott szóbeli tétel, esszé és minta levelek + rendhagyó igék jelentéssel

Angol Középfokú Nyelvvizsgázók Bibliája: Nyelvtani összefoglalás, 30 kidolgozott szóbeli tétel, esszé és minta levelek + rendhagyó igék jelentéssel Angol Középfokú Nyelvvizsgázók Bibliája: Nyelvtani összefoglalás, 30 kidolgozott szóbeli tétel, esszé és minta levelek + rendhagyó igék jelentéssel Timea Farkas Click here if your download doesn"t start

Részletesebben

Léptetőmotorok. Előnyök: Hátrányok:

Léptetőmotorok. Előnyök: Hátrányok: Léptetőmotorok A léptetőmotorok lényeges tulajdonsága, hogy egy körülforduláshoz hány lépés szükséges. Ezt megadhatják fokban, ekkor az egy lépésre eső szögelfordulást adják meg. Illetve megadhatják az

Részletesebben

Miután létrehoztuk, szeretnénk neki beszédesebb nevet adni. A név változtatásához a következőt kell tenni:

Miután létrehoztuk, szeretnénk neki beszédesebb nevet adni. A név változtatásához a következőt kell tenni: Excel objektumok Az excelben az osztályokat úgynevezett class modulokként hozzuk létre. Miután létrehoztuk, szeretnénk neki beszédesebb nevet adni. A név változtatásához a következőt kell tenni: View-ba

Részletesebben

C++ programozási nyelv

C++ programozási nyelv C++ programozási nyelv Gyakorlat - 13. hét Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. december A C++ programozási nyelv Soós Sándor 1/10 Tartalomjegyzék Objektumok

Részletesebben

Mobil alkalmazások fejlesztése. Készítette: Szabóné Nacsa Rozália

Mobil alkalmazások fejlesztése. Készítette: Szabóné Nacsa Rozália Mobil alkalmazások fejlesztése Készítette: Szabóné Nacsa Rozália S60 és UIQ Application suites UI implementation UI framework S 60 UIQ MOAP Symbian OS HW adaptation Hardware Symbian Symbian OS S60 C++

Részletesebben

9. MPI

9. MPI 9. MPI kertesz.gabor@nik.uni-obuda.hu MPI Message Passing Interface Elosztott memóriájú párhuzamos programozási API Gyk. folyamatok közötti kommunikáció de facto ipari standard Több száz előre definiált

Részletesebben

Mutatók és mutató-aritmetika C-ben március 19.

Mutatók és mutató-aritmetika C-ben március 19. Mutatók és mutató-aritmetika C-ben 2018 március 19 Memória a Neumann-architektúrában Neumann-architektúra: a memória egységes a címzéshez a természetes számokat használjuk Ugyanabban a memóriában van:

Részletesebben

Programozási nyelvek II.: JAVA

Programozási nyelvek II.: JAVA Programozási nyelvek II.: JAVA 13. gyakorlat 2017. december 11-15. 13. gyakorlat Programozási nyelvek II.: JAVA 1 / 32 Az 13. gyakorlat tematikája Generikus típusokés öröklődés Clone Comparator Névtelen

Részletesebben

SQL Server High Availability

SQL Server High Availability SQL Server High Availability Bevezetés az SQL Server magas rendelkezésre állási megoldásaiba Berke János SQL Server MVP 2016.05.18 Bemutatkozás 10+ év SQL Server tapasztalat Oktató Kapcsolat: Email: Janos@iamBerke.com

Részletesebben

Bevezetés a Programozásba II 11. előadás. Adatszerkezetek megvalósítása. Adatszerkezetek megvalósítása Adatszerkezetek

Bevezetés a Programozásba II 11. előadás. Adatszerkezetek megvalósítása. Adatszerkezetek megvalósítása Adatszerkezetek Pázmány Péter Katolikus Egyetem Információs Technológiai és Bionikai Kar Bevezetés a Programozásba II 11. előadás 2014.05.12. Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto Adatszerkezetek

Részletesebben

Objektumorientált programozás C# nyelven

Objektumorientált programozás C# nyelven Objektumorientált programozás C# nyelven 1. rész Osztályok és objektumok Mezık és metódusok Konstruktor és destruktor Láthatósági szintek Névterek és hatókörök Osztály szintő tagok Beágyazott osztályok

Részletesebben

Programozási nyelvek Java

Programozási nyelvek Java Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 9. előadás Interface - típust vezet be, de osztálypéldány nem készíthető belőle (statikus típust ad) - több osztály is

Részletesebben

Miskolci Egyetem Gazdaságtudományi Kar Üzleti Információgazdálkodási és Módszertani Intézet. Correlation & Linear. Petra Petrovics.

Miskolci Egyetem Gazdaságtudományi Kar Üzleti Információgazdálkodási és Módszertani Intézet. Correlation & Linear. Petra Petrovics. Correlation & Linear Regression in SPSS Petra Petrovics PhD Student Types of dependence association between two nominal data mixed between a nominal and a ratio data correlation among ratio data Exercise

Részletesebben

A BÜKKI KARSZTVÍZSZINT ÉSZLELŐ RENDSZER KERETÉBEN GYŰJTÖTT HIDROMETEOROLÓGIAI ADATOK ELEMZÉSE

A BÜKKI KARSZTVÍZSZINT ÉSZLELŐ RENDSZER KERETÉBEN GYŰJTÖTT HIDROMETEOROLÓGIAI ADATOK ELEMZÉSE KARSZTFEJLŐDÉS XIX. Szombathely, 2014. pp. 137-146. A BÜKKI KARSZTVÍZSZINT ÉSZLELŐ RENDSZER KERETÉBEN GYŰJTÖTT HIDROMETEOROLÓGIAI ADATOK ELEMZÉSE ANALYSIS OF HYDROMETEOROLIGYCAL DATA OF BÜKK WATER LEVEL

Részletesebben

1. Template (sablon) 1.1. Függvénysablon Függvénysablon példányosítás Osztálysablon

1. Template (sablon) 1.1. Függvénysablon Függvénysablon példányosítás Osztálysablon 1. Template (sablon) 1.1. Függvénysablon Maximum függvény megvalósítása függvénynév túlterheléssel. i n l i n e f l o a t Max ( f l o a t a, f l o a t b ) { return a>b? a : b ; i n l i n e double Max (

Részletesebben

Pénzügyi algoritmusok

Pénzügyi algoritmusok Pénzügyi algoritmusok A C++ programozás alapjai Tömbök (3. rész) Konstansok Kivételkezelés Tömbök 3. Többdimenziós tömbök Többdimenziós tömbök int a; Többdimenziós tömbök int a[5]; Többdimenziós tömbök

Részletesebben

Segédanyag: Java alkalmazások gyakorlat

Segédanyag: Java alkalmazások gyakorlat Segédanyag: Java alkalmazások gyakorlat Készítette: Szabó Attila 2009/2010-2 félév, 12. gyakorlat 1 Távoli metódushívás Java-ban (RMI) Java-ban a távoli metódushívás ( Remote Method Invocation, RMI) egy

Részletesebben

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 2.ELŐADÁS. Objektumorientált programozás 2015-2016

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 2.ELŐADÁS. Objektumorientált programozás 2015-2016 Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 2.ELŐADÁS 2015-2016 Objektumorientált programozás OOP PHP-ben 2 A PHP az 5.0-as verziójától megvalósítja az OO eszközrendszerét OO eszközök:

Részletesebben

Basic Arrays. Contents. Chris Wild & Steven Zeil. May 28, Description 3

Basic Arrays. Contents. Chris Wild & Steven Zeil. May 28, Description 3 Chris Wild & Steven Zeil May 28, 2013 Contents 1 Description 3 1 2 Example 4 3 Tips 6 4 String Literals 7 4.1 Description...................................... 7 4.2 Example........................................

Részletesebben

Bevezetés a programozásba II. 5. Előadás: Másoló konstruktor, túlterhelés, operátorok

Bevezetés a programozásba II. 5. Előadás: Másoló konstruktor, túlterhelés, operátorok Bevezetés a programozásba II 5. Előadás: Másoló konstruktor, túlterhelés, operátorok Emlékeztető struct Vektor { int meret, *mut; Vektor(int meret); int szamlal(int mit); }; int Vektor::szamlal(int mit)

Részletesebben

1. Ismerkedés a Hyper-V-vel, virtuális gépek telepítése és konfigurálása

1. Ismerkedés a Hyper-V-vel, virtuális gépek telepítése és konfigurálása 1. Ismerkedés a Hyper-V-vel, virtuális gépek telepítése és konfigurálása 1.1. Új virtuális gép és a Windows Server 2012 R2 Datacenter alap lemez létrehozása 1.2. A differenciális lemezek és a két új virtuális

Részletesebben

Smart Pointer koncepciója

Smart Pointer koncepciója Smart Pointer koncepciója ( Egyszerű Smart Pointer implementálása C++ nyelven ) Bevezetés Mik a smart pointer-ek 1? A válasz egyszerű; a smart pointer-ek olyan mutatók amik okosak. Mit is jelent ez pontosan?

Részletesebben

C#, OOP. Osztályok tervezése C#-ban

C#, OOP. Osztályok tervezése C#-ban C#, OOP Osztályok tervezése C#-ban OOP Létrehozás (creating) Megszüntetés (destroying) Túlterhelés (overlading) Felsorolás típus (enumerated types) 2 Hajó osztály Sailboat class using System; class Sailboat

Részletesebben

Stateless Session Bean

Stateless Session Bean Stateless Session Bean Készítsünk egy stateless session bean-t, amellyel összeadhatunk két számot. Hozzunk létre egy Dynamic Web projectet File New Other itt a következőket kell választani: Web Dynamic

Részletesebben

Pelda öröklődésre: import java.io.*; import java.text.*; import java.util.*; import extra.*;

Pelda öröklődésre: import java.io.*; import java.text.*; import java.util.*; import extra.*; Java osztály készítése, adattagok, és metódusok, láthatóság, konstruktor, destruktor. Objektum létrehozása, használata, öröklés. ( Előfeltétel 12. Tétel ) Az osztály egy olyan típus leíró struktúra, amely

Részletesebben

Alkalmazott Modul III 6. előadás. Objektumorientált programozás: öröklődés és polimorfizmus

Alkalmazott Modul III 6. előadás. Objektumorientált programozás: öröklődés és polimorfizmus Eötvös Loránd Tudományegyetem Természettudományi Kar Alkalmazott Modul III 6. előadás Objektumorientált programozás: öröklődés és polimorfizmus 2011.10.24. Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto

Részletesebben

Best Practices for TrusBest Practices for Trusted Digital Repositories in HOPE. ted Digital Repositories in HOPE.

Best Practices for TrusBest Practices for Trusted Digital Repositories in HOPE. ted Digital Repositories in HOPE. Best Practices for TrusBest Practices for Trusted Digital Repositories in HOPE. ted Digital Repositories in HOPE. OAIS alapú digitális archívumok: best practice and HOPE (2010-2013) http://www.peoplesheritage.eu/pdf/d5_1_grant250549_ho

Részletesebben

HU ISSN 1787-5072 www.anyagvizsgaloklapja.hu 62

HU ISSN 1787-5072 www.anyagvizsgaloklapja.hu 62 Kockázatalapú karbantartás Új törekvések* Fótos Réka** Kulcsszavak: kockázatalapú karbantartás és felülvizsgálat, kockázatkezelés, kockázati mátrix, API RBI szabványok Keywords: risk-based inspection and

Részletesebben