Bonjour,
Je voudrais vous poser une question. en java on ne libère pas la mémoire, est-ce qu'on peut l'allouer ?? (équivalent de l'utulisation du malloc et new )
Merci
Bonjour,
Je voudrais vous poser une question. en java on ne libère pas la mémoire, est-ce qu'on peut l'allouer ?? (équivalent de l'utulisation du malloc et new )
Merci
Salut,
Heu...
Code : Sélectionner tout - Visualiser dans une fenêtre à part new Object();
a++
Il n'y a pas de malloc, mais le new est omniprésent. Il sert à construire :
- soit un nouvel objet, ce qui entre autre alloue la mémoire nécessaire pour le stocker.
- soit un tableau, ce qui alloue assez de mémoire pour contenir un tableau de la taille indiquée contenant le type indiqué.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Date date = new Date(); byte[] buffer = new byte[4096];
"on ne libère pas la mémoire" > ce n'est pas tout à fait vrai. On ne libère pas explicitement la mémoire serait plus juste, car le "garbage collector" effectue bien des libérations de mémoire allouée.
Note : on peut appeler explicitement le GC mais cela est très fortement déconseillé dans 99,9% des cas.
L'allocation de mémoire s'obtient avec la commande "new" : la création d'un nouvel objet alloue la mémoire dont il a besoin.
D'ailleurs, sur certains types complexes (les collections d'objets en particulier), on peut spécifier au constructeur la taille envisagée pour la collection, afin d'optimiser la quantité de mémoire allouée.
[Edit]Erf... grillé depuis longtemps :s[/Edit]
Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
Mes articles et tutoriaux & Mon blog informatique
et dans le cas où on veux réallouer la mémoire (utilisation de realloc) ??
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
Que la force de la puissance soit avec le courage de ta sagesse.
Il n'y a pas de realloc en java : les tableaux ont une taille fixe.et dans le cas où on veux réallouer la mémoire (utilisation de realloc) ??
Si tu veux un tableau de taille variable, il faut utiliser les collections a la place (par exemple ArrayList) qui gèrent les allocations de manière transparente.
Salut,
Si tu as besoin d'un tableau dynamique, tu vas plutot utiliser un arraylist et donc tu n'as pas besoin de gérer la mémoire.
a+,
Partager