【发布时间】:2016-02-12 08:54:50
【问题描述】:
查看了一些Java Collection类的源码,发现成员变量总是被transient修改。
例如LinkedList源代码:
public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, java.io.Serializable
{
private transient Entry<E> header = new Entry<E>(null, null, null);
private transient int size = 0;
public LinkedList()
{
header.next = header.previous = header;
}
public LinkedList(Collection<? extends E> c) {
this();
addAll(c);
}
// ...other stuff
}
当然,不仅LinkedList使用transient,几乎每个Java集合类都使用transient来修改至少一半的成员变量。
那么,我的问题是:为什么transient 在Java 标准库中如此广泛地使用?
(当然大家都知道transient的定义和用法,但这不是我的问题:)
【问题讨论】: