직렬화 가능한 인터페이스의 기능: 1. 다음에 사용할 때 복사본을 신속하게 재구성할 수 있도록 개체를 저장 매체에 저장합니다. 2. 특히 원격 호출 중에 데이터 전송을 용이하게 합니다.
이 문서의 운영 환경: Windows 7 시스템, Dell G3 컴퓨터.
직렬화 가능 인터페이스의 역할:
직렬화 가능 인터페이스는 직렬화 기능을 활성화하는 인터페이스입니다. java.io.Serialized 인터페이스를 구현하는 클래스는 직렬화 가능합니다. 이 인터페이스를 구현하지 않는 클래스는 상태를 직렬화하거나 역직렬화할 수 없습니다.
개인적인 이해:
이 소개는 매우 비현실적이어서 몇 가지 블로그를 읽었고 한 젊은 여성의 블로그가 내 관심을 끌었습니다. 그녀는 그것을 이렇게 이해했습니다.
연재 과정, 그것은 "동결"입니다. 객체를 동결한 후 다시 필요할 때 객체를 동결 해제하여 즉시 사용할 수 있습니다.
우리는 직렬화가 없다고 생각했습니다. 실제로 다양한 변수를 선언할 때 특정 데이터 유형이 직렬화 작업을 구현하는 데 도움이 되었습니다.
누군가 직렬화 가능 인터페이스의 소스 코드를 열면 이 인터페이스가 실제로는 빈 인터페이스라는 것을 알게 될 것입니다. 그렇다면 이 직렬화 작업을 구현한 사람은 누구일까요? 실제로 인터페이스의 주석을 보면 엔터티 클래스가 직렬화 가능 인터페이스를 구현하도록 할 때 실제로 이 클래스가 직렬화될 수 있고 기본 직렬화 메커니즘에 의해 직렬화될 수 있음을 JVM에 알리는 것임을 알 수 있습니다.
직렬화의 역할:
*직렬화는 객체 상태를 유지하거나 전송할 수 있는 형식으로 변환하는 프로세스입니다. 직렬화의 반대는 스트림을 개체로 변환하는 역직렬화입니다. 이 두 프로세스가 결합되어 데이터를 쉽게 저장하고 전송할 수 있습니다.
1. 다음에 사용할 때 복사본을 빠르게 재구성할 수 있도록 개체를 저장 매체에 저장합니다. 즉, 일련의 결과 비트를 직렬화 형식에 따라 다시 읽으면 원래 객체와 의미상 동일한 복제본을 생성하는 데 사용할 수 있습니다.
질문: 직렬화를 구현하지 않아도 다음 위치에 저장할 수 있습니다. 내 sqlserver, MySQL 또는 Oracle 데이터베이스에서 저장하기 전에 직렬화해야 하는 이유는 무엇입니까? ? ? ?
2. 특히 원격 호출 중에 데이터 전송을 용이하게 합니다.
serialVersionUID는 직렬화 클래스의 서로 다른 버전 간의 호환성을 나타내는 데 사용됩니다. 이 클래스를 수정하는 경우 이 값을 수정하세요.
그렇지 않으면 이전 버전의 클래스로 직렬화된 클래스를 복원할 때 오류가 발생합니다.
구현 후 도구를 사용하는 경우 자동으로 private static final long serialVersionUID = 1L을 생성할 수 있다는 경고가 표시됩니다. 역직렬화 중에 클래스 버전의 호환성을 보장하려면 다음을 수행하는 것이 가장 좋습니다. addeach 직렬화할 클래스에 private static final long serialVersionUID 속성을 추가하고, 특정 값을 직접 정의하세요.
serialVersionUID 설명
serialVersionUID의 역할: 직렬화 중에 버전 호환성을 유지하기 위해서는, 즉 deserialization이 필요합니다. 버전이 업그레이드되어도 계속 수행됩니다.
하나는 마음대로 작성할 수 있으며 Eclipse에서 하나를 생성합니다. 생성하는 방법에는 두 가지가 있습니다. 하나는 다음과 같이 기본 1L입니다.
private static final long serialVersionUID = 1L;
다른 하나는 클래스 이름, 인터페이스를 기반으로 생성됩니다. 이름, 멤버 메서드 및 속성 등 64비트 해시 필드:
private static final long serialVersionUID = -8940196742313994740L;
관련 무료 학습 권장 사항: 프로그래밍 비디오
위 내용은 직렬화 가능 인터페이스의 기능은 무엇입니까의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!