Heap Vs. Empilez en Java

March 3

Heap Vs. Empilez en Java


Les programmes Java utilisent la mémoire de l'ordinateur de différentes manières. Si les programmeurs Java ont au moins une compréhension de base de la façon dont la mémoire est gérée dans la langue, ils ont une meilleure chance de créer des applications performantes, efficaces élevées. Comme avec la plupart des aspects de la programmation, il est nécessaire de comprendre tous les détails du modèle de gestion de la mémoire Java de mise en œuvre, mais saisir les deux types de mémoire et de leur impact sur la programmation est utile.

Types et la mémoire

les données de modèle de variables Java et des composants de code de différentes manières. Selon le type et l'étendue d'une variable, il peut être stocké soit dans le segment de mémoire ou la mémoire de la pile. mémoire Stack peut être considéré comme court terme, tas de long terme. Lorsque vous approchez d'un projet de développement en Java, vous devrez prendre des décisions continuelles sur la façon dont vous les éléments de données modèle, qui détermineront dans quels types de mémoire, ils sont stockés. Prendre ces décisions avec une compréhension des implications permet aux développeurs de maximiser l'efficacité du programme.

Primitives

Les types primitifs en Java comprennent le nombre et le caractère types de base tels que "int" pour les valeurs entières et primitifs "char" pour les caractères primitifs. Lorsque des types de magasins Java primitifs, les informations stockées se compose essentiellement des valeurs variables, de sorte que la quantité d'utilisation de la mémoire a tendance à être inférieure à celle des types d'objets. Si une variable de type primitif existe seulement comme une variable locale dans un fichier de classe d'application, Java va stocker dans la mémoire pile.

Objets

Les types d'objets en Java comprennent à la fois les types fournis dans la langue elle-même et les types définis par les programmeurs utilisant les déclarations de classe. Quand un programme Java crée un objet, la JVM (Java Virtual Machine) alloue une section de mémoire de tas pour elle. Dans le cadre du programme, le nom de variable attribué à un type d'objet agit comme une référence à cet emplacement en mémoire. L'espace pour un objet dans la mémoire de tas peut contenir les données à l'intérieur de l'objet, y compris les variables de tout type, que ce soit primitive ou de l'objet.

Portée variable

champ variable a un impact direct sur la gestion de la mémoire dans un programme Java. Pour créer des applications efficaces, les développeurs cherchent à minimiser la portée requise pour toute variable ou élément de données donné. Par exemple, ce qui suit illustre une instruction conditionnelle avec une variable locale à l'intérieur:

int someNumber = 3;

if (someNumber> 0) {

int doubleNumber = someNumber * 2;

System.out.println (doubleNumber);

}

Cet exemple trivial effectue un calcul sur une variable, écrit le résultat sur. La variable stockant le résultat du calcul est déclarée à l'intérieur du conditionnel, donc ne sont pas accessibles à tout moment après le bloc conditionnel. En général, les variables donnant le montant minimum de la portée nécessaire pour eux de fonctionner correctement, aide les programmes utilisent aussi peu de mémoire que possible.

Collecte des ordures

Le Garbage Collector JVM gère la quantité de mémoire qui est disponible pour un programme. Si un objet ou un autre type est plus utilisé dans une application (par exemple, si elle a rempli sa fonction et est plus nécessaire), la mémoire qu'il utilise devrait idéalement être mis à disposition à nouveau si nécessaire. Le Garbage Collector est en mesure de réaffecter la mémoire de tas si une application est en cours d'exécution faible sur les ressources de mémoire. Si une variable d'objet est hors de portée, sa mémoire peut être un candidat pour la collecte des ordures.


          

Post a comment: