很多说是不行的 ,但如下方式是可以的,怎么解释
package com.base.test;import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;public class Serialize {
public Serialize() {       
    objectStream();       
}       
      
public void objectStream() {       
    Test2 t = new Test2();
    //t.setI(999);
    t.setWord("fuck you");
   try {       
     FileOutputStream fs = new FileOutputStream("java.dat");       
     ObjectOutputStream oo = new ObjectOutputStream(fs);       
     oo.writeObject(t);       
      
     FileInputStream fi = new FileInputStream("java.dat");       
     ObjectInputStream oi = new ObjectInputStream(fi);       
     Test2 tt = (Test2) oi.readObject();       
     System.out.println(tt.d + " " + tt.getI() + " " + tt.getWord()+ " " + tt.s);       
      
    } catch (IOException e) {       
      
     e.printStackTrace();       
    } catch (ClassNotFoundException e) {       
      
     e.printStackTrace();       
    }       
}       
      
public static void main(String[] args) {       
      
   new Serialize();       
      
}       
      
}       
      
class Test2 implements Serializable {       
private static int i = 22;       
private String word = "";   
int k = 11;       
      
// 下面的transient关键字,作用是将d设为透明的,不存在的,然后在输出的时候就输出默认值       
transient double d = 22.22;       
      
String s = "string"; public void setWord(String word) {
this.word = word;
} public String getWord() {
return word;
} public  void setI(int i) {
Test2.i = i;
} public  int getI() {
return i;
}       
}