A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. import java.io.*;
  2. public class ObjectStreamDemo {

  3.         public static void main(String[] args)throws Exception
  4.         {
  5.                  writeObject();
  6.                  readObject();
  7.         }
  8.         public static void readObject() throws Exception
  9.         {
  10.                 ObjectInputStream ois = new ObjectInputStream(new FileInputStream("c:/Person.obj"));
  11.                 Person p1=(Person)ois.readObject();
  12.                 Person p2=(Person)ois.readObject();
  13.                 s.p(p1);
  14.                 s.p(p2);
  15.                 ois.close();
  16.                
  17.         }
  18.         public static void writeObject() throws Exception
  19.         {
  20.                 ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("c:/Person.obj"));
  21.                 oos.writeObject(new Person("lisi",20,"cn"));
  22.                 oos.writeObject(new Person("wangwu",30,"kr"));
  23.                 oos.close();
  24.                
  25.         }

  26. }

  27. class Person implements Serializable//记得要实现一下接口
  28. {
  29.         static final long serialVersionUID = 43L;
  30.         private String name;
  31.         private  transient int age;//非常像是static final的感觉 无法修改,无法序列
  32.         private static String  country = "usa";//没有被序列化
  33.         @SuppressWarnings("static-access")
  34.         Person(String name,int age,String country)
  35.         {
  36.                 this.name=name;
  37.                 this.age=age;
  38.                 this.country=country;
  39.         }
  40.         public String toString()
  41.         {
  42.                 return name+"::"+age+country;
  43.                
  44.         }
  45. }
复制代码
transient 这个关键字修饰后的变量,不可以被序列化 很像static
使用的过程中发现无法被修改,又非常像final修饰
大神能不能告诉我下  transient == static fianl 变成全局常量
底层是不是这样呀
疑问是transient 有没有修改的方法

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马