读书人

ArrayList的elementData宣言为transie

发布时间: 2012-11-05 09:35:12 作者: rapoo

ArrayList的elementData声明为transient,为什么还可以序列化?<转>

mmmmmmmmmm   null  nnnnnnnnnn   null 

从输出结果来看,数组序列化时,不管是否有值,都会将整个数组序列化到文件中。
由此可以看出,比较靠谱的原因是:
ArrayList是会开辟多余空间来保存数据的,而系列化和反序列化这些没有存放数据的空间是要消耗更多资源的,所以ArrayList的数组就声明为transient,告诉虚拟机这个你别管,我自己来处理,然后就自己实现write/readObject方法,仅仅系列化已经存放的数据。

读书人网 >编程

热点推荐