zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite

Antwort:

Ja. Die Methode gibt einfach eine Referenz auf den String selbst zurück. Es wird kein neues Objekt erzeugt.

Ein weiteres Beispielprogramm

Hier ist das Beispielprogramm mit einer weiteren Änderung:

import java.awt.*;
class PointBsp3
{

  public static void main ( String arg[] )
  {
    Point a = new Point();   // kombinierte Deklaration und Konstruktion
    Point b = new Point( 12, 45 );
    Point c = new Point( b );

    System.out.println( a ); // einen temporären String basierend auf "a"
                             // erzeugen und ausgeben
    System.out.println( b ); // einen temporären String basierend auf "b"
                             // erzeugen und ausgeben
    System.out.println( c ); // einen temporären String basierend auf "c"
                             // erzeugen und ausgeben
  }
}

Das Programm gibt aus:

java.awt.Point[x=0,y=0]
java.awt.Point[x=12,y=45]
java.awt.Point[x=12,y=45]

Dieses Programm ist trügerisch kurz; seine Ausführung erfordert ziemlich viel Aktivität.

FRAGE 11:

Kurz bevor das Programm endet, wie viele Objekte sind erzeugt worden und wie viele Objektreferenzen gibt es? Wurde irgendein Ausschuss erzeugt?