Java Language La longue primitive


Exemple

Par défaut, long est un entier signé de 64 bits (dans Java 8, il peut être signé ou non signé). Signé, il peut stocker une valeur minimale de -2 63 , et une valeur maximale de 2 63 - 1, et non signé il peut stocker une valeur minimale de 0 et une valeur maximale de 2 64 - 1

long example = -42;
long myLong = 284;
long anotherLong = 73;

//an "L" must be appended to the end of the number, because by default,
//numbers are assumed to be the int type. Appending an "L" makes it a long
//as 549755813888 (2 ^ 39) is larger than the maximum value of an int (2^31 - 1),
//"L" must be appended 
long bigNumber = 549755813888L;

long addedLongs = myLong + anotherLong; // 284 + 73 = 357
long subtractedLongs = myLong - anotherLong; // 284 - 73 = 211

Les valeurs maximales et minimales de long peuvent être trouvées à:

long high = Long.MAX_VALUE;    // high == 9223372036854775807L
long low = Long.MIN_VALUE;     // low == -9223372036854775808L

La valeur par défaut d'un long est 0L

long defaultLong;    // defaultLong == 0L

Note: la lettre "L" ajoutée à la fin du littéral long est insensible à la casse, mais il est conseillé d’utiliser le majuscule car il est plus facile de le distinguer du chiffre 1:

2L == 2l;            // true

Avertissement: Java met en cache les instances d'objets entiers de la plage allant de -128 à 127. Le raisonnement est expliqué ici: https://blogs.oracle.com/darcy/entry/boxing_and_caches_integer_valueof

Les résultats suivants peuvent être trouvés:

Long val1 = 127L;
Long val2 = 127L;

System.out.println(val1 == val2); // true

Long val3 = 128L;
Long val4 = 128L;

System.out.println(val3 == val4); // false

Pour comparer correctement 2 valeurs longues d'objet, utilisez le code suivant (à partir de Java 1.7):

Long val3 = 128L;
Long val4 = 128L;

System.out.println(Objects.equal(val3, val4)); // true

Comparer une longueur primitive à un objet long n'entraînera pas de faux négatif, par exemple en comparant 2 objets à ==.