import java.io.*;
import java.util.*;
class Student implements Serializable
{  String name=null;
   double height;
   Alt object;
  Student(String name,double height)
  {  this.name=name;
    this.height=height;
  }
  public void setHeight(double c)
  { this.height=c;
  
  }
  public void setObject(Alt object)
  { this.object=object;
  
  }
}
public class ObjectStreamExa
{
  public static void main(String[] arg)
  { Student zhang=new Student("张三",1.65);
    Alt object=new  Alt(11,"good");
    zhang.setObject(object);
    try
     {  File f=new File("G://java code/jackxu/src","good.txt");
     FileOutputStream file=new FileOutputStream(f);
     ObjectOutputStream object_out=new ObjectOutputStream(file);
     object_out.writeObject(zhang);
     object_out.close();
     FileInputStream file_in=new FileInputStream(f);
        ObjectInputStream object_in=new ObjectInputStream(file_in);
     Student li=(Student)object_in.readObject();
     Alt objec=new  Alt(12,"god");
     li.setObject(objec);
        li.setHeight(1.78);
     li.name="李四";
     System.out.println(zhang.name+"身高是: "+zhang.height);
     System.out.println(li.name+"身高是: "+li.height);
     System.out.println(zhang.object.a);
     }
    catch(ClassNotFoundException event)
    {  System.out.println("不能读出对象");
    
    } 
catch(IOException event)
{ System.out.println("can not read file"+event);

}  
  }}
class Alt implements Serializable
{ int a;
  String keyname;
  Alt(int a,String keyname)
  { this.a=a;
    this.keyname=keyname;
  }
}上面的程序是对象输入输出流中。写入到目的地good.txt有一个引用变量Alt object,因为对象输入输出流实现了克隆接口,读取的输入流对象Student li是一个克隆对象,它改变了原类中的引用变量Alt object,则当克隆对象改变原对象中基本数据类型成员变量时,输出zhang.name,zhang.height应该是是克隆对象重新赋的值,而不是初始值"张三",1.65。这儿的zhang.height输出是1.65,不是1.78,不符合深度克隆的情况,这是怎么回事?