Höchstgrenze für den primitiven Java-Typ „Long“. [duplicate]

Lesezeit: 2 Minuten

Benutzer-Avatar
Benutzer1591156

Ich verwende den primitiven Typ Long, der um 1 erhöht wird, wenn meine Methode ‘generateNumber’ aufgerufen wird. Was passiert, wenn Long sein maximales Limit erreicht? wird eine Ausnahme ausgelöst oder auf den Mindestwert zurückgesetzt? hier ist mein Beispielcode:

class LongTest {
   private static long increment;
   public static long generateNumber(){
       ++increment;
       return increment;
   }
}

  • Ziemlich große Bandbreite – 8 bytes signed (two's complement). Ranges from -9,223,372,036,854,775,808 to +9,223,372,036,854,775,807. cafeaulait.org/course/week2/02.html

    – Koffeinhaltig

    19. März 2013 um 16:48 Uhr

  • Sobald Sie den maximalen Wert erreicht haben, wird er als nächstes auf den minimalen Wert übergehen.

    – Smit

    19. März 2013 um 16:49 Uhr


Benutzer-Avatar
Falten

Long.MAX_VALUE ist 9,223,372,036,854,775,807.

Wenn Sie Ihre Funktion einmal pro Nanosekunde ausführen würden, würde es immer noch über 292 Jahre dauern, um auf diese Situation zu stoßen diese Quelle.

Wenn das passiert, wird es einfach umlaufen Long.MIN_VALUEoder -9,223,372,036,854,775,808 wie andere gesagt haben.

  • Das ist eine verdammt gute Quelle.

    – Preston

    30. August 2013 um 2:57 Uhr

  • Zumindest besteht eine gute Chance, dass die Quelle nicht abläuft.

    – Oliver Dixon

    25. Mai 2015 um 15:17 Uhr

  • Die Quelle gefällt mir!!

    – ergangen

    30. Mai 2016 um 7:17 Uhr

  • unabhängige Quelle 😉

    – Der Mike

    25. Juli 2017 um 12:50 Uhr


  • 9223372036854775807 ohne Kommas für Leute wie mich, die die Nummer kopieren möchten

    – matthew.kempson

    23. April 2018 um 16:00 Uhr

Es wird überlaufen und sich umwickeln Long.MIN_VALUE.

Es ist jedoch nicht allzu wahrscheinlich. Selbst wenn Sie 1.000.000 Mal pro Sekunde erhöhen, dauert es ungefähr 300.000 Jahre, bis es überläuft.

Bereich von -9.223.372.036.854.775.808 bis +9.223.372.036.854.775.807.

Es beginnt bei -9.223.372.036.854.775.808

Long.MIN_VALUE.

Benutzer-Avatar
jsedano

Das Überschreiten des Maximalwerts von long löst keine Ausnahme aus, sondern kehrt zurück. Wenn du das tust:

Long.MAX_VALUE + 1

Sie werden feststellen, dass das Ergebnis Long.MIN_VALUE entspricht.

Von hier aus: Java-Nummer überschreitet long.max_value – wie erkennen?

1333860cookie-checkHöchstgrenze für den primitiven Java-Typ „Long“. [duplicate]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy