Développeurs Java créées avec deux principaux objectifs à l'esprit. Tout d'abord, pour créer un langage de programmation entièrement construit suivant un paradigme orienté objet . Deuxièmement, afin de rendre le langage Java de fonctionner sur le dessus de la machine virtuelle Java (JVM ) d'assurer la portabilité multi-plateforme . Parce que Java a couru sur la JVM et n'a pas d'interface directe avec le matériel, la machine virtuelle Java peut gérer de nombreux problèmes inhérents à la programmation orientée objet , à savoir la gestion de la mémoire . Le processus par lequel la JVM manipulé mémoire est appelée « collecte des ordures. " Pour comprendre collection , un programmeur a besoin de comprendre les concepts de programmation orientée objet , y compris la façon dont la mémoire est gérée . Object-Oriented Programming
programmation orientée objet (POO ) représente un paradigme de programmation dans lequel les programmeurs de créer des données "objets" dans le cadre de leur code. Les programmeurs utilisent ces objets pour représenter les types de données complexes qui contiennent à la fois un état et d'exposer certains comportements. Ainsi, par exemple , un programmeur crée une classe " Sphère " pour un programme qui fonctionne à partir de calculs de sphères . La classe Sphere peut contenir des données pour un rayon ( son état ) et une fonction pour calculer sa propre zone ( son comportement ) .
Objets et mémoire
Java et C + + sont des langages de programmation orientée objet . Cependant, la différence entre les deux illustre la nécessité pour la collecte des ordures dans Java. En C + + , un programmeur traite directement avec le système d'exploitation. Cela signifie que lorsqu'un programmeur souhaite créer un objet, elle peut faire une de deux choses . D'abord, elle peut créer un «superficielle» exemplaire au cours du processus de codage. Deuxièmement, et c'est plus fréquent , elle peut écrire du code qui crée des objets dynamiquement en mémoire " profonde " au cours de l'exécution de code à travers l'utilisation de « pointeurs ».
Pointeurs et fuites de mémoire
Un programme C + + utilise des pointeurs pour allouer de la mémoire lors de l'exécution de code. Un «pointeur» contient une référence à un emplacement de mémoire . Quand un programmeur doit concevoir code qui crée des objets lors de l'exécution , il utilise des pointeurs pour référencer mémoire à mettre de côté pour la création d'objets . Ce pointeur est alors la seule chose qui fait référence à cet objet. Si le programme se déplacer la référence de pointeur lors de l'exécution , l'objet " pointé " ne peut plus être utilisé. Il se trouve simplement dans la mémoire sans aucun moyen d'y accéder. Lorsque de grandes quantités d'objets sont créées par des pointeurs et laissé dans la mémoire due à la perte de la référence de pointeur , c'est ce qu'on appelle une " fuite de mémoire " et peut causer de graves problèmes dans un programme.
Garbage Collection
En C + + , la responsabilité de la gestion de la mémoire et prévenir les fuites de mémoire tombe carrément sur le programmateur . Le langage Java , contrairement au C + + , fonctionne sur la JVM , résumé du système d'exploitation. Pour cette raison, le programmeur peut ignorer la gestion de la mémoire du système en ce qui concerne les objets. Au contraire, la JVM garde un œil sur les objets et les références existantes , et supprime ceux qui ne sont plus en usage. De cette façon, la tâche de gérer la mémoire tombe sur la JVM, et le programmeur peut travailler sur différentes tâches tout en confiant que la gestion de la mémoire est pris en charge .
Collecte des ordures et la JVM 1.4.1 < br > Photos
La version 1.4.1 de la JVM offre un modèle pour la collecte des ordures . La JVM utilise une division paradigme d'âge , alors que les «jeunes» des objets et des «anciens» des objets se trouve en mémoire . La JVM peut favoriser objets jeunes aux vieux objets en fonction de la fréquence à laquelle les jeunes copie des objets durant l'exécution du programme . Objets anciens , alors , sont considérés comme importants et, par conséquent , pas marqué pour la suppression . Le système de collecte des ordures 1.4.1 JVM utilise une méthode de " train" de collection /suppression, en permettant l'augmentation petite collecte des ordures passe plutôt que de grandes collections lents. En outre, la JVM 1.4.1 tire avantage des systèmes de multitraitement en offrant le garbage collection simultané sur plusieurs processeurs .