黑马程序员技术交流社区

标题: 对象的序列化,为什么静态成员不能被序列化? [打印本页]

作者: lijia113    时间: 2013-8-7 00:25
标题: 对象的序列化,为什么静态成员不能被序列化?
序列化有什么作用?为什么静态成员不能被序列化?
被transeio修饰的成员为什么也不能被序列化?
作者: 吃阁子的猫    时间: 2013-8-10 11:48
计算机是以二进制存储数据的,将对象序列化,就是将对象转为字节数组,也就是将对象转为可以存储和传输的格式.
关于static和transient 修饰成员的问题,如代码:
class Person implements Serializable {
  public static final long serialVersionUID = 1L;
  String name;
  transient int age; //被 transient 修饰
  static String country = "CN"; //被static修饰
  Person(String name, int age, String country) {
    this.name = name;
    this.age = age;
    this.country = country;
  }
  }
transient是java的关键字,它只能修饰变量,而不能修改类和方法,因此在序列化对象时,将不会序列化被transient修饰的变量,而静态变量不属于对象,属于类,因此也不能被序列化。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2