Datentypen int und Integer

Hindi93

Aktives Mitglied
Was ist der unterschied zwischen int und Integer? Also ich kann ja schreiben:
int zahl = 5
oder
Interger zahl = 5
Wobei is der Unterschied?
 

zwergmulch

Mitglied
Integer ist eine Klasse, int ist der primitive Datentyp.
Du kannst folgendes nur schreiben, weil automatisch gewrappt wird:
Code:
Integer i = 5; // eigentlich Integer i = new Integer (5);
Integer, Boolean und Co. brauchst du für Generics:
Code:
List<int> list = new ArrayList<int> (); // funktioniert nicht
Code:
List<Integer> list = new ArrayList<Integer> (); // So ist es richtig

Warum diese Trennung zwischen Primitiven und Klassen existiert, weil wohl nur Sun.:)
Sinn macht sie auf keinen Fall.
 

Hindi93

Aktives Mitglied
Also brauch ich das eigenltich erst wenn Arrays dran kommen?
Bzw. was ist ne Arraylist?
Ich meine eine Array in Java deklariert man ja so weit ich das weis so:
Java:
int[] var = {1,2,3,5}
und nicht so wie du es oben gesagt hast...
 

zwergmulch

Mitglied
Nein, nur für Generics.
Du kannst ganz normal ein int-Array erstellen:
Code:
int[] array = new int[5];
Aber wenn du dann Generische Klassen hast, kannst du denen nicht int als Typ übergeben.
Siehe auch Insel.

Grüße zwergmulch

Edit: Eine ArrayList ist eine spezielle Klasse in der Java-Bibliothek.
Sie kann Objekte eines beliebigen Typs speichern (außer halt die Primitiven - dafür gibt es die Wrapper-Klassen, wie oben schon beschrieben). Das Besondere an der ArrayList ist halt, das du sie vergrößern kannst, was mit einem Array ja nicht so einfach geht. Siehe auch Insel.

Edit2: Für Wrapperklassen allgemein siehe Insel zum Dritten.
 
Zuletzt bearbeitet:

Landei

Top Contributor
Noch zwei wichtige Unterschiede:
Java:
1) Nur Integer kann null sein
Integer i = null;  //erlaubt
int i = null; //Fehler

2) Aufpassen bei Vergleichen
Integer a = 500;
Integer b = 500;
System.out.println(a == b); //false (auf den üblichen JVMs)
System.out.println(a.equals(b)); //true (so ist es richtig)

int a = 500;
int b = 500;
System.out.println(a == b); //true

Und dann ist da noch eine kleine Falle bei Listen:
Java:
List<Integer> list = new ArrayList<Integer>();
... fülle Liste
Integer a = 500;
list.remove(a); //entfernt alle Werte gleich 500 von der Liste

int a = 500;
list remove(a); //entfert das 501. Element der  Liste
 

Wortraum

Bekanntes Mitglied
Warum diese Trennung zwischen Primitiven und Klassen existiert, weil wohl nur Sun.:)
Sinn macht sie auf keinen Fall.
Ich weiß es auch.

1) Der Elementartyp ist wesentlich schneller.
2) Der Elementartyp braucht weniger Speicher.
3) Der Elementartyp ist veränderlich.
4) Der Objekttyp ist unveränderlich.
5) Der Objekttyp muß verwendet werden, wenn nur Objekte verarbeitet werden können (Collections, Schlüssel für Maps).
6) Der Objekttyp ermöglicht die generische Programmierung.
7) Der Objekttyp ist serialisierbar.
8) Der Objekttyp kann den Wert null annehmen.

Einige der Punkte hätte man auch ohne eine Trennung ermöglichen können, das ist klar. Ich wollte sie nennen, um die Unterschiede, wie sie in Java existieren, aufzuzeigen. Der wichtigste Unterschied ist die Geschwindigkeit und der Speicher.


int zahl = 5
oder
Interger zahl = 5
Wobei is der Unterschied?
Im ersten Fall hast Du nur den Wert 5; im zweiten Fall wird der Wert 5 in ein Integer‐Objekt umgewandelt – was dort eigentlich steht, wurde Dir hier schon gesagt – und die Referenz zu diesem Objekt in zahl gespeichert.

Tatsächlich passiert noch mehr. Um die Effizienz zu steigern, wird intern ein Puffer mit Integer‐Objekten für die int‐Werte von -128 bis 127 verwaltet, damit jene nicht immer wieder neu erzeugt werden müssen. Das führt zu verwunderlichen, aber völlig logischen Ergebnissen wie beispielsweise diesem:
Java:
Integer i1 = 5;
Integer i2 = 5;
System.out.println(i1 == i2); /* => true */
Integer i3 = 500;
Integer i4 = 500;
System.out.println(i3 == i4); /* => false */
Der Vergleich in Zeile 3 ist ein Fehler, wenn man die Werte vergleichen möchte. Da es sich bei i1 und i2 um Objekte handelt, muß man sie mit der Methode equals(Object) vergleichen; in diesem Beispiel werden nur die Objektreferenzen verglichen. Ein Anfänger schlösse natürlich aus Zeile 3, hier würden die Werte verglichen, denn das Ergebnis ist wie erwartet. Tatsächlich stammen i1 und i2 aus dem Integer‐Puffer, sind also das selbe Objekt und haben damit dieselbe Referenz. i3 und i4 existieren nicht im Puffer, sie wurden neu erzeugt und haben daher unterschiedliche Referenzen.

