반응형

.

Oracle OCJP 자바 시험

[1Z0-851]

Java Standard Edition 6 Programmer Certified Professional Exam


 다들 이 무더운 여름에 OCJP 및 자바 공부 하시느라 고생이 많으십니다.

저도 학원에서 자바 기초를 배우면서 나름대로 독학중입니다. 근데 올해 6월부로 300달러 (약 35만원)으로 폭등했습니다. -_-;;;


* 이 포스트에 첨부된 덤프 출처 :

sun.realexamquestions.310-065.oracle.1z0-851.v2012-01-28.by.carlos.239q.vce


※ 덤프 파일은 인터넷에 공개되어 있지만, 유료로 판매되는 사이트도 있고,

혹시나 하는 마음에 첨부하진 않았습니다. 구글에서 검색하셔서 받으실 수 있습니다.


※ 덤프 (Dump) 란?

쉽게 말해서 기출 문제라고 보시면 됩니다. 오라클 OCJP (구 SCJP)의 경우 PC로 시험을 치게 됩니다. 시험 문제 출제 및 평가용으로 쓰이는 파일인데, 이게 인터넷에 막 올라옵니다. ITQ처럼 기출문제를 아예 제공하는 형국인지는 잘 모르겠습니다.



 ☞ 01. (교착문제) Which two statements are true?


<01>. Which two statements are true? (Choose two.)


A. It is possible for more than two threads to deadlock at once.

B. The JVM implementation guarantees that multiple threads cannot enter into a deadlocked state.

C. Deadlocked threads release once their sleep() method's sleep duration has expired.

D. Deadlocking can occur only when the wait(), notify(), and notifyAll() methods are used incorrectly.

E. It is possible for a single-threaded application to deadlock if synchronized blocks are used incorrectly.

F. If a piece of code is capable of deadlocking, you cannot eliminate the possibility of deadlocking by inserting invocations of Thread.yield().


* 영어사전 : [deadlock] 교착 상태, 교착 상태에 빠지다, 동점

a situation in which no progress can be made or no advancement is possible


* 영어사전 : [implementation] 구현, 이행, 완성, 수행

the act of accomplishing some aim or executing some order


* 영어사전 : [implementation] 이행, 완성, 수행

the act of accomplishing some aim or executing some order


* 정답 : A ,F 



 ☞ 2. Which capability exists only in Java.io.FileWriter?


<02>. Which capability exists only in java.io.FileWriter?


A. Closing an open stream.

B. Flushing an open stream.

C. Writing to an open stream.

D. Writing a line separator to an open stream.


* 정답 : D


 ☞ 3. 예외 처리 관련 문제


※ Given :

static void test() throws RuntimeException {

try {

System.out.print("test ");

throw new RuntimeException();

}

catch (Exception ex ) { System.out.print("exception "); }

}


public static void main(String[] args) {

try { test(); }

catch (RuntimeException ex) { System.out.print("runtime "); }

System.out.print("end ");

} }


<03>. What is the result?

A. test end

B. Compilation fails.

C. test runtime end

D. test exception end

E. A Throwable is thrown by main at runtime.


* 정답 : D





 ☞ 4. 클래스, 메소드, 상속...??


※ Given :

11. abstract class Vehicle { public int speed() { return 0; } 

12. class Car extends Vehicle { public int speed() { return 60; }

13. class RaceCar extends Car { public int speed() { return 150; }...


21. RaceCar racer = new RaceCar();

22. Car car = new RaceCar();

23. Vehicle vehicle = new RaceCar();

24. System.out.println(racer.speed() + ", " + car.speed() + ", " + vehicle.speed() );


<04>. What is the result?

A. 0, 0, 0

B. 150, 60, 0

C. Compilation fails.

D. 150, 150, 150

E. An exception is thrown at runtime.


* 정답 : D

* 문제풀이 위해 작성한 JAVA 파일 받기 :

Source_04.java



 

 위의 문제에서 11번 라인 "abstract"  추상 클래스를 선언한 것입니다.

즉, 클래스가 갖고 있는 메소드가 바디를 가지고 있지 않고, 메소드의 인터페이스 부분(선언부)만 갖고 있는 메소드가 하나라도 있으면 이 클래스를 추상 클래스(abstract class)라고 부른답니다.[각주:1] 즉, 상속 관계에서 슈퍼 클래스로 쓰이므로, 슈퍼 클래스라고 불린다네요.

 (추상 클래스 = 슈퍼 클래스 = 불완전 클래스)


 11번 라인의 추상 클래스 'Vehicle' 에 있는 speed() 메소드추상 메소드가 아닙니다.

추상 메소드는 바디(내용)없이 메소드의 선언부만 갖고 있는 메소드를 말합니다. speed() 메소드에 " return 0; " 이라는 바디(내용)이 있습니다.


 그나저나 왜 값들이 전부 150으로 나오는지 이제야 살짝(?) 깨달았습니다.ㅋㅋ

좀 더 충분히 이해가 되고, 여러분들 중에 원하시는 분 계신다면 나중에 포스팅해보겠습니다.



 ☞ 5. 모듈화 (캡슐화, 약결합 등...??)


 A team of programmers is reviewing a proposed API for a new utility class. After some discussion, they realize that they can reduce the number of methods in the API without losing any functionality. If they implement the new design, which two ○○ principles will they be promoting?


A. Looser coupling

B. Tighter coupling

C. Lower cohesion

D. Higher cohesion

E. Weaker encapsulation

F. Stronger encapsulation


* 정답 : A



 ☞ 6. Which two, independently, will allow Sub to Compile?


※ Given :

1. class Super {

2. private int a;

3. protected Super (int a) { this.a = a; }

4. }


11. class Sub extends Super {

12. public Sub (int a) { super(a); }

13. public sub() { this.a = 5; }

14. }


 Which two, independently, will allow Sub to compile? (Choose two.)

A. Change line 2 to:

public int a;

B. Change line 2 to:

protected int a;

C. Change line 13 to:

public Sub() { this(5); }

D. Change line 13 to:

public Sub() { super(5); } 

E. Change line 13 to:

public Sub() { super(a); }


* 정답 : C , D



 ☞ 7. 아톰 그란테 아톰 그란테...


※ Given :

1. class Atom {

2. Atom() {

System.out.print("Atom "); }

3. }

4. class Rock extends Atom {

5. Rock(String type) { System.out.print(type); }

6. }

7. public class Mountain extends Rock {

8.    Mountain() {

9.        super("granite ");

10.        new Rock("granite ");

11.    }

12.    public static void main(String[] args) { new Mountain() ; }

13. }


 What is the result?

A. Compilation fails.

B. atom granite

C. granite granite

D. atom granite granite

E. An exception is thrown at runtime.

F. atom granite atom granite


* 정답 : F




 이건 개념이 잘 안잡히네요 ㅜ_ㅜ;;



혹시 좋은 정보나 힌트 등을 댓글로 남겨주시면 감사합니다.

다들 열심히 공부하셔서 OCJP 합격하시길 빕니다 ^^

  1. 책 "막힘없이 배우는 Java Programming" 김은옥 지음, 삼양미디어 p306, 307 [본문으로]
반응형
반응형