本篇内容介绍了“ArrayList的序列化概念是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
概念:
1)序列化一个对象时,被transient关键字修饰的变量(的值)不会被序列化。 ArrayList的序列化机制: 1)ArrayList实现了java.io.Serializable接口。 2)ArrayList中存放集合元素的Object数组被关键字transient修饰。代码:transient Object[] elementData; 3)ArrayList序列化集合元素的机制: ArrayList在序列化时会调用writeObject(ObjectOutputStream s)方法,将size和element写入ObjectOutputStream中; ArrayList在反序列化时调用readObject(java.io.ObjectInputStream s)方法,从ObjectInputStream中获取到size和element,再恢复到存储集合元素的Object数组中。 4)与直接序列化Object数组相比,这样的机制有什么优点呢? elementData是一个Object数组,它通常会预留一些容量,等容量不足时再进行扩容;有些空间(elementData[size] ~ elementData[elementData.length-1])实际上并没有存储元素(存的是null); ArrayList的序列化机制:只序列化实际存储的集合元素,而不是去实例化整个Object数组,从而节省空间和时间的消耗。
“ArrayList的序列化概念是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。