평행코드

직렬화 본문

Java

직렬화

나의 오류는 누군가 겪었던 오류 2023. 10. 3. 00:43
Serializable

Serializable(직렬화)란 자바 내부에서 사용되는 객체 또는 데이터를 외부의 자바 시스템에서도 사용할 수 있도록 바이트(byte) 형태로 데이터 변환하는 메커니즘

다른 하드웨어로 저장 할 때 직렬화가 꼭 필요!

 

Serializable 인터페이스를 implements하여 구현
객체 직렬화 시 private 필드를 포함한 모든 필드를 바이트로
변환하지만 transient키워드를 사용한 필드는 직렬화에서 제외

 

serialVersionUID 필드

직렬화한 클래스와 같은 클래스임을 알려주는 식별자 역할로
컴파일 시 JVM이 자동으로 serialViersionUID 정적 필드를 추가해
별도로 작성하지 않아도 오류는 나지 않지만
자동 생성 시 역직렬화에서 예상하지 못한 InvalidClassException을 유발할 수 있어 명시 권장

public class Person implements Serializable{

	private static final long serialVersionUID = - 6423919775137290062L;
	...
}

 

'Java' 카테고리의 다른 글

Integer와 Int의 차이?  (0) 2024.01.17
입출력(IO) 스트림  (0) 2023.10.03
자주쓰는 Exception  (0) 2023.09.21
Iterator , 동등성비교(equals @Override)  (0) 2023.09.20
다형성 추상클래스와 인터페이스  (0) 2023.09.17