이 기사는 참조를 위해 Java 객체의 직렬화 및 사제화를 공유합니다. 특정 내용은 다음과 같습니다
1. 직렬화 란 무엇입니까?
객체를 바이트 스트림으로 변환하고 파일에 저장하고 나중에 객체를 복원하는 등 저장하십시오. 이 메커니즘을 객체 직렬화라고합니다. (추가 문장 : 영구 저장 장치에 물체를 저장하는 것을 지속성이라고합니다)
2. 직렬화를 구현하는 방법 <br /> 직렬화 가능한 인터페이스를 구현해야합니다. Java 객체 가이 인터페이스를 구현하면이 클래스의 객체가 직렬화 가능하다는 것을 의미합니다.
3. 직렬화에 대한 메모
(1) 객체가 직렬화되면 객체의 비 정적 멤버 변수 만 저장할 수 있으며 방법과 정적 멤버 변수를 저장할 수 없습니다.
(2) 대상 A는 물체 B를 말하고, 물체 A는 직렬화되고, B도 직렬화된다.
(3) 직렬화 가능한 객체에 비 시리얼 객체에 대한 참조가 포함 된 경우 전체 직렬화 작업이 실패하고 공개적으로 예고가 발생합니다. 따라서, 객체와 기준 객체는 직렬화를 수행하기 전에 직렬화 가능한 인터페이스를 구현해야합니다.
(4) 과도, 멤버 변수 또는 참조가 과도로 표시되면 객체를 여전히 주문할 수 있지만 파일에 직렬화되지는 않습니다.
4. 코드
공개 클래스 개인은 직렬화 가능한 {개인 문자열 이름을 구현합니다. 개인 과도 연령; 공개 사람 (문자열 이름, int age) {super (); this.name = 이름; this.age = age; } public String toString () {return this.name + "-" + this.age; }} public class serializableclient {public static void main (String [] args)은 예외 {person p1 = new Person ( "Zhangsan", 5); Person P2 = 새로운 사람 ( "Lisi", 100); // serialize fileoutputStream fos = new FileOutputStream ( "person.txt"); ObjectOutputStream OOS = 새로운 ObjectOutputStream (FOS); oos.writeobject (p1); oos.writeobject (p2); System.out.println ( "----------"); // deserialize fileInputStream fis = new FileInputStream ( "person.txt"); ObjectInputStream OIS = New ObjectInputStream (FIS); for (int i = 0; i <2; i ++) {person empperson = (person) ois.readobject (); System.out.println (Tempperson); }}}
출력 결과 :
------------
장 산 -0
LISI-0
5. 세분화 된 제어 직렬화 및 사막화
직렬화 또는 사막화 클래스에서 위의 두 개인 방법을 구현할 때 (방법 선언은 위와 완전히 일치해야 함),보다 근본적이고 상속 된 과립 방식으로 직렬화 및 사막화 과정을 제어 할 수 있습니다.
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.