本帖最后由 黑马-张明 于 2013-4-18 21:37 编辑
当你想把的内存中的对象保存到一个文件中或者数据库中时候;或者你想用套接字在网络上传送对象的时候;再或者你想通过RMI传输对象的时候;这些时候才需要用到序列化!
在没有序列化前,每个保存在堆(Heap)中的对象都有相应的状态(state),即实例变量(instance ariable)比如:
Foo myFoo = new Foo();
myFoo .setWidth(37);
myFoo.setHeight(70);
当通过下面的代码序列化之后,MyFoo对象中的width和Height实例变量的值(37,70)都被保存到foo.ser文件中,这样以后又可以把它 从文件中读出来,重新在堆中创建原来的对象。当然保存时候不仅仅是保存对象的实例变量的值,JVM还要保存一些小量信息,比如类的类型等以便恢复原来的对象。 |