programmes Java utilisent la mémoire de l'ordinateur de différentes manières. Si les programmeurs Java ont au moins une connaissance de base de la façon dont la mémoire est gérée dans la langue, ils ont une bien meilleure chance de créer des applications efficaces et performants . Comme avec la plupart des aspects de la programmation , il n'est pas nécessaire de comprendre tous les détails de mise en œuvre du modèle de gestion de la mémoire Java , mais saisir les deux types de mémoire et leur impact sur la programmation est utile . Types et la mémoire
Java variables de données de modèles et de composants de code de diverses manières. Selon le type et la portée d'une variable, il peut être stocké soit en tas ou la pile mémoire . Mémoire de la pile peut être considéré comme à court terme , tas comme à long terme. Lorsque vous approchez d' un projet de développement en Java, vous aurez à prendre des décisions continuelles sur la façon dont vous le modèle des éléments de données , ce qui permettra de déterminer dans quels types de mémoire ils sont stockés. Prendre ces décisions avec une meilleure compréhension des implications permet aux développeurs de maximiser l'efficacité du programme.
Primitives
les types primitifs en Java incluent le nombre de base et types de caractères tels que "int" pour les valeurs entières primitives et "char" pour les caractères primitifs. Lorsque Java stocke les types primitifs , les informations stockées se compose essentiellement des valeurs des variables , de sorte que la quantité de mémoire utilisée tend à être plus faible qu'avec les 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 de la pile.
Objets
types d'objets
Java incluent à 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, de la JVM (Java Virtual Machine) alloue une partie de la mémoire du tas pour cela. Dans le cadre du programme , du nom de variable pour un type d' objet agit comme une référence à cet emplacement dans la mémoire. L'espace d'un objet à l'intérieur de la mémoire de tas peut contenir les données dans l'objet , y compris les variables de tout type , que ce soit
Portée
portée de la variable primitive ou un objet. Variable a un impact direct sur la gestion de la mémoire dans un programme Java. Pour créer des applications performantes , les développeurs cherchent à minimiser la portée nécessaire pour toute variable donnée ou un élément de données. Par exemple, le suivant 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, écrire le résultat sur . La variable contenant le résultat du calcul est déclarée à l'intérieur du conditionnel , n'est donc pas accessible à tout moment après le bloc conditionnel . En général, les variables donnant le montant minimum de la portée nécessaire pour les faire fonctionner correctement contribue programmes utilisent aussi peu de mémoire que possible.
Garbage Collection
Le Garbage Collector JVM gère la quantité de mémoire qui est disponible pour un programme . Si un type d'objet ou d'un autre n'est plus utilisé dans une application ( par exemple , si elle a rempli sa fonction et ne sera plus nécessaire) , la mémoire qu'il utilisait devrait idéalement être de nouveau disponible si nécessaire. Le garbage collector est en mesure de réaffecter la mémoire de tas si une demande est faible sur les ressources mémoire . Si une variable objet est hors de portée, sa mémoire peut être un candidat pour la collecte des ordures .