// ReferenceParametersDemo.java

public class ReferenceParametersDemo {
   public static void main(String[] args)
   {
      StringBuffer buffer = new StringBuffer("Hello!");
      System.out.println("The original StringBuffer contained: "
                         + buffer);
      modifyObject(buffer);
      System.out.println("After calling method modifyObject: "
                         + buffer);
      modifyReference(buffer);
      System.out.println("After calling method modifyReference: "
                         + buffer);
   }  // method main

   public static void modifyObject(StringBuffer sb)
   {
      sb.insert(5, ", everyone");
      System.out.println("Within method modifyObject: " + sb);
   }  // method modifyObject

   public static void modifyReference(StringBuffer sb)
   {
      sb = new StringBuffer(sb.toString());
      sb.insert(5, " again");
      System.out.println("Within method modifyReference: " + sb);
   }  // method modifyReference

}  // class ReferenceParametersDemo