- 1 1. Einführung
- 2 2. Was ist die Integer‑Klasse?
- 3 3. Hauptfelder und Konstanten der Integer‑Klasse
- 4 4. Wichtige Methoden der Integer‑Klasse
- 5 5. Auswahl zwischen int und Integer
- 6 6. Häufige Fehler und deren Behebung
- 7 7. Praktische Beispiele: Wie die Integer-Klasse verwendet wird
- 8 8. Fazit
- 9 Häufig gestellte Fragen (FAQ)
- 9.1 Q1. Was ist der Unterschied zwischen int und Integer?
- 9.2 Q2. Was ist der Unterschied zwischen parseInt() und valueOf()?
- 9.3 Q3. Warum sollten Sie == nicht zum Vergleichen von Integer‑Objekten verwenden?
- 9.4 Q4. Was passiert, wenn Sie null einem Integer zuweisen?
- 9.5 Q5. Wie finde ich die maximalen und minimalen Werte von Integer?
- 9.6 Q6. Warum können Sie int nicht in Sammlungen verwenden?
- 9.7 Q7. Welcher ist für die Leistung besser, int oder Integer?
1. Einführung
Grundlagen von Ganzzahltypen in Java
Beim Arbeiten mit Zahlen in Java ist einer der grundlegendsten Datentypen der „Ganzzahltyp“ (int). Es ist ein primitiver Typ, der häufig für numerische Berechnungen innerhalb von Programmen verwendet wird und dabei schnelle und speichereffiziente Verarbeitung ermöglicht.
Auf der anderen Seite stellt Java auch die Klasse Integer zur Verfügung. Diese ist als Wrapper‑Klasse bekannt und ermöglicht es, int‑Werte als Objekte zu behandeln, was zur objektorientierten Philosophie von Java passt.
Obwohl diese beiden Typen ähnlich erscheinen, gibt es klare Unterschiede in ihrem Zweck und Verhalten. Deshalb fragen sich Anfänger in Java oft: „Was ist der Unterschied zwischen int und `Integer?“ oder „Wie sollte ich jeden Typ korrekt verwenden?“
Warum sollten Sie die Integer‑Klasse lernen?
Es gibt viele Situationen in Java – etwa beim Arbeiten mit Collection‑Frameworks (wie List oder Map), beim Umgang mit null‑Werten oder bei der Verwendung von Generics – in denen der primitive int‑Typ nicht geeignet ist. In solchen Fällen wird die Integer‑Klasse unverzichtbar, sodass das Verständnis ihrer Grundlagen wichtig ist.
Die Integer‑Klasse bietet zudem zahlreiche nützliche Methoden für Aufgaben wie das Konvertieren zwischen Zeichenketten und Zahlen, Vergleiche und Bit‑Operationen. Das Beherrschen dieser Methoden ermöglicht es Ihnen, robusteren und lesbareren Code zu schreiben.
Dieser Artikel konzentriert sich auf die Integer‑Klasse, erklärt ihre Unterschiede zu int, zeigt, wie man sie verwendet, und gibt praktische Anwendungsbeispiele. Egal, ob Sie Java‑Anfänger sind oder bereits Erfahrung haben – hier finden Sie hilfreiche Informationen, also lesen Sie weiter!
2. Was ist die Integer‑Klasse?
Rolle als Wrapper‑Klasse
Die Java‑Klasse Integer ist eine Wrapper‑Klasse, die es ermöglicht, den primitiven int‑Typ als Objekt zu behandeln. Wie der Name schon sagt, „umwickelt“ ein Wrapper etwas – in diesem Fall verpackt sie einen rohen int‑Wert in eine Integer‑„Box“, sodass er als Objekt verwendet werden kann.
Beispielsweise können Java‑Collections (wie List und Map) nur Objekte verarbeiten. Da primitive Typen wie int nicht direkt verwendet werden können, wird stattdessen Integer benötigt.
List<Integer> numbers = new ArrayList<>();
numbers.add(10); // The int value 10 is automatically converted to Integer and stored
Durch das Konvertieren (Boxen) von int‑Werten in Objektform können Sie nahtlos mit vielen Java‑APIs und -Frameworks arbeiten.
Autoboxing und Unboxing
Seit Java 5 wurden praktische Features namens Autoboxing und Unboxing eingeführt.
- Autoboxing: Ein
int‑Wert wird automatisch in einInteger‑Objekt konvertiert - Unboxing: Ein
Integer‑Objekt wird automatisch in einenint‑Wert konvertiertInteger num = 100; // Autoboxing int result = num + 50; // Unboxing occurs for the calculation
Das bedeutet, Entwickler müssen keinen expliziten Konvertierungscode schreiben – Java übernimmt die Umwandlungen automatisch, wodurch Ihr Code einfacher und lesbarer wird.
Achten Sie jedoch darauf, dass beim Unboxing eines null‑Werts eine NullPointerException ausgelöst wird.
Integer value = null;
int x = value; // This throws an exception
Die Bedeutung von Integer
Die Integer‑Klasse ist nicht nur ein Ersatz für int. Als Objekt besitzt sie bestimmte Eigenschaften:
- Sie können
nullzuweisen, was es ermöglicht, einen „nicht gesetzten“ Zustand darzustellen - Sie liefert Methoden, die flexible Operationen erlauben
- Sie kann in Collections und anderen objektbasierten Strukturen verwendet werden
Kurz gesagt, es gibt viele Szenarien im objektorientierten Kontext von Java, in denen Integer geeigneter ist als int.
3. Hauptfelder und Konstanten der Integer‑Klasse
Die Java‑Klasse Integer definiert mehrere nützliche Konstanten und Felder zum Abrufen von Informationen über Zahlen. Der Einsatz dieser Elemente kann die Lesbarkeit und Wartbarkeit Ihres Codes verbessern.
Werfen wir einen Blick auf einige der am häufigsten verwendeten Felder.
MAX_VALUE und MIN_VALUE
Integer.MAX_VALUE und Integer.MIN_VALUE sind Konstanten, die den maximalen bzw. minimalen Wert darstellen, den ein int‑Typ speichern kann.
MAX_VALUE: 2.147.483.647 (2 hoch 31 minus 1)MIN_VALUE: -2.147.483.648 (negative 2 hoch 31)
Diese werden häufig zur Bereichsprüfung oder zur Vermeidung von Überläufen verwendet und sind damit unverzichtbar für sichere numerische Verarbeitung.
int max = Integer.MAX_VALUE;
int min = Integer.MIN_VALUE;
System.out.println("Max value: " + max); // 2147483647
System.out.println("Min value: " + min); // -2147483648
SIZE und BYTES
SIZE und BYTES sind Konstanten, die die Anzahl der Bits bzw. Bytes des int‑Typs angeben.
Integer.SIZE: 32 (Anzahl der Bits)Integer.BYTES: 4 (Anzahl der Bytes)
Sie werden häufig beim Umgang mit Binärdaten oder in Systemprogrammierungs‑Szenarien verwendet, z. B. zur Berechnung von Datenmengen oder für kryptografische Zwecke.
System.out.println("Number of bits in int: " + Integer.SIZE); // 32
System.out.println("Number of bytes in int: " + Integer.BYTES); // 4
TYPE‑Feld
Integer.TYPE ist ein statisches Feld, das das Klassenobjekt für den int‑Typ zurückgibt. Dies wird manchmal für fortgeschrittene Programmiertechniken wie Reflexion oder Generics verwendet.
Class<?> clazz = Integer.TYPE;
System.out.println(clazz.getName()); // int
Obwohl es im täglichen Entwicklungsalltag selten verwendet wird, ist es gut, darüber Bescheid zu wissen, wenn Sie an Java‑Interna oder Framework‑Entwicklung interessiert sind.
All diese Konstanten sind als static final definiert, das heißt, Sie können sie direkt über die Klasse Integer aufrufen, ohne eine Instanz zu erzeugen. Das Wissen um diese typbezogenen Konstanten ist ein guter erster Schritt, um Fehler zu vermeiden und die Leistung in Java zu verbessern.
4. Wichtige Methoden der Integer‑Klasse
Die Klasse Integer ist weit mehr als nur ein Wrapper für int. Sie bietet zahlreiche praktische Methoden für die String‑Umwandlung, numerischen Vergleich, Bit‑Operationen und mehr – was sie für die tägliche Java‑Entwicklung äußerst nützlich macht. Im Folgenden stellen wir die am häufigsten verwendeten Methoden nach Kategorien vor.
Konvertierungsmethoden
parseInt()
parseInt() ist eine statische Methode, die einen String in einen int‑Wert umwandelt. Sie wird hauptsächlich verwendet, wenn Benutzereingaben oder Daten aus externen Dateien verarbeitet werden, die als Zahlen benötigt werden.
String str = "123";
int number = Integer.parseInt(str); // 123
- Wird ein nicht‑numerischer String übergeben, wird eine
NumberFormatExceptionausgelöst, daher ist es sicherer, try‑catch zu verwenden.
valueOf()
valueOf() ist eine Methode, die einen String oder einen int‑Wert in ein Integer‑Objekt umwandelt. Im Gegensatz zu parseInt() ist der Rückgabetyp Integer und nicht int.
Integer num1 = Integer.valueOf("456");
Integer num2 = Integer.valueOf(789);
Integer.valueOf() verwendet zwischengespeicherte Objekte für Werte zwischen -128 und 127 wieder, was effizienter ist, als bei jedem Aufruf ein neues Objekt mit new zu erzeugen.
Anzeige‑ und Konvertierungsmethoden
toString()
toString() ist eine Methode, die einen numerischen Wert als String zurückgibt. Sie wird häufig für String‑Verkettungen oder zur Anzeige von Werten verwendet.
int number = 100;
String str = Integer.toString(number); // "100"
Sie können sie auch verwenden, um in andere Basen zu konvertieren, z. B. binär oder hexadezimal.
System.out.println(Integer.toBinaryString(10)); // "1010"
System.out.println(Integer.toHexString(255)); // "ff"
Vergleichsmethoden
compareTo()
compareTo() ist eine Methode, die zwei Integer‑Objekte vergleicht und einen Integer zurückgibt, der deren relative Reihenfolge angibt.
Integer a = 10;
Integer b = 20;
int result = a.compareTo(b); // -1 (returns a negative value if a < b)
Sie wird häufig in Kombination mit Methoden wie Collections.sort verwendet.
equals()
equals() ist eine Methode, die prüft, ob zwei Werte gleich sind. Der Operator == vergleicht Referenzen, daher wird equals() zum Vergleich von Objektwerten empfohlen.
Integer x = 100;
Integer y = 100;
System.out.println(x.equals(y)); // true
Bit‑Operationen‑Methoden
Einzigartig unter Java-Klassen bietet die Klasse Integer umfangreiche Unterstützung für niedrigstufige bitweise Operationen.
bitCount()
Diese Methode gibt die Anzahl der Bits zurück, die auf 1 gesetzt sind im gegebenen int-Wert.
int count = Integer.bitCount(15); // 15 in binary is 1111 → 4 bits set to 1
highestOneBit()
Diese Methode gibt den Wert zurück, bei dem nur das höchstwertige Bit auf 1 gesetzt ist aus dem gegebenen int-Wert.
int highest = Integer.highestOneBit(10); // 10 (1010) → 8 (1000)
Sehr nützlich für Optimierungen, die bitweise Operationen beinhalten.
Andere nützliche Methoden
Integer.reverse(int): Kehrt die Reihenfolge der Bits umInteger.signum(int): Gibt das Vorzeichen zurück (positiv: 1, negativ: -1, null: 0)Integer.hashCode(): Gibt einen Hashcode zurück (wichtig bei der Verwendung von Collections)
Zahlen werden überall in Java verarbeitet. Nur diese Methoden zu kennen, hilft Ihnen, eleganten und effizienten Code zu schreiben. Insbesondere werden Konvertierungs-, Vergleichs- und bitweise Methoden häufig in der Praxis verwendet, also stellen Sie sicher, dass Sie sie beherrschen.
5. Auswahl zwischen int und Integer
In Java gibt es zwei Typen zur Darstellung von Ganzzahlen: int und Integer. Obwohl Sie zwischen ihnen konvertieren können, kann eine falsche Verwendung zu Leistungsproblemen oder unerwarteten Fehlern führen. Lassen Sie uns ihre Eigenschaften und die Auswahl des richtigen Typs für jedes Szenario überprüfen.
Unterschiede in Bezug auf die Leistung
int ist ein primitiver Typ, hat eine feste Speichergröße (4 Byte) und ist sehr schnell bei Berechnungen. Integer hingegen ist ein Objekt, wird als Instanz im Heap gespeichert und bietet Methoden sowie zusätzliche Funktionen.
int a = 10;
Integer b = 10;
Obwohl Sie denselben Wert zuweisen, unterscheidet sich die interne Handhabung. Für intensive Berechnungen oder Schleifen ist die Verwendung von int viel schneller und speichereffizienter.
Beispiel: Leistungsunterschied in Schleifen
long startTime = System.nanoTime();
int sum = 0;
for (int i = 0; i < 1000000; i++) {
sum += i;
}
long endTime = System.nanoTime();
System.out.println("Time for int: " + (endTime - startTime) + " ns");
Dasselbe mit Integer führt zu Boxen und Unboxen, was mehrere Male langsamer sein kann.
Nullbarkeit und Unterschiede bei der Fehlerbehandlung
int kann nicht null zugewiesen werden. Daher ist es nicht geeignet, wenn Sie „keinen Wert“ oder „nicht gesetzt“ darstellen müssen.
Integer value = null;
if (value == null) {
System.out.println("Value is unset");
}
Mit Integer können Sie null explizit behandeln, was es ideal für Situationen wie Formularvalidierung oder Datenbankabfragen macht, bei denen ein Wert fehlen könnte. Das Unboxen eines null Integer zu int wirft jedoch eine NullPointerException, daher ist Vorsicht geboten.
Kompatibilität mit Collections
Java-Collections (wie List und Map) können nur Objekte speichern. Deshalb können Sie int nicht direkt verwenden; Sie benötigen stattdessen Integer.
List<Integer> numbers = new ArrayList<>();
numbers.add(100); // int → Integer via autoboxing
Außerdem können Sie bei der Arbeit mit Generics keinen primitiven Typ als Typargument angeben, daher müssen Sie Integer verwenden.
Zusammenfassung: Richtlinien für die Auswahl
| Use Case | Recommended Type | Reason |
|---|---|---|
| Mainly numeric calculations | int | Faster processing and better memory efficiency |
| Need to represent presence or absence of a value | Integer | Can handle null |
| Working with collections or generics | Integer | Object type required |
| Using numbers as Map keys | Integer | int can’t be used |
Im Wesentlichen gilt: „Verwenden Sie int für Geschwindigkeit, Integer für Flexibilität.“
6. Häufige Fehler und deren Behebung
NullPointerException
Ursache:
Da Integer ein Objekt ist, kann es null zugewiesen werden, aber wenn Sie versuchen, ein null Integer zu int zu unboxen, tritt eine NullPointerException auf.
Integer value = null;
int x = value; // Exception thrown here
Lösung:
Überprüfen Sie immer auf null, bevor Sie unboxen.
if (value != null) {
int x = value;
} else {
int x = 0; // Assign a default value
}
Alternativ können Sie dies sicher mit Optional (Java 8+) behandeln:
int x = Optional.ofNullable(value).orElse(0);
NumberFormatException
Ursache:
Diese Ausnahme wird ausgelöst, wenn Integer.parseInt() oder Integer.valueOf() verwendet wird, um einen nicht-numerischen String zu konvertieren.
String input = "abc";
int num = Integer.parseInt(input); // NumberFormatException
Lösung:
Überprüfen Sie im Voraus, ob die Eingabe eine Zahl ist, typischerweise mit Hilfe eines regulären Ausdrucks.
if (input.matches("-?\d+")) {
int num = Integer.parseInt(input);
} else {
System.out.println("Not a numeric value");
}
Auch, verwenden Sie try-catch, um Ausnahmen zu handhaben und eine sichere Verarbeitung zu gewährleisten.
try {
int num = Integer.parseInt(input);
} catch (NumberFormatException e) {
System.out.println("Invalid number format: " + input);
}

Missbrauch von == und equals()
Ursache:
Beim Vergleichen zweier Integer-Objekte mit == vergleichen Sie ihre Referenzen, nicht ihre Werte. Also kann, selbst wenn die Werte gleich sind, false zurückgegeben werden, wenn es sich um unterschiedliche Objekte handelt.
Integer a = new Integer(128);
Integer b = new Integer(128);
System.out.println(a == b); // false (different references)
System.out.println(a.equals(b)); // true (same value)
* Für Werte zwischen -128 und 127 werden Objekte zwischengespeichert, sodass == true zurückgeben kann. Dies ist jedoch implementierungsabhängig.
Lösung:
Verwenden Sie immer .equals(), um zwei Integer-Objekte zu vergleichen.
if (a.equals(b)) {
System.out.println("Values are equal");
}
Sie können auch ihre primitiven int-Werte nach dem Unboxing vergleichen.
if (a.intValue() == b.intValue()) {
System.out.println("Equal as int values");
}
Übersehen von Überlauf
Ursache:
int und Integer können nur 32-Bit-Werte (±2.147.483.647) handhaben. Wenn Sie diesen Bereich überschreiten, funktionieren sie nicht korrekt.
int a = Integer.MAX_VALUE;
int b = a + 1;
System.out.println(b); // -2,147,483,648 (wraps around to negative)
Lösung:
Erwägen Sie die Verwendung von long oder BigInteger, falls nötig, und achten Sie immer auf die Grenzen.
Zusammenfassung
Während Integer bequem und flexibel ist, bringt es viele Fallstricke bezüglich Nulls, Referenzen und Typkonvertierungen mit sich. Für Java-Anfänger ist es besonders wichtig zu verstehen, warum bestimmte Ausnahmen auftreten.
Wenn Sie diese gängigen Fallstricke im Voraus kennen, können Sie Bugs vermeiden und stabileren Code schreiben.
7. Praktische Beispiele: Wie die Integer-Klasse verwendet wird
Bis jetzt sollten Sie ein solides Verständnis der Funktionen, Unterschiede und wichtigen Punkte bezüglich der Integer-Klasse haben. Als Nächstes schauen wir uns einige realweltliche Anwendungsfälle an, in denen Integer häufig angewendet wird.
Benutzereingabe in Zahlen umwandeln
In Web- und Desktop-Anwendungen wird die Benutzereingabe normalerweise als String empfangen. Wenn Sie jedoch mit Feldern wie Alter oder Menge umgehen, müssen Sie sie oft als Zahlen verarbeiten, und Integer ist hilfreich für diese Konvertierung.
String input = "25"; // User input as a string
try {
Integer age = Integer.valueOf(input); // Convert String → Integer
System.out.println("Age: " + age);
} catch (NumberFormatException e) {
System.out.println("Invalid input");
}
Durch die Validierung, dass die Eingabe eine richtige Zahl ist, und das Behandeln von Fehlern können Sie eine robuste Benutzereingabeverarbeitung erreichen.
Verwalten von Konfigurationswerten und Umgebungsvariablen
Es ist üblich, System- oder Konfigurationswerte als Strings zu lesen und sie dann in Ganzzahlen umzuwandeln. Zum Beispiel, wenn Sie System.getProperty() verwenden, müssen Sie das Ergebnis oft parsen.
String maxConn = System.getProperty("app.maxConnections", "100");
int max = Integer.parseInt(maxConn);
System.out.println("Max connections: " + max);
In solchen Fällen ist es wichtig, sinnvolle Standardwerte bereitzustellen und flexible Konfigurationsänderungen zu ermöglichen.
Arbeiten mit Zahlen in Sammlungen
Wenn Sie Zahlen in einer Sammlung (wie einer List) handhaben möchten, müssen Sie Integer anstelle von int verwenden. Zum Beispiel könnten Sie vorübergehend eine Liste von IDs speichern, die der Benutzer eingegeben hat.
List<Integer> ids = new ArrayList<>();
ids.add(101);
ids.add(205);
ids.add(309);
for (Integer id : ids) {
System.out.println("Processing ID: " + id);
}
Dank Autoboxing erfolgt die Umwandlung von int zu Integer automatisch, sodass Sie kompakteren Code schreiben können, ohne sich um manuelle Konvertierung kümmern zu müssen.
Flag-Management mit Bit-Operationen
Die Klasse Integer bietet viele Bitmanipulationsmethoden, die nützlich für low-level Flag-Management und Zustandsübergänge sind.
int flags = 0;
// Set the 1st bit
flags |= 0b0001;
// Set the 2nd bit
flags |= 0b0010;
// Check if the 2nd bit is set
boolean isSet = (flags & 0b0010) != 0;
System.out.println("The 2nd bit is: " + (isSet ? "ON" : "OFF"));
Und Sie können Integer.toBinaryString(flags) verwenden, um den Flag-Zustand zu visualisieren:
System.out.println("Current flag state: " + Integer.toBinaryString(flags));
Arbeiten mit Datenbanken
Wenn Sie JDBC oder ähnliche Methoden zur Interaktion mit Datenbanken verwenden, ermöglicht die Verwendung von Integer (nicht int) für numerische Spalten, null-Werte sicher zu behandeln.
ResultSet rs = stmt.executeQuery("SELECT age FROM users WHERE id = 1");
if (rs.next()) {
Integer age = (Integer) rs.getObject("age");
System.out.println(age != null ? "Age: " + age : "Age not set");
}
Da primitive int nicht null sein kann, ist Integer hier die geeignete Wahl.
Zusammenfassung
Die Klasse Integer ist mehr als nur ein Wrapper für int – sie spielt eine Schlüsselrolle bei flexibler Datenverarbeitung und der Gewährleistung von Sicherheit in der Praxis. Sie ist besonders nützlich in folgenden Fällen:
- Umwandlung von Benutzereingaben oder externen Einstellungen in Zahlen
- Verarbeitung von Daten, die
nullsein könnten - Speichern von Ganzzahlen in Sammlungen
- Zustandsverwaltung mit Bit-Operationen
Durch die Beherrschung von Integer können Sie Code schreiben, der erweiterbarer, wartbarer und stabiler ist.
8. Fazit
Die Integer-Klasse von Java ist nicht nur ein Ersatz für int – sie ist eine wesentliche Klasse, die eng mit der objektorientierten Natur von Java zusammenhängt. In diesem Artikel haben wir die folgenden Punkte auf eine Weise erklärt, die für Anfänger leicht verständlich ist, und gleichzeitig praktische Aspekte abgedeckt:
Was sind die Vorteile der Integer-Klasse?
- Da sie als Objekt behandelt werden kann, können Sie mit
null-Werten arbeiten und sie in Sammlungen verwenden - Sie verfügt über viele praktische Methoden (String-Konvertierung, Vergleich, Bit-Operationen und mehr)
- Funktioniert gut mit
System.getProperty()und Datenbankoperationen, was ein flexibles Design ermöglicht - Objekt-Caching und Autoboxing vereinfachen den Code und machen ihn kompakter
Aber es gibt auch wichtige Einschränkungen
- Das Unboxen eines
null–Integerführt zu einerNullPointerException - Die Verwendung des
==-Operators vergleicht Werte möglicherweise nicht wie erwartet intist in Bezug auf die Leistung bei groß angelegten Zahlenberechnungen deutlich besser
Die richtige Typwahl ist entscheidend
| Use Case | Recommended Type | Reason |
|---|---|---|
| When fast numeric processing is required | int | Superior memory efficiency and calculation speed |
When data may be null | Integer | Supports nullability and can be handled safely |
| When used with collections or generics | Integer | Because an object type is required |
| When using numbers as Map keys | Integer | int cannot be used |
Zusammenfassend sind int und Integer nicht nur unterschiedliche Typen, sondern sollten je nach Designzielen und Anwendungsfall angemessen gewählt werden.
Abschließende Gedanken
Das Verständnis von Integer ist nicht nur grundlegend für die Handhabung von Datentypen in Java, sondern auch für die Entwicklung tieferer Programmierkenntnisse in objektorientiertem Design, Ausnahmebehandlung und Leistungsoptimierung. Da Ganzzahltypen so häufig verwendet werden, wird ein gründliches Verständnis frühzeitig ein großer Vorteil für Ihre zukünftige Java-Entwicklungsreise sein.
Häufig gestellte Fragen (FAQ)
Q1. Was ist der Unterschied zwischen int und Integer?
A. int ist ein primitiver Datentyp in Java, der für die effiziente und schnelle Verarbeitung von Ganzzahlwerten verwendet wird. Integer ist eine Wrapper‑Klasse, die es Ihnen ermöglicht, ein int als Objekt zu behandeln, sodass Sie mit null‑Werten arbeiten und verschiedene Methoden nutzen können. Zum Beispiel ist Integer besser geeignet, wenn Sie Werte in einer Sammlung speichern oder zwischen gesetzten und nicht gesetzten Werten unterscheiden möchten.
Q2. Was ist der Unterschied zwischen parseInt() und valueOf()?
A. Beide wandeln einen String in eine Zahl um, aber die zurückgegebenen Typen sind unterschiedlich:
parseInt(String s)→ gibtintzurück (primitiver Typ)valueOf(String s)→ gibtIntegerzurück (Objekttyp)
Wählen Sie je nach Bedarf. valueOf() ist nützlicher, wenn Sie ein Objekt benötigen oder null‑Werte verarbeiten wollen.
Q3. Warum sollten Sie == nicht zum Vergleichen von Integer‑Objekten verwenden?
A. Der Operator == vergleicht Objektreferenzen, nicht die Werte selbst. Auch wenn die Werte gleich sind, kann das Ergebnis false sein, wenn es sich um unterschiedliche Instanzen handelt. Für Werte ab 128 oder höher gilt die Objekt‑Caching‑Regel nicht, sodass unerwartete Ergebnisse auftreten können. Verwenden Sie immer .equals() für den Wertvergleich.
Integer a = 128;
Integer b = 128;
System.out.println(a == b); // false (different references)
System.out.println(a.equals(b)); // true (same value)
Q4. Was passiert, wenn Sie null einem Integer zuweisen?
A. Da Integer ein Objekt ist, können Sie ihm null zuweisen. Wenn Sie es jedoch (unboxen) in ein int umwandeln, während es null ist, tritt ein NullPointerException auf.
Integer val = null;
int num = val; // Exception thrown here
Stellen Sie sicher, dass Sie auf null prüfen oder Optional für sichereren Code verwenden.
Q5. Wie finde ich die maximalen und minimalen Werte von Integer?
A. In Java können Sie Integer.MAX_VALUE und Integer.MIN_VALUE verwenden, um diese Grenzen einfach zu ermitteln.
System.out.println(Integer.MAX_VALUE); // 2147483647
System.out.println(Integer.MIN_VALUE); // -2147483648
Dies ist nützlich für Bereichsprüfungen und Überlauf‑Schutz.
Q6. Warum können Sie int nicht in Sammlungen verwenden?
A. Java‑Sammlungen (wie List und Map) verarbeiten ausschließlich Objekte, nicht primitive Typen. Deshalb müssen Sie stattdessen Integer verwenden.
List<Integer> list = new ArrayList<>();
list.add(123); // int is automatically converted to Integer
Q7. Welcher ist für die Leistung besser, int oder Integer?
A. Für Hochgeschwindigkeitsberechnungen oder die Verarbeitung großer Mengen von Zahlen in Schleifen ist int viel schneller und speichereffizienter. Integer ist bequemer und flexibler, aber zusätzliche Objekte und Boxing können es bei intensiven Arbeitslasten weniger geeignet machen.

