Java序列化机制要序列化那些内容
在javaeye上搜到一篇robbin关于java序列化的回复,我觉得其中的例子很有说服力,转过来和大家分享。
关于更多java序列化的问题可以参见JAVA系列之对象的序列化与反序列化
Java的序列化机制只序列化对象的属性值,而不会去序列化什么所谓的方法。其实这个问题简单思考一下就可以搞清楚,方法是不带状态的,就是一些指令,指令是不需要序列化的,只要你的JVM classloader可以load到这个类,那么类方法指令自然就可以获得。序列化真正需要保存的只是对象属性的值,和对象的类型。
我们可以做一个简单的小试验,来证实一下:
Java代码
package com.javaeye;
import java.io.Serializable;
public class DomainObject implements Serializable {
private String name;
private int age ;
public int getAge(); {
return age;
}
public void setAge(int age); {
this.age = age;
}
public String getName(); {
return name;
}
public void setName(String name); {
this.name = name;
}
}view plaincopy to clipboardprint?
package com.javaeye;
import java.io.Serializable;
public class DomainObject implements Serializable {
private String name;
private int age ;
public int getAge(); {
return age;
}
public void setAge(int age); {
this.age = age;
}
&nb
相关文档:
一、运行class文件
执行带main方法的class文件,命令行为:
java <CLASS文件名>
注意:CLASS文件名不要带文件后缀.class
例如:
java Test
如果执行的class文件是带包的,即在类文件中使用了:
package <包名>
那应该在包的基路径下执行,命令行为:
java <包名>.CLASS文件 ......
package org.bupt.test;
import java.util.ArrayList;
class MyResource {
ArrayList<Integer> arrList= new ArrayList<Integer>();
public MyResource(ArrayList<Integer> arrList) {
this.arrList = arrList;
&nbs ......
一、背景
1、当我们第一次接触某段代码,但又被要求在极短的时间内有效地分析这段代码,我们需要什么样的注释信息?
2、怎么样避免我们的注释冗长而且凌乱不堪呢?
3、在多人协同开发、维护的今天,我们需要怎么样的注释来保证高质、高交的进行开发和维护工作呢?
二、意义
程序中的注释是程序设计者与程序阅读者 ......
程序没什么含金量,高手莫笑。
package first;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.*;
import ......
public(公共访问控制):可以被所有类访问。
protected(保护访问控制):可以被这个类本身、它的子类(包括同一个包中以及不同包中的子类)和同一个包中的所有其他类访问。
default(友好访问控制):可以被这个类本身和同一个包中的其他类所访问。
private(私有访问控制):只能被该类自身访问和修改。 ......