Ontwikkelaars gemaakt Java met twee primaire doelen voor ogen . Ten eerste , een programmeertaal volledig gebouwd naar aanleiding van een object - georiënteerde paradigma te creëren . Ten tweede , om de Java-taal draaien op de top van de Java Virtual Machine ( JVM ) zorgen voor cross-platform draagbaarheid. Omdat Java liep op de JVM en niet -interface rechtstreeks met de hardware , kan de JVM veel van de problemen die inherent zijn aan object - georiënteerd programmeren , namelijk geheugenbeheer beheren . De procedure die door de JVM behandeld geheugen heet " garbage collection . " Te verzamelen begrijpen , een programmeur nodig heeft om object - georiënteerd programmeren concepten , inclusief de wijze waarop geheugen wordt beheerd begrijpen . Object - Oriented Programming Object - georiënteerd programmeren ( OOP ) is een paradigma van de programmering waarin programmeurs creëren data 'objecten' als onderdeel van hun code . Programmeurs gebruiken deze objecten om complexe data types die zowel een toestand bevatten vertegenwoordigen en vertonen bepaalde gedragingen . Dus, bijvoorbeeld , een programmeur creëert een " Gebied " klasse voor een programma dat werkzaamheden waarbij berekeningen van bolletjes heeft . De Sphere klasse kan gegevens voor een straal ( de staat) en een functie om de eigen regio te berekenen ( het gedrag ) bevatten . Objecten en Memory Zowel Java en C + + zijn OOP talen . Het verschil tussen de twee illustreert de noodzaak voor garbage collection in Java . In C + + , een programmeur gaat rechtstreeks met het besturingssysteem . Dit betekent dat wanneer een programmeur wil een object te maken , kunnen zij een van twee dingen doen . Ten eerste , kan ze een " ondiep " kopie te maken tijdens het coderen proces . Ten tweede , en vaker , kan ze code die objecten creëert dynamisch in " deep " geheugen tijdens de uitvoering van code door het gebruik van te schrijven ' pointers . " Pointers en Geheugenlekken < br > A C + + programma maakt gebruik van pointers naar het geheugen tijdens de uitvoering van de code toe te wijzen . Een " pointer " bevat een verwijzing naar een geheugenlocatie . Wanneer een programmeur nodig heeft om code die objecten creëert tijdens de werking te ontwerpen , maakt hij gebruik van pointers om te verwijzen naar het geheugen gereserveerd voor het maken van objecten . Dat pointer is dan het enige dat verwijzingen dat object . Mocht het programma verplaatst u de aanwijzer verwijzing tijdens de uitvoering , het object " wees op " kan niet meer worden gebruikt . Het zit gewoon in het geheugen met geen manier om het te openen . Wanneer grote hoeveelheden objecten worden gemaakt door middel van pointers en meer in het geheugen door het verlies van aanwijzerverwijzing , staat dit bekend als een " geheugenlek " en kan ernstige problemen in een programma veroorzaken . Garbage Collection < br > In C + + , de verantwoordelijkheid voor het beheer van het geheugen en het voorkomen van geheugenlekken valt vierkant op de programmeur . De taal Java , C + + tegenstelling , draait op de JVM , geabstraheerd van het besturingssysteem . Hierdoor kan de programmeur systeem geheugenbeheer negeren betreft objecten . Integendeel, de JVM houdt lusjes op bestaande objecten en referenties , en verwijdert degenen die niet meer in gebruik zijn . Op deze manier , de taak van het beheren van het geheugen valt op de JVM , en de programmeur kan werken op verschillende taken, terwijl er vertrouwen in dat geheugenbeheer wordt verzorgd . Garbage Collection en de 1.4.1 JVM < br > de 1.4.1 versie van de JVM biedt een model voor garbage collection . De JVM maakt gebruik van een leeftijd divisie paradigma , terwijl " jong " voorwerpen en " oude " objecten in het geheugen bestaat. De JVM kan jonge objecten te bevorderen om oude objecten op basis van hoe vaak de jonge voorwerpen terwijl het programma worden gekopieerd . Oude voorwerpen , vervolgens , worden belangrijk geacht en daarom niet gemarkeerd voor verwijdering . De 1.4.1 JVM garbage collection systeem maakt gebruik van een " trein" -methode van inzameling /verwijdering , doordat steeds meer kleine garbage collection passeert in plaats van grotere , tragere collecties . Ook de 1.4.1 JVM maakt gebruik van multiprocessing systemen door het bieden van gelijktijdige garbage collection op meerdere processors .
|