Ja. Die Methode gibt einfach eine Referenz auf den String selbst zurück. Es wird kein neues Objekt erzeugt.
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.
Kurz bevor das Programm endet, wie viele Objekte sind erzeugt worden und wie viele Objektreferenzen gibt es? Wurde irgendein Ausschuss erzeugt?