별의 공부 블로그 🧑🏻‍💻
728x90
728x170

[1Z0-808][OCAJP] Dump 문제 91~100

 

문제 91

Given :

public class App {
    public static void main(String[] args) {
        Boolean[] bool = new Boolean[2];

        bool[0] = new Boolean(Boolean.parseBoolean("true"));
        bool[1] = new Boolean(null);

        System.out.println(bool[0] + " " + bool[1]);
    }
}

 

Q. What is the result?
A true null
B Compilation fails
C true false
D A NullPointerException is thrown at runtime

 

정답

C

 

해설/결과

  • Boolean 형 자료형은 true(1) 값을 제외한 나머지 값들을 false로 처리한다.
    • parseBoolean() 메서드는 String 형 변수를 Boolean 형 변수로 변환해준다.
      • 따라서 bool[0]에는 "true" 값이 할당된다.
    • null은 true가 아닌 값이므로 false로 처리된다.

 

 

문제 92

Given the code fragment : 

public static void main(String[] args) {
    ArrayList<Integer> points = new ArrayList<> ();
    points.add(1);
    points.add(2);
    points.add(3);
    points.add(4);
    points.add(null);
    points.remove(2);
    points.remove(null);
    System.out.println(points);
}

 

Q. What is the result?
A A NullPointerException is thrown at runtime.
B [1, 2, 4]
C [1, 2, 4, null]
D [1, 3, 4, null]
E [1, 3, 4]
F Compilation fails.

 

정답

B

 

해설/결과

  • points.remove(2); 는 배열에서 인덱스가 2인 원소를 제거한다.

 

 

문제 93

Given the code fragment :

int wd = 0;
String days[] = { "sun", "mon", "wed", "sat" };
for (String s : days) {
    switch (s) {
        case "sat":
        case "sun":
            wd -= 1;
            break;
        case "mon":
            wd++;
        case "wed":
            wd += 2;
    }
}
System.out.println(wd);

 

Q. What is the result?
A -1
B 3
C Compilation fails.
D 4

 

정답

B

 

해설/결과

 

 

문제 94

Given :

class C2 {
    public void disaplyC2() {
        System.out.print("C2");
    }
}

interface I {
    public void displayI();
}

class C1 extends C2 implements I {
    public void displayI() {
        System.out.print("C1");
    }
}

 

And given the code fragment:

C2 obj1 = new C1();
I obj2 = new C1();

C2 s = obj2;
I t = obj1;

t.displayI();
s.displayC2();

 

Q. What is the result?
A C2C2
B C1C2
C Compilation fails
D C1C1

 

정답

C

 

해설/결과

 

 

문제 95

Given the code fragment :

LocalDateTime dt = LocalDateTime.of(2014, 7, 31, 1, 1);
dt.plusDays(30);
dt.plusMonths(1);
System.out.print(dt.format(DateTimeFormatter.ISO_DATE));

 

Q. What is the result?
A 2014-09-30
B 2014-07-31
C An exception is thrown at runtime.
D 07-31-2014

 

정답

B

 

해설/결과

  • DateTime 클래스는 변경 불가능(immutable)하다. 따라서 초깃값인 2014-07-31이 정답이다.

 

 

문제 96

Given the code fragment :

public static void main(String[] args) {
    LocalDate date = LocalDate.of(2012, 01, 32);
    date.plusDays(10);
    System.out.println(date);
}

 

Q. What is the result?
A A DateTimeException is thrown at runtime.
B 2012-02-11
C 2012-02-10
D Compilation fails

 

정답

A

 

해설/결과

Exception in thread "main" java.time.DateTimeException: Invalid value for DayOfMonth (valid values 1 - 28/31): 32
  • LocalDate.of(2012, 01, 32); 부분에서 일(Day) 표기가 잘못되어 있어 예외가 발생한다.
    • 1~31 사이의 숫자만 입력 가능하다.

 

 

문제 97

Given the code fragment :

public static void main(String[] args) {
    int array[] = {10, 20, 30, 40, 50};
    int x = array.length;
    /* line n1 */
}

 

Q. Which two code fragments can be independently inserted at line n1 to enable the code to print the element of the array in reverse order? (Choose two.)
A while (x > 0) {
    x--;
    System.out.print(array[x]);
}
B do {
    x--;
    System.out.print(array[x]);
} while (x >= 0);
C while (x >= 0) {
    System.out.print(array[x]);
    x--;
}
D do {
    System.out.print(array[x]);
    --x;
} while (x >= 0);
E while (x > 0) {
    System.out.print(array[--x]);
}

 

정답

A, E

 

해설/결과

  • A : 5040302010
  • E : 5040302010

 

 

문제 98

Given :

class Caller {
    private void init() {
        System.out.println("Initialized");
    }

    private void start() {
        init();
        System.out.println("Started");
    }
}

public class TestCall {
    public static void main(String[] args) {
        Caller c = new Caller();
        c.start();
        c.init();
    }
}

 

Q. What is the result?
A Compilation fails.
B Initialized
Started
Initialized
C Initialized
Started
D An exception is thrown at runtime.

 

정답

A

 

해설/결과

Caller c = new Caller();     // 'Package.Q98.this' cannot be referenced from a static context

 

 

문제 99

The following grid shows the state of a 2D array :

0 0  
  X 0
  0 X

 

This grid is created with the following code :

char[][] grid = new char[3][3];
grid[1][1] = 'X';
grid[0][0] = '0';
grid[2][1] = 'X';
grid[0][1] = '0';
grid[2][2] = 'X';
grid[1][2] = '0';
// line n1

 

Q. Which line of code, when inserted in place of // line n1, adds an X into the grid so that the grid contains three consecutive X's?
A grid[1][3] = 'X';
B grid[3][1] = 'X';
C grid[0][2] = 'X';
D grid[2][0] = 'X';
E grid[1][2] = 'X'

 

정답

D

 

해설/결과

  • grid[2][0] 'X'를 넣을 경우 3개의 X가 연속되게 만들 수 있다.

 

 

문제 100

Given the code fragments :

Interface Exportable {
    void export();
}

class Tool implements Exportable {
    protected void export() {       // line n1
        System.out.println("Tool::export");
    }
}

class ReportTool extends Tool implements Exportable {
    public void export() {      // line n2
        System.out.println("RTool::export");
    }

    public static void main(String[] args) {
        Tool aTool = new ReportTool();
        Tool bTool = new Tool();
        callExport(aTool);
        callExport(bTool);
    }

    public static void callExport(Exportable ex) {
        ex.export();
    }
}

 

Q. What is the result?
A RTool::export
Tool::export
B Tool::export
Tool:export
C Compilation fails at both line n1 and line n2.
D Compilation fails only at line n1.
E Compilation fails only at line n2.

 

정답

D

 

해설/결과

  • 자식 클래스에서의 상속 메서드의 접근 지정자같거나 상위여야 한다. 
    • 따라서 lline n1에서 접근 지정자는 public이 되어야 한다.
      • public void export() {}  (O)
728x90
그리드형(광고전용)
⚠️AdBlock이 감지되었습니다. 원할한 페이지 표시를 위해 AdBlock을 꺼주세요.⚠️
starrykss
starrykss
별의 공부 블로그 🧑🏻‍💻


📖 Contents 📖