Objekt Erzeugung ohne new Operator

Shakra

Aktives Mitglied
Hallo Leute,

ich habe eine Frage bzgl. der Objekt Erzeugung.
Also ich habe gelesen, dass man Objekte mit dem new Operator erzeugt und das funktioniert auch aber es geht auch ohne. Java erzeugt die Objekte iwie automatisch. Oder ist das nur der Fall, weil ich ganz am Anfang bin und ganz billige Sachen zur Übung schreibe?
Kann das vil. jemand genauer erläutern, das wär sehr nett=)
 
Objekte werden in der Regel IMMER mit den schlüsselwort
Code:
new
erzeugt. Es gibt aber auch ein paar Ausnahmen:

-
Code:
String s = "Hallo";
hier brauchst du kein explizites new, das macht der Compiler dann für dich.
-
Code:
Integer i = 42;
hier gilt das selbe
-
Code:
Class#newInstance()
Per Reflection kannst du auch ne neue Instanz erzeugen.
 
Also ich habe gelesen
wo?

Du meinst vermutlich sowas wie:
Java:
String s = "bla";
Integer i = 123;
...
Das ist eine Ausnahme und wird im Hintergrund dennoch zu
Code:
= new...
übersetzt. Strings sind noch mal was anderes, aber das spielt an dieser Stelle keine Rolle.
 
Objekte werden in der Regel IMMER mit den schlüsselwort
Code:
new
erzeugt. Es gibt aber auch ein paar Ausnahmen:

-
Code:
String s = "Hallo";
hier brauchst du kein explizites new, das macht der Compiler dann für dich.
-
Code:
Integer i = 42;
hier gilt das selbe
-
Code:
Class#newInstance()
Per Reflection kannst du auch ne neue Instanz erzeugen.

Na da gibt es doch noch mehr Ausnahmen:
- Enum-Werte sind natürlich auch Objekte, werden aber automatisch instantiiert
- Wenn ein Objekt deserialisiert wird, braucht man kein new
- Wenn ein Objekt geklont wird, braucht man kein new
 
bei einem enum ist der new aufruf auch "nur" versteckt... also keine wirkliche Ausnahme... wobei es etwas schwammig ist was man als "Ausnahme" definiert
 
Weitere Ausnahmen, nur der Vollstädigkeit halber:
- Beim Deserialisieren wird auch nicht "new" aufgerufen (EDIT: Ach, hatte Landei ja schon gesagt 😳 )
- Fiese Sachen wie AllocObject
 

Neue Themen


Zurück
Oben