首页 > 代码库 > 关于java序列化中的一个细节
关于java序列化中的一个细节
java序列化机制的可以参考很多资料了,最近在看的时候发现了一些问题。
1.
默认的序列化机制,很多书里讲到序列化类只序列化类名,实例变量,不会实例化类变量(static)和瞬态变量(transient).
我使用1.6,1.7,1.8测试了一下,static都是可以被序列化的。
测试代码:
1 public class Logg implements Serializable{ 2 3 private static String name; 4 private transient String pwd; 5 6 public void setName(String pwd){ 7 Logg.name=name; 8 } 9 10 public void setPwd(String pwd){ 11 this.pwd=pwd; 12 } 13 14 15 public String toString() { 16 return "name="+name+",pwd="+pwd; 17 } 18 }
1 ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("log.dat")); 2 ObjectInputStream in = new ObjectInputStream(new FileInputStream("log.dat")); 3 4 Logg logg = new Logg(); 5 logg.setName("test"); 6 logg.setPwd("111111"); 7 8 out.writeObject(logg); 9 out.close(); 10 Logg log = (Logg)in.readObject(); 11 in.close(); 12 System.out.println(log.toString());
关于java序列化中的一个细节
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。