JAVA序列化的浅析与性能优化(Best Practice about Serialization)

文章会的简要目录如下:
Serialization的概述
用‘transient’进行性能优化
关键点总结
Serializtion的概述
Serializtion是将一个完整的JAVA对象写入输出流的过程,这个流可以是文件,字节数组或者TCP/IP相关的Socket流。
Deserializtion就是反序列化,也就是说将一个完整的JAVA对象从输入流里读取出来。

JAVA类必须如果实现 java.io.Serializable或 java.io.Externalizable 接口,也可以继承实现了这些接口的超类。那么此JAVA对象就被序列化或者反序列化了。
所以的基本数据类型和一些JAVA API类都是进行了序列化的,你不必要进行额外的序列化。
如果你使用Externalizable可以定制你的序列化方式。这篇文章主要关注的是Serializtion接口
Serializable接口是一个标志位接口,他没有任何的接口方法。像EJB,RMI,ATG这些主流的JAVA技术都是基于序列化进行对象传输的,这些技术本身都暗中的将你的对象进行了序列化的操作。。

Continue Reading →
 

Best Practise about JAVA Collections

JAVA collections 其实是很值得深入研究的一块,说多不多,说少不少。Collections的大家族里像List , Map 是最为常见且最为实用的两个核心对象,无论哪一块代码似乎都离不开这两个兄弟,可是作为JAVA Collection,你真的了解么? 这篇文章通过一系列的有价值的分析得出一个使用Collections的最佳实路,Here we go!
List
在分析之前我们需要定好分析的需求,一个好的需求才能得出最好的分析结果,那么我们到底想要什么呢?
1.线程安全
2.SIZE
3.常用操作方法(adding, removing, accessing or iterating)

Continue Reading →