La Machine Virtuelle Java représente la base du langage de programmation Java. Le logiciel agit comme un tampon de mise en oeuvre entre le code Java et le système informatique sous-jacent . Cela permet au code Java pour fonctionner sur n'importe quel système tel quel , ce qui augmente la portabilité. Depuis la JVM existe comme un environnement dans lequel exécuter le code, il contient sa propre configuration de la mémoire, y compris la mémoire profond et un espace de tas. L'espace de tas constitue une partie importante de la mémoire JVM, contenant les données d'exécution de temps applications critiques . Objets et mémoire
Java représente un langage purement programmation orientée objet , ce qui signifie que Java contient les avantages de la programmation orientée objet, y compris l'héritage et le polymorphisme . Pour comprendre ces avantages, la JVM doit avoir un espace pour stocker des objets instanciés . Ces objets n'existent pas dans la mémoire immédiate d'un fil d' exécution de code Java. Au contraire, le code Java déclare "références" aux objets qui stockent un emplacement dans la mémoire profonde et à long terme .
Le tas et la pile
Le tas et le empiler représentent la différence entre la mémoire à long et à court terme à un programme d'exécution, indépendamment du langage orienté objet . La pile se réfère aux variables immédiates et appels à l'intérieur d'un programme d'exécuter la méthode. Cela inclut des variables scalaires, tels que les entiers et les octets, ainsi que des fonctions appelées . Le segment de mémoire, d'autre part , représente l'emplacement où sont stockés les objets créés par le programme. Les objets sont alloués dynamiquement dans le tas et y restent jusqu'à ce n'était plus requise par le programme.
JVM mémoire
Designers développé le système de mémoire de la JVM pour imiter l' système orienté objet d'autres langages tels que C + + . Chaque thread d'exécution du code Java dans la machine virtuelle Java a sa propre pile, représentant ses variables scalaires locaux et les appels de fonction. En outre, la JVM dispose de son propre espace de tas . Quand un programme crée une référence à un objet, cet objet attire mémoire de l'espace de tas collective.
Le tas JVM en mémoire
L'espace de tas n'est qu'une partie de la mémoire JVM totale , avec espace de pile et d'autres allocations de mémoire pour les fonctions essentielles et le code JVM. Cependant, l'espace de tas représente un élément essentiel de la JVM en ce qu'elle est le véhicule par lequel les objets sont créés . En outre, la JVM a un programme de collecte des ordures intégré à supprimer des objets inutilisés dans le tas . En plus des langages orientés objet , les objets ont dû être supprimés manuellement , ou en utilisant risquaient l'espace de tas dans ce qu'on a appelé une " fuite de mémoire ". Garbage collector JVM, cependant , surveille le tas et supprime des objets anciens .