Je suis en train de mettre en œuvre un algorithme de programmation dynamique pour le problème du sac à dos en Java. Je déclare le tableau puis initialise sa taille pour être [nombre d'objets] [capacité du sac à dos].Supprimer une partie d'un tableau en Java pour libérer de la mémoire sur un tas
Lorsque mon nombre d'objets ou ma capacité devient trop important, j'obtiens une erreur de mémoire car je manque d'espace sur le tas. Mes questions sont les suivantes: Si je supprime des lignes de mon double tableau au fur et à mesure, Java va-t-il libérer la mémoire en la supprimant? Ou est-ce que Java réserve cet espace de mémoire pour la taille du tableau que j'ai créé à l'origine? Si c'est le dernier, existe-t-il un moyen de libérer manuellement la mémoire en Java?
Merci pour votre aide!
Mais la JVM ne retournera pas cette mémoire au système d'exploitation (du moins pas sous Windows) mais la gardera pour un usage futur (à moins que je comprenne mal ce que l'OP n'a pas besoin?) - mhh peut-être pas -) – OscarRyz
J'ai vu la mémoire JVM retourner la mémoire à l'OS (Windows XP). C'est seulement quand un grand pourcentage du tas est libéré. –
Merci! Je vais essayer, et j'espère que cela fonctionnera. – kate