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了~
解决方案 »
- jvm加载类的问题?
- 高手进来讨论一下垃圾回收
- 字符串的处理
- 【新人求助】Sequencer not open!
- 文本框的问题
- 我不理解的是,既然是一个字符串,可为什么不直接返回return (String) ob,而是要返回一个String[]?
- 关于manifest.tmp文件(大侠帮忙!)
- 请问如何在主窗体生成子窗体后,使主窗体暂时不可用?
- 在 Jbuilder5 下能够使用 Jdk1.4 吗?
- 数据库访问函数的调用问题--100分寻找高手救援,分数不够,可以在加,在线急,急,急,急。。。。。
- 写出如下代码的运行结果
- 为什么用arraylist添加元素的时候说我使用了未经检查或不安全的操作
transient不可以吧。transient本来就用一下的吗。
接着我分为2个类,放在2个包里面,发现static与transient都无法被序列化,还是谢谢大家了哈,散分!嘎嘎~