一般情況下在網(wǎng)絡(luò)傳輸對(duì)象或者把不活動(dòng)的對(duì)象保存保存到本地時(shí)才做序列化操作,以減少服務(wù)器中內(nèi)存的占用。做序列化的對(duì)象必須實(shí)現(xiàn)序列化接口。
1.在要序列化的類中必須實(shí)現(xiàn)序化接口
import java.io.Serializable;
public class User implements Serializable { //給定一個(gè)序列化版本,擁有相同的版本才能反序列化,增加或減少字段也不會(huì)影響反序列化,因?yàn)樗麄兊陌姹咎?hào)是固定的 PRivate static final long serialVersionUID = 1L; transient String passWord;//瞬時(shí)字段不寫到反序列化中去 private String name; private int age; public User(String name, int age, String password) { this.name = name; this.age = age; this.password = password; } @Override public String toString() { return "User [name=" + name + ", age=" + age + ",password=" + password + "]"; }}
2.測試類的編寫
public class MyTest { public static void main(String[] args) throws Exception { File f = new File("g:/a.text"); //做序列操作,把對(duì)象寫到本地文件或者服務(wù)器中去,減少服務(wù)器中的內(nèi)存的占用 writeObject(f); //反序列化操作 readObject(f); } private static void writeObject(File f) throws Exception { User user = new User("張三", 18, "abc"); ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(f)); out.writeObject(user); } private static void readObject(File f) throws Exception { ObjectInputStream in = new ObjectInputStream(new FileInputStream(f)); User user = (User) in.readObject(); System.out.println(user); }}
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注