본문 바로가기

Certification/OCAJP

OCAJP 준비 (Q126 - Q145)

1.

abstract 클래스의 특징:

1. 일반 메소드와 추상 메소드 모두 가질 수 있음

2. 인스턴스화(new) 불가능

3. public, protected, private 접근 제어자 모두 사용 가능

 

2.

// 1. Test 생성자 호출
public Test(int x, int y) {
    initialize(x, y);
}

// 2. initialize 메소드 실행
public void initialize(int x, int y) {
    this.x = x * x;    // 클래스 변수 x = 3 * 3 = 9 
    this.y = y * y;    // 클래스 변수 y = 5 * 5 = 25
}

// 3. main의 출력문
// 여기서는 main의 지역변수 x, y를 출력
System.out.println(x + " " + y);  // "3 5" 출력
System.out.println(obj.x + " " + obj.y);  // "9 25" 출력

 

3.

String[] arr = {"Hi", "How", "are", "You"};
List<String> arrList = new ArrayList<>(Arrays.asList(arr));

// 람다식을 사용한 removeIf
if (arrList.removeIf((String s) -> (return s.length() <= 2))) {
    System.out.println(s + "removed");  // ❌ 여기서 s에 접근 불가
}

 

 

4.

  • 톱레벨 클래스는 public 또는 default만 가능
  • final 클래스는 상속 불가능
  • abstract 클래스는 반드시 상속되어야 함
  • final abstract는 모순

5.

class X {
   public void printFileContent() {   // 여기서 Exception을 던질거라고 선언 안됨
       throw new IOException();      // 에러!
   }
}

>>>>>>>>>>>
// 수정: printFileContent 메서드에 throws 선언 추가
public void printFileContent() throws IOException {
    throw new IOException();
}

public class Test {
   public static void main(String[] args) {  // 여기도 Exception 처리 안됨
       X xobj = new X();
       xobj.printFileContent();     // 에러!
   }
}

>>>>>>>>>>>>
// 수정: main 메서드에 throws 선언 추가
public static void main(String[] args) throws Exception {
X xobj = new X();
xobj.printFileContent();
}

 

try { xobj.printFileContent(); }

catch (Exception e) { // 예외 처리 }

catch (IOException e) { // IOException 예외 처리  }        >>>  중복된 예외 처리 /   subclass of Exception

 

6.

 

  • 바이트코드는 특정 플랫폼에 종속되지 않으며, **Java Virtual Machine(JVM)**이 설치된 어떤 플랫폼에서도 실행
  • JVM은 바이트코드를 플랫폼에 맞는 기계어로 변환하여 실행
  • 이것이 **"Write Once, Run Anywhere"**의 핵심 개념

It can be serialized across network.

  • Java에서는 객체(Object)를 직렬화(Serialization)하여 네트워크로 전송할 수 있는 기능이 있음
  • 엄밀히 말하면 바이트코드 자체가 아니라, 바이트코드로 생성된 객체가 네트워크 전송이 가능하다는 의미로 해석

It can run on any platform that has the Java Runtime Environment.

 

7.

enum(열거형)은 관련된 상수들의 집합을 정의하는 타입

// 상태를 나타낼 때
enum Status {
    READY, RUNNING, FINISHED, ERROR
}

// 방향을 나타낼 때
enum Direction {
    NORTH, SOUTH, EAST, WEST
}

 

'Certification > OCAJP' 카테고리의 다른 글

OCAJP 준비 (Q166 - Q176)  (0) 2024.11.25
OCAJP 준비 (Q146 - Q165)  (0) 2024.11.21
OCAJP 준비 (Q106 - Q125)  (8) 2024.11.13
OCAJP 준비 (Q91 - Q105)  (1) 2024.11.07
OCAJP 준비 (Q66 - Q90)  (2) 2024.11.07