import java.io.*;
class Q implements Serializable
{
private static int i=100;
public Q()
{
}
public Q(int i)
{
this.i=i;
}
public String toString()
{
return String.valueOf(i);
}
public int getI()
{
return i;
}
}
public class qdb
{
public static void main(String[] args)throws Exception
{
ByteArrayOutputStream b=new ByteArrayOutputStream();
ObjectOutputStream out=new ObjectOutputStream(b);
out.writeObject(new Q(100));
out.close();
ByteArrayInputStream bb=new ByteArrayInputStream(b.toByteArray());
ObjectInputStream in=new ObjectInputStream(bb);
Object o=in.readObject();
if(Q.class.isInstance(o))
{
Q q=(Q)o;
System.out.println(q.getI());
}
}
}
申明为static与transient字段是无法被序列化的,那为何这么输出i还是100呢,但把static换为transient就输出为0了~
class Q implements Serializable
{
private static int i=100;
public Q()
{
}
public Q(int i)
{
this.i=i;
}
public String toString()
{
return String.valueOf(i);
}
public int getI()
{
return i;
}
}
public class qdb
{
public static void main(String[] args)throws Exception
{
ByteArrayOutputStream b=new ByteArrayOutputStream();
ObjectOutputStream out=new ObjectOutputStream(b);
out.writeObject(new Q(100));
out.close();
ByteArrayInputStream bb=new ByteArrayInputStream(b.toByteArray());
ObjectInputStream in=new ObjectInputStream(bb);
Object o=in.readObject();
if(Q.class.isInstance(o))
{
Q q=(Q)o;
System.out.println(q.getI());
}
}
}
申明为static与transient字段是无法被序列化的,那为何这么输出i还是100呢,但把static换为transient就输出为0了~
transient不可以吧。transient本来就用一下的吗。
接着我分为2个类,放在2个包里面,发现static与transient都无法被序列化,还是谢谢大家了哈,散分!嘎嘎~