글
관련 이론 및 문법
(객체 직렬화 (Serialization) 참고)
http://kkikkodev.tistory.com/159
문제 의도
주어진 소스코드를 컴파일하여 실행한 결과를 고르는 문제입니다.
답안
B
풀이 방법
소스코드를 살펴보면, Forest 클래스가 있고, Serializable 인터페이스를 상속하고 있습니다. 그 안에 멤버 변수로 Tree 형 인스턴스 변수 tree 에 Tree 객체를 생성하여 가리키게 하고 있습니다. 그리고 main 메소드가 정의되어 있습니다. 외부에는 Tree 클래스가 정의되어 있습니다.
프로그램이 실행되어 main 메소드가 호출되면, Forest 객체를 만들어 f 변수로 가리키게 합니다. 그 다음, FileOutputStream 을 "Forest.ser" 이라는 이름으로 생성하여 fs 변수로 가리키게 합니다. 그 다음 객체를 직렬화 하기 위해 ObjectOutputStream 객체를 만들어 (fs 를 넘기면서) os 라는 변수로 가리키게 합니다. 그 다음에, os.writeObject(f); 문을 통해서, f 객체를 직렬화하여 write 합니다. 이 때, Forest 클래스 안의 Tree 객체가 있는데, Forest 객체만 Serializable 인터페이스를 상속하고 있고, Tree 클래스는 이를 상속하고 있지 않으므로, NotSerializableException 이 발생하게 됩니다. (참고로 주어진 문제의 정답에는 FileNotFoundException 이 발생한다고 나와있는데 이는 잘못된 것이라, 그 부분은 삭제했습니다.) 만약, Tree 클래스를 Serializable 인터페이스를 상속하게 하면 Exception 이 발생하지 않습니다.
따라서 답안은 B 가 됩니다.
'4.1) OCJP > 1Z0-851 / 2012-08-28' 카테고리의 다른 글
OCJP (1Z0-851 / 2012-08-28 / Exam B) - 57 번 (0) | 2015.09.10 |
---|---|
OCJP (1Z0-851 / 2012-08-28 / Exam B) - 56 번 (0) | 2015.09.10 |
OCJP (1Z0-851 / 2012-08-28 / Exam B) - 55 번 (0) | 2015.09.10 |
OCJP (1Z0-851 / 2012-08-28 / Exam B) - 54 번 (0) | 2015.09.10 |
OCJP (1Z0-851 / 2012-08-28 / Exam B) - 53 번 (0) | 2015.09.10 |
OCJP (1Z0-851 / 2012-08-28 / Exam B) - 51 번 (0) | 2015.09.10 |
OCJP (1Z0-851 / 2012-08-28 / Exam B) - 50 번 (0) | 2015.09.10 |
OCJP (1Z0-851 / 2012-08-28 / Exam B) - 49 번 (0) | 2015.09.10 |
OCJP (1Z0-851 / 2012-08-28 / Exam B) - 48 번 (2) | 2015.09.10 |
OCJP (1Z0-851 / 2012-08-28 / Exam B) - 47 번 (0) | 2015.09.10 |
RECENT COMMENT