CS/Java
[CS/JAVA] SerialVersionUID를 선언해야 하는 이유 / 인스턴스 초기화 블럭과 정적 초기화 블럭
dbfl9911
2025. 2. 11. 18:16
반응형
• SerialVersionUID를 선언해야 하는 이유에 대해 설명해주세요.
- JVM은 직렬화와 역직렬화를 하는 시점의 클래스에 대한 버전 번호를 부여하는데, 만약 그 시점에 클래스의 정의가 바뀌어 있다면 새로운 버전 번호를 할당하게 됩니다. 그래서 직렬화할 때의 버전 번호와 역직렬화를 할 때의 버전 번호가 다르면 역직렬화가 불가능하게 될 수 있기 때문에 이런 문제를 해결하기 위해 SerialVersionUID를 사용합니다.
- 만약 직렬화할 때 사용한 SerialVersionUID 값과 역직렬화 하기 위해 사용했던 SerialVersionUID 값이 다르다면, InvalidClassException이 발생할 수 있습니다.
• 인스턴스 초기화 블럭과 정적 초기화 블럭에 대해 설명해주세요.
특징 | 인스턴스 초기화 블럭 | 정적 초기화 블럭 |
실행 시점 | 객체가 생성되기 직전 | 클래스가 처음 로드될 때 |
실행 횟수 | 객체가 생성될 때마다 실행 | 한 번만 실행 |
사용 목적 | 객체별 공통 초기화 코드 작성 | 정적 변수 초기화 또는 클래스 단위 작업 |
키워드 | { } | static { } |
* 위 글은 아래 문서를 참고해 작성했습니다.
https://dev-coco.tistory.com/153
신입 개발자 기술면접 질문 정리 - 자바
💡 Java의 특징을 설명해주세요.Java는 객체지향 프로그래밍 언어입니다. 기본 자료형을 제외한 모든 요소들이 객체로 표현되고, 객체 지향 개념의 특징인 캡슐화, 상속, 다형성이 잘 적용된 언어
dev-coco.tistory.com
반응형