本帖最后由 马睿 于 2012-9-15 16:27 编辑
class Person implements Serializable { String name; int age;
Person(String name, int age) { this.name =name; this.age = age } }
class ObjectWR
{
public static void wirteObj() { ObjectOutputStreamoos = new ObjectOutputStream(new FileOutputStream(obj.txt)); oos.writeObject(newPerson(“小明”, 29)); oos.close(); }
public static void readObj() { ObjectInputStreamois = new ObjectInputStream (new FileIputStream(obj.txt));
/*这里不是一个Person类么???为什么Person输出不是一个Person的哈希值,而是小明:29??*/ Person p = (Person)ois.readObject(); System.out.println(p); ois.close();
}
}
……看清楚问题再回答
我想问的是
一般来说,我直接定义一个
Person p = new Person()
然后
System.out.println(p)
会得到的是输出一个哈希内存映射!Person@415d3b这样的形式
然而当我将Person进行构造函数输,序列化出后,再用对象序列化读取,得到的经过强转类型Person却得到的是一个构造参数值?(同样是Person类,为何不是哈希值?而是存入的参数?)
|