Wichtig ist eigentlich nur folgendes: int ist klein und schnell, aber kein Objekt; Integer ist ein Objekt und kann wie jedes andere Objekt behandelt werden.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Map<String, Integer> sortieren und der reinfolge nach die Glieder abfragen Java Basics - Anfänger-Themen 3
MoxMorris Integer.MAX_VALUE und Double.MAX_VALUE Unterschied Java Basics - Anfänger-Themen 3
Jul1n4tor Scanner error bei Eingabe die kein Integer ist Java Basics - Anfänger-Themen 4
belana wie am besten 2D Array von String to Integer Java Basics - Anfänger-Themen 18
volcanos Addition -> List<Integer> mit Arrays.asList() versus List<Integer>ArrayList<>() Java Basics - Anfänger-Themen 14
JavaBeginner22 Integer in String umwandeln Java Basics - Anfänger-Themen 7
sserio printf integer formatting Java Basics - Anfänger-Themen 17
M Unterschied Integer.toString(x) und x.toString() Java Basics - Anfänger-Themen 22
H Uhrzeitespanne in Integer Wert umrechnen Java Basics - Anfänger-Themen 1
T Java Integer multiplizieren Java Basics - Anfänger-Themen 6
H Fehler bei integer Division Java Basics - Anfänger-Themen 28
D Methoden Plathhalter für Integer in einer Methode Java Basics - Anfänger-Themen 19
StevenGG Java swing "New Integer" Java Basics - Anfänger-Themen 5
C Integer in Vierer-Zahlblöcke aufteilen Java Basics - Anfänger-Themen 11
L integer Java Basics - Anfänger-Themen 6
Zeppi Integer umschreiben Java Basics - Anfänger-Themen 5
rafi072001 Integer Anomalie Java Java Basics - Anfänger-Themen 7
Eule25 Arbeit mit long und int, Error: integer number too large Java Basics - Anfänger-Themen 2
J Transformation zweier Integer in ein Double Java Basics - Anfänger-Themen 26
M Integer aus aus einer Klasse in andere speichern Java Basics - Anfänger-Themen 12
L Iterieren durch eine ArrayList. Integer Array wird übergeben Java Basics - Anfänger-Themen 17
D Fibonacci overflow integer Java Basics - Anfänger-Themen 8
J Eine Position im String durch einen Integer - Wert teilen Java Basics - Anfänger-Themen 5
S Integer Wert wird nicht übernommen Java Basics - Anfänger-Themen 2
V int zu Integer und String Java Basics - Anfänger-Themen 6
H Datentypen Was für eine Format verbirgt sich hinter dem Integer-Wert 053? Java Basics - Anfänger-Themen 2
L Baum aus Integer Liste erstellen Java Basics - Anfänger-Themen 0
M Regex zum Integer.parseInt Java Basics - Anfänger-Themen 4
J Problem beim vergleich von zwei Integer Java Basics - Anfänger-Themen 3
S Vergleichen ob der Integer der benutzt eingeben werden soll überhaupt ein int ist Java Basics - Anfänger-Themen 1
S Letzte Zahl eines Integer auslesen? Java Basics - Anfänger-Themen 3
K String in Integer umwandeln Java Basics - Anfänger-Themen 4
G Überprüfen ob alle Ziffern von 1-9 in einem Integer vorhanden sind Java Basics - Anfänger-Themen 6
D integer negativen Wert abspeichern Java Basics - Anfänger-Themen 3
A Mit JComboBox Ergebnis einen Integer aus einer anderen Klasse aufrufen. Java Basics - Anfänger-Themen 2
J Methoden Moving a n integer matrix Java Basics - Anfänger-Themen 3
R Eingabe String umwandeln zu Integer Werten Java Basics - Anfänger-Themen 8
M Input/Output Java Swing: Prüft ob Text aus JTextField ausschließlich Integer enthält Java Basics - Anfänger-Themen 15
J Erhöhen eines Values als Integer bei gleichen Keys in HashMap Java Basics - Anfänger-Themen 12
CptK Datentypen Integer ArrayList sortieren Java Basics - Anfänger-Themen 2
J Methoden Equals Methode für Integer und Objekte überschreiben? Java Basics - Anfänger-Themen 9
CptK Bestimmten Integer Wert aus Array filtern Java Basics - Anfänger-Themen 2
L String in Integer umwandeln Java Basics - Anfänger-Themen 3
K Datentypen String zu Integer parsen Java Basics - Anfänger-Themen 2
B Liste von Integer -> Nächster Wert bekommen Java Basics - Anfänger-Themen 5
S Integer aus Array filtern Java Basics - Anfänger-Themen 4
F Referenzvariable vom Typ "Integer" definieren. (Klausuraufgabe) Java Basics - Anfänger-Themen 5
M set Integer bzw. set null mit SQL DB Java Basics - Anfänger-Themen 9
H Bubblesort-Zwei Integer auf Dekade vergleichen. Java Basics - Anfänger-Themen 6
B Variablen integer im Array Java Basics - Anfänger-Themen 5
C Liste o.ä. erstellen mit <Integer, <Integer, String> Java Basics - Anfänger-Themen 7
R Kompletten String umwandeln in Integer Java Basics - Anfänger-Themen 10
H 32-Bit Zahl (Integer) in eine IPv4 Adresse umwandeln? Java Basics - Anfänger-Themen 2
Orkanson Datentypen Integer in String umwandeln/hinzufügen Java Basics - Anfänger-Themen 3
O Datentypen Integer mit führender Null Java Basics - Anfänger-Themen 13
M Argument in Integer verwandeln und das Doppelte davon printen Java Basics - Anfänger-Themen 9
D Fehler: String zu Integer Java Basics - Anfänger-Themen 7
L (Integer) Liste nach aufsteigender Summe der Ziffern sortieren (mit Bedingung) Java Basics - Anfänger-Themen 8
b1ck Integer initialisieren bei do-while-Schleife Java Basics - Anfänger-Themen 11
E Integer und Array übergeben Java Basics - Anfänger-Themen 9
W Fehler bei Integer.parseInt() Java Basics - Anfänger-Themen 4
R String in Integer Java Basics - Anfänger-Themen 11
D Komischer Fehler nach <Integer> List Java Basics - Anfänger-Themen 2
J Integer in Array einlesen Java Basics - Anfänger-Themen 14
J Warum ist das ein Unterschied (Integer / int) Java Basics - Anfänger-Themen 2
H Integer in Datei schreiben Java Basics - Anfänger-Themen 2
B OOP Cannot instantiate the type AuDList<Integer> Java Basics - Anfänger-Themen 18
3 ArrayList Integer Wrapper Klasse als Ersatz für normale Arrays Java Basics - Anfänger-Themen 10
K Methoden Integer runden/aufrunden Java Basics - Anfänger-Themen 2
E Erste Schritte Lower Bounded Wildcards <? super Integer> Java Basics - Anfänger-Themen 1
M Datentypen Integer und Float Konflikt Java Basics - Anfänger-Themen 3
J Integer-Werte in Array ein- bzw. auslesen Java Basics - Anfänger-Themen 7
T Integer Wert in andere Methode übergeben Java Basics - Anfänger-Themen 2
N Probleme bei Speicherung eines Integer-Array in Datei speichern Java Basics - Anfänger-Themen 3
C Zwei Integer Arrays "kombinieren" Java Basics - Anfänger-Themen 10
D Integer Fehlermeldung exception Java Basics - Anfänger-Themen 4
M Höchster Integer aus 9 Zahlen Java Basics - Anfänger-Themen 13
I Klassen Integer von BL in GUI übergeben | Fehler Java Basics - Anfänger-Themen 4
T Integer-Objekt über Hash-Funktion in Array ablegen Java Basics - Anfänger-Themen 1
S Integer/Value-Paar in Prio-Queue ohne Comparator Java Basics - Anfänger-Themen 5
D Datentypen Ein Integer Feld in einen String wandeln ohne Nullenunterdrückung Java Basics - Anfänger-Themen 6
R integer zahlenfolge speichern, ausgeben Java Basics - Anfänger-Themen 1
L Summer aller Integer-Zahlen im Intervall [x,y] Java Basics - Anfänger-Themen 6
K ArrayList<Integer> problem Java Basics - Anfänger-Themen 3
L Vom Benutzer eingebene Integer addieren und ausgeben. Java Basics - Anfänger-Themen 11
S integer absteigend sortieren Java Basics - Anfänger-Themen 2
S ArrayList<ArrayList<Integer>> sortieren Java Basics - Anfänger-Themen 3
T Variablen Integer in Stmt Java Basics - Anfänger-Themen 13
B gemischter string zu integer Java Basics - Anfänger-Themen 22
R Big Integer Java Basics - Anfänger-Themen 8
B Erste Schritte Integer Eingabe über Scanner mit Abfangen von Eingabefehlern Java Basics - Anfänger-Themen 3
B Variablen Wertezuweisung bei integer Java Basics - Anfänger-Themen 5
J Integer Werte in Array einlesen Java Basics - Anfänger-Themen 6
E Integer oder Strings spiegeln (in while loop) Java Basics - Anfänger-Themen 6
D String mit Integer Variablen Namen vergleichen, möglich? Java Basics - Anfänger-Themen 6
G Was passiert bei einem Overflow von zwei Integer Java Basics - Anfänger-Themen 6
H Integer.toString(int i) vs. String.valueOf(int i) Java Basics - Anfänger-Themen 12
K Date cannot be cast to java.lang.Integer Java Basics - Anfänger-Themen 4
N Probleme beim Rechnen mit Integer und double Java Basics - Anfänger-Themen 4
A Integer aus Stream to Double Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben