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?