2.1.14 Erläutern Sie, warum auch der nachfolgende Quelltext nicht geeignet ist, um in LongWrapperApp (siehe 2.1.12) die Werte von longVar und longObj miteinander zu vergleichen:
Long longObj2 = new Long(longVar);
if (longObj == longObj2) { ... }

Der Programmcode erzeugt zwar keinen Compilerfehler, aber die if-Abfrage liefert immer ein false zurück. Warum ist das so ?

Hier werden zwei Objekte der Klasse Long miteinander verglichen. Die Objekte haben zwar die gleichen Werte, es sind jedoch immer noch zwei verschiedene, eigenständige Instanzen. Man sagt auch „Die Objektidentität der beiden Instanzen ist unterschiedlich“. Deshalb liefert der Vergleich der beiden Objekte unabhängig vom dahinter steckenden long-Wert immer false.