关于java序列化中的一个细节

Posted 信天翁游记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于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序列化中的一个细节的主要内容,如果未能解决你的问题,请参考以下文章

向Linus学习,让代码具有good taste

Java 虚拟机原理Java 类中的类加载初始化细节 ( 只使用类中的常量时加载类不会执行到 ‘初始化‘ 阶段 )

LockSupport.java 中的 FIFO 互斥代码片段

Java--关于计算表达式中赋值的细节问题

如何在片段中使用 GetJsonFromUrlTask​​.java

关于java中的对象序列化