Parfois, je vois à l’aide de API ou
ou ou
, et je ne peux pas comprendre comment la décision est faite pour ça ?
Quand devrais-je choisir quoi ?
Parfois, je vois à l’aide de API ou
ou ou
, et je ne peux pas comprendre comment la décision est faite pour ça ?
Quand devrais-je choisir quoi ?
Long
est le Object
forme d' long
, et Integer
est l'objet de la forme d' int
.
L' long
est de 64 bits. L' int
est de 32 bits, et donc ne peut contenir que des nombres jusqu'à +-2 milliards d'euros (-2^31 à +2^31-1).
Vous devez utiliser long
et int
sauf si vous avez besoin de faire usage de méthodes héritées de Object
, comme hashcode
. java.util.collections
méthodes généralement utiliser la boîte (Object
-emballés) versions parce qu'ils ont besoin de travailler pour n'importe quel Object
, et un type primitif comme int
ou long
n'est pas un Object
.
Une autre différence est que l' long
et int
sont passé par valeur, alors que Long
et Integer
sont des passe-par-valeur de référence, comme tous les non-primitif types Java. Donc si il était possible de modifier un Long
ou Integer
(il ne l'est pas, ils sont immuables, sans utiliser JNI code), il y aurait une autre raison d'utiliser l'un sur l'autre.
Une dernière différence est qu'un Long
ou Integer
pourrait être null
.
Il y a quelques choses que vous ne pouvez pas faire avec un type primitif :
Sauf si vous avez besoin un de ceux, vous devez préférer les types primitifs, car ils nécessitent moins de mémoire.
Un int
est un entier de 32 bits; un long
est un entier de 64 bits. À utiliser dépend de la taille de l'numéros sont que vous allez travailler avec.
int
et long
sont des types primitifs, tandis que d' Integer
et Long
sont des objets. Les types primitifs sont plus efficaces, mais parfois vous avez besoin d'utiliser des objets; par exemple, Java classes de collection ne peut travailler qu'avec des objets, donc si vous avez besoin d'une liste d'entiers vous avez à faire un List<Integer>
, par exemple (vous ne pouvez pas utiliser int
en List
directement).
Quand il vient à l'aide d'un très grand nombre qui peut dépasser 32 bits pour représenter, vous pouvez l'utiliser longtemps pour s'assurer que vous n'aurez pas strenge comportement.
À partir de Java 5, vous pouvez utiliser des en-boxing et de boxe fonctionnalités pour rendre l'utilisation de l'int Entier et tout à fait la même. Cela signifie que vous pouvez faire : int myInt = new Integer(11); Entier myInt2 = myInt;
La dans et hors de boxe vous permettent de basculer entre int et Entier, sans aucune conversion (même fot de Long,Double,Court aussi)
Vous pouvez utiliser des int de tous les temps, mais Entier contient des méthodes d'assistance qui peuvent vous aider à faire certaines opérations complexes avec des entiers (comme Entier.parseInt(String) )
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.