Javase의 객체 시리얼화
원리: 메모리 대상의 데이터를 바이트 흐름으로 분해하고, 반서열화는 바이트 흐름을 열어 재구성하는 대상이다
필요 장면: 메모리 대상은 파일이나 데이터베이스에 저장하고 Socket 네트워크를 통해 대상을 전송하며 RMI를 통해 대상을 전송한다.
구현 방법: 클래스 구현 Java.io.serializable 인터페이스 주의사항: 서열화는 대상 데이터만 보존하고 방법과 구조 함수는 서열화되지 않습니다. (따라서 반서열화할 때 복구 대상의 유형을 지정해야 합니다.) static와transient의 변수는 서열화될 수 없습니다.
응용 예: 많은 응용 프로그램에서 일부 대상을 서열화하여 메모리 공간을 떠나 물리 하드디스크에 입주시켜 장기적으로 보존하도록 해야 한다.예를 들어 가장 흔히 볼 수 있는 것은 웹 서버의 세션 대상이다. 10만 명의 사용자가 동시에 방문하면 10만 개의 세션 대상이 나타날 수 있고 메모리가 견딜 수 없기 때문에 웹 용기는 일부seesion를 먼저 하드디스크에 서열화하고 사용하려면 하드디스크에 저장된 대상을 메모리로 복원한다.두 프로세스가 원격 통신을 할 때 서로 다양한 유형의 데이터를 보낼 수 있다.어떤 유형의 데이터든 이진 서열로 네트워크에 전송된다.송신자는 이 자바 대상을 바이트 시퀀스로 변환해야만 네트워크에서 전송할 수 있다.수신자는 바이트 서열을 다시 자바 대상으로 복원해야 한다.객체 시리얼/역시리얼 구현 코드:
class Person implements Serializable
{
private String name;
private int age;
private String sex;
public Person(String name,int age,String sex)
{
this.name=name;
this.age=age;
this.sex=sex;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}
public class Test {
public static void main(String[] args) throws IOException, ClassNotFoundException
{
SerializePerson(); //
Person p1=DeSerializePerson();//
System.out.println(p1.getName()+":"+p1.getAge()+":"+p1.getSex());
}
private static Person DeSerializePerson() throws FileNotFoundException, IOException, ClassNotFoundException {
//ObjectInputStream , "D://1.txt"
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("D://1.txt"));
Person p1=(Person) ois.readObject();
System.out.println(" ");
ois.close();
return p1;
}
private static void SerializePerson() throws IOException {
Person p = new Person("zhou",21," ");
//ObjectOutputStream , person "D://1.txt"
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("D://1.txt"));
oos.writeObject(p);
System.out.println(" ");
oos.close();
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.