코드는 Java의 메소드 오버로딩 및 유형 변환 개념을 보여주기 때문에 대답은 C입니다. 메서드 오버로드를 사용하면 여러 메서드가 이름은 같지만 매개변수는 다를 수 있습니다. 유형 변환을 사용하면 한 데이터 유형의 값을 자동으로 또는 명시적으로 다른 데이터 유형에 할당할 수 있습니다. 코드에서 Test 클래스에는 sum이라는 네 가지 메서드가 있으며 각 메서드에는 int, float 및 double이라는 서로 다른 매개 변수 유형이 있습니다. 기본 메서드는 Test 인스턴스를 만들고 다른 인수를 사용하여 sum 메서드를 호출합니다. 컴파일러는 다음 규칙에 따라 인수와 일치하는 가장 구체적인 방법을 선택합니다. 인수 유형과 매개변수 유형이 정확하게 일치하는 경우 해당 메소드가 선택됩니다. 정확히 일치하는 항목은 없지만 호환 가능한 매개변수 유형이 있는 메서드가 있는 경우 해당 메서드가 선택됩니다. 호환 가능한 유형은 int에서 long으로, float에서 double로와 같이 자동으로 다른 유형으로 변환될 수 있는 유형입니다. 호환되는 매개변수 유형을 가진 메소드가 두 개 이상 있는 경우 가장 구체적인 메소드가 선택됩니다. 가장 구체적인 방법은 매개변수 유형이 크기나 정밀도 측면에서 인수 유형에 가장 가까운 방법입니다. 코드에서는 다음 메서드 호출이 수행됩니다. test.sum(10, 10.5) -> sum(int a, float b) 메소드와 정확히 일치하므로 선택됩니다. 결과는 20.5이며 int로 변환되어 20(B)로 인쇄됩니다. test.sum(10) -> 이것은 어떤 메소드와도 정확하게 일치하지는 않지만 int가 자동으로 double로 변환될 수 있으므로 호환 가능한 유형의 sum(double a) 메소드와 일치합니다. 결과는 10.0이며 10(A)로 인쇄됩니다. test.sum(10.5, 10) -> 이것은 정확히 어떤 메소드와도 일치하지 않지만 호환 가능한 유형의 두 가지 메소드(sum(float a, float b) 및 sum(double a, double b))와 일치합니다. double이 float보다 인수 유형에 더 가깝기 때문에 후자가 더 구체적입니다. 결과는 20.5이며 20(D)으로 인쇄됩니다. 따라서 출력은 BA D입니다. 참조: Oracle Certified Professional: Java SE 17 개발자 자바 SE 17 개발자 OCP Oracle Certified Professional Java SE 17 개발자 학습 가이드 Java의 메소드 오버로딩 예제를 사용하여 Java에서 유형 변환 자동 유형 변환을 통한 Java 메소드 오버로딩
1z1-829 문제 12
어떤 말이 진실이야?
정답: A
Lock 인터페이스의 tryLock() 메소드는 잠금을 획득하려는 비차단 시도입니다. 현재 스레드에서 잠금을 사용할 수 있고 획득하면 true를 반환하고, 그렇지 않으면 false를 반환합니다. 다른 스레드가 잠금을 해제할 때까지 기다리지 않습니다. 이는 잠금이 획득될 때까지 현재 스레드를 차단하고 어떤 값도 반환하지 않는 lock() 메서드와 다릅니다. 참조: https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/locks/Lock.html#tryLock(), 3, 4, 5
1z1-829 문제 13
코드 조각을 보면 다음과 같습니다. 도서 목록을 정렬하는 작업은 무엇인가요?
정답: D
코드 조각은 Collections.sort() 메서드를 사용하여 도서 목록을 정렬하려고 합니다. CompareTo() 메서드는 비교기의 두 개체를 비교하는 올바른 방법이 아니기 때문에 정답은 D입니다. Compare() 메서드는 Comparator의 두 개체를 비교하고 해당 순서를 나타내는 int 값을 반환하는 올바른 방법입니다1. CompareTo() 메서드는 class2 객체의 자연스러운 순서를 정의하는 Comparable 인터페이스를 구현하는 데 사용됩니다. 다른 옵션은 이미 변경 가능한 목록 유형을 변경하지 않거나, Collect()3과 같은 터미널 작업이 필요한 스트림 정렬에 올바른 구문을 사용하지 않기 때문에 올바르지 않습니다. 참조: 비교기(Java SE 17 및 JDK 17), 비교 가능(Java SE 17 및 JDK 17), 스트림(Java SE 17 및 JDK 17)
1z1-829 문제 14
코드 조각을 보면 다음과 같습니다. 작업자 세트에서 호출 가능한 모든 객체를 호출하는 코드 조각은 무엇입니까?
정답: C
옵션 C의 코드 조각은 ExecutorService의 InvokeAll() 메서드를 사용하여 설정된 작업자에서 호출 가능한 모든 개체를 호출합니다. 이 메소드는 Callable 객체 컬렉션을 가져와 작업 결과를 나타내는 Future 객체 목록을 반환합니다. 다른 옵션은 잘못된 메서드(invokeAny() 또는 submit())를 사용하거나 구문 오류(괄호 또는 세미콜론 누락)가 있기 때문에 올바르지 않습니다. 참조: AbstractExecutorService(Java SE 17 및 JDK 17) - Oracle
1z1-829 문제 15
모듈에 대한 설명으로 옳은 것은 무엇입니까?
정답: C
모듈 경로는 모듈 또는 JAR 파일을 포함하는 일련의 디렉터리입니다. 명명된 모듈은 종속성을 선언하고 내보내는 모듈 설명자(module-info.class)와 이름이 있는 모듈입니다. 자동 모듈은 모듈 설명자가 없지만 JAR 파일의 이름과 내용에서 파생되는 모듈입니다. 명명된 모듈과 자동 모듈은 모두 모듈 경로에 배치될 수 있으며 Java 런타임에 의해 분석될 수 있습니다. 명명되지 않은 모듈은 클래스 경로에 있는 클래스와 같이 다른 모듈에 없는 모든 클래스를 포함하는 특수 모듈입니다. 이름이 지정되지 않은 모듈은 모듈 경로에 없지만 다른 모든 모듈을 읽을 수 있습니다.