Die obenstehende println() Methode kann ohne Probleme ausgeführt werden. Bedeutet das, dass das von a referenzierte Objekt auf den Bildschirm kopiert wird?

Eine gute Antwort könnte sein:

Nein—ein temporäres Stringobjekt wurde durch die toString() Methode des Objekts erzeugt und die Character in diesem Objekt wurden durch println() an den Bildschirm gesendet.

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();              // Deklaration und Konstruktion kombiniert
    Point b = new Point( 12, 45 );
    Point c = new Point( b );

    System.out.println( a ); // einen temporären String basierend auf "a" erzeugen,
                             // ihn ausgeben
    System.out.println( b ); // einen temporären String basierend auf "b" erzeugen,
                             // ihn  ausgeben
    System.out.println( c ); // einen temporären String basierend auf "c" erzeugen,
                             // ihn 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 (Garbage) erzeugt?