Ce ne sont pas des entiers de type int (type primitif) mais des instances de Integer qui sont alloués dans cet exemple.
Java 5, grâce à l'autoboxing, transforme les "int" que tu ajoutes à ta liste en "Integer" et puisque ce sont des objets, ils sont alloués sur le tas.
D'ailleurs, le code est discutable, ça ressemble plus à une démo.
1. on ne devrait jamais utiliser une implémentation de liste ailleurs que lors de son instanciation :
List list = new ArrayList();
au lieu de
ArrayList list = new ArrayList();
2. pourquoi utiliser une List alors que l'on aurait put utliser un tableau de int puisque l'on connait la taille ?
Pour ton soucis de OutOfMemoryException, tu peux lancer java avec le paramètre -Xmx<mem_allouée>M (ex: -Xmx512M). Taille par défaut : 64Mo.
[^] # Re: Nécessité de Java?
Posté par domak . En réponse à la dépêche Accord entre la FSF et les développeurs OpenOffice au sujet de l'utilisation de Java. Évalué à 1.
Java 5, grâce à l'autoboxing, transforme les "int" que tu ajoutes à ta liste en "Integer" et puisque ce sont des objets, ils sont alloués sur le tas.
D'ailleurs, le code est discutable, ça ressemble plus à une démo.
1. on ne devrait jamais utiliser une implémentation de liste ailleurs que lors de son instanciation :
List list = new ArrayList();
au lieu de
ArrayList list = new ArrayList();
2. pourquoi utiliser une List alors que l'on aurait put utliser un tableau de int puisque l'on connait la taille ?
Pour ton soucis de OutOfMemoryException, tu peux lancer java avec le paramètre -Xmx<mem_allouée>M (ex: -Xmx512M). Taille par défaut : 64Mo.