/******************************************************************************
 * Obtain the reference of a StringBuffer object
 * For StringBuffers: changes are made in place (no need to re-assign) 
 ******************************************************************************/

public class stringRef2
{
    public static void main (String[] args) 
    {
        StringBuffer name = new StringBuffer("sam");
        System.out.printf("StringBuffer name=%s \t is at reference: %x \n", name, System.identityHashCode(name));

        System.out.println(">> Making a change...");

        name.replace(0,999,"john");
        System.out.printf("StringBuffer name=%s \t is at reference: %x \n", name, System.identityHashCode(name));

        System.out.println(">> Make further changes...");

        name.reverse();
        System.out.printf("StringBuffer name=%s \t is at reference: %x \n", name, System.identityHashCode(name) );
       
        name = name.delete(0,1);
        System.out.printf("StringBuffer name=%s \t is at reference: %x \n", name, System.identityHashCode(name) );

    }
}