How many objects are there in this program? How many reference variables are there?

Answer:

There is one object (after the new operator has worked) and there are two reference variables.

Picture of One Objects and Two Reference Variables

Here is a picture showing the situation in the new program:

Now when the expression strA == strB is evaluated, it is true because the contents of strA and of strB are the same (they both contain the same reference).


    String strA;  // will contain the reference to the object
    String strB;  // another copy of the reference to the object
     
    strA   = new String( "The Gingham Dog" ); 
    System.out.println( strA   ); 

    strB   = strA;
    System.out.println( strB   );

    if ( strA == strB )
      System.out.println( "Same info in each reference variable." );  

When two reference variables refer to the same object, the == operator will evaluate to true.

QUESTION 18:

In the new program, did the == operator look at the contents of the object?