⟨info/⟩

long[]

Primitiv

Speichert ganze 64-Bit-Zahlen für sehr große Werte, die int[] sprengen würden — Zeitstempel, IDs, astronomische Werte.

Standardwert:0L
Größe:64 Bit
Minimum:-9.223.372.036.854.775.808
Maximum:9.223.372.036.854.775.807

Visualisierung

long[]5 Elemente
1000000000
[0]
-500
[1]
9223372036
[2]
0
[3]
42
[4]
Länge:5
Letzter Index:4
Standardwert:0L
Bits/Element:64 Bit

Deklaration

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.