long[]
PrimitivSpeichert ganze 64-Bit-Zahlen für sehr große Werte, die int[] sprengen würden — Zeitstempel, IDs, astronomische Werte.
0L64 Bit-9.223.372.036.854.775.8089.223.372.036.854.775.807Visualisierung
540L64 BitDeklaration
So reservierst du Speicher für einen long[].
// Deklaration (Standardwerte: 0L)
long[] grosseZahlen = new long[5];
// Typische Anwendung: Unix-Zeitstempel
long[] zeitstempel = new long[100];Initialisierung
Verschiedene Wege, ein long[] mit Werten zu befüllen.
// Initialisierung – 'L' Suffix für long-Literale!
long[] zahlen = {1_000_000_000L, -500L, 9_223_372_036L, 0L, 42L};
// Ohne L-Suffix: int-Literal (nur bis ~2 Mrd. ohne Fehler)
long[] klein = {42L, 100L, -1L};
// Aktuelle Zeit in Millisekunden
long[] zeiten = new long[5];
zeiten[0] = System.currentTimeMillis();Typische Operationen
Zugriff, Änderung, Iteration und häufige Patterns mit long[].
long[] arr = {1_000_000_000L, -500L, 9_223_372_036L, 0L, 42L};
// Zugriff
long erster = arr[0]; // 1000000000
// Arithmetik mit großen Zahlen
long produkt = arr[0] * 1_000L; // 1.000.000.000.000 (1 Billion)
// Zeitdifferenz messen
long start = System.currentTimeMillis();
// ... Code ...
long ende = System.currentTimeMillis();
long dauer = ende - start; // Millisekunden
// Vergleich mit Long-Konstanten
if (arr[2] > Integer.MAX_VALUE) { // 9.223.372.036 > 2.147.483.647
System.out.println("Zu groß für int!");
}
import java.util.Arrays;
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));Hintergründe & Details
long[] ist wie int[], aber mit 64-Bit-Breite statt 32 Bit. Das verdoppelt den Speicherbedarf (8 Byte pro Element), aber der Wertebereich ist enorm: fast ±9,2 × 10¹⁸. Eine long-Variable allein könnte alle Millisekunden seit der Entstehung des Universums speichern — mit Platz für mehr.
Wann long[] statt int[]? Immer wenn Werte über ~2 Milliarden oder unter ~-2 Milliarden liegen können. Klassische Fälle: Unix-Zeitstempel (Millisekunden), Datei-IDs in Datenbanken, Bevölkerungsstatistiken, kryptographische Werte, astronomische Distanzen.
Literal-Syntax: Long-Literale brauchen das L-Suffix: 9_223_372_036L. Ohne L behandelt Java die Zahl als int — was bei Werten über 2.147.483.647 zu einem Kompilierfehler führt.
Lesbarkeit: Java erlaubt Unterstriche in numerischen Literalen (1_000_000), was große Zahlen viel leichter lesbar macht.