코드는 SUNNY, CLOUDY 및 RAINY의 세 가지 값을 사용하여 Forecast라는 열거형 클래스를 정의합니다. toString() 메서드는 항상 "SNOWY"를 반환하도록 재정의되었습니다. 기본 메소드에서는 SUNNY의 서수 값인 0이 인쇄되고 그 뒤에 대문자로 변환된 CLOUDY 값인 "CLOUDY"가 인쇄됩니다. 그러나 Forecast의 toString() 메소드는 실제 값과 관계없이 "SNOWY"를 반환하므로 출력은 "0 SNOWY"가 됩니다. 참조: Enum(Java SE 17 및 JDK 17), Enum.EnumDesc(Java SE 17 및 JDK 17)
1z1-829 문제 2
주어진: 결과는 무엇입니까?
정답: D
코드 조각은 비트 연산자 &(AND), | (OR) 및 ^(XOR)은 정수 값의 이진 표현에 대한 연산을 수행합니다. & 연산자는 두 피연산자가 모두 1인 각 비트 위치에 1을 반환하고, | 연산자는 피연산자 중 하나가 1인 각 비트 위치에서 1을 반환하고, ^ 연산자는 하나의 피연산자만 1인 각 비트 위치에서 1을 반환합니다. 정수 값의 이진 표현은 다음과 같습니다. 1000 = 1111101000 100 = 1100100 101 = 1100101 코드 조각은 다음 작업을 수행합니다. x = x ^ y; // x는 1111010101이 되며, 이는 10진수로 1001입니다. y = x ^ y; // y는 1100100이 되며, 이는 10진수로 100입니다. x = x ^ y; // x는 1100101이 되며, 이는 10진수로 101입니다. 그런 다음 코드 조각은 x, y 및 z 값(각각 1001, 100 및 1000)을 인쇄합니다. 따라서 선택지 D가 맞습니다.
1z1-829 문제 3
주어진: 코드가 Open Close를 인쇄할 수 있도록 하는 두 가지 수정 사항은 무엇입니까?
정답: B,E
제공된 코드는 AutoCloseable 유형의 리소스를 선언하는 try-with-resources 문입니다. 리소스는 AutoCloseable 인터페이스를 구현하고 close() 메서드를 재정의하는 익명 클래스입니다. 코드에는 변수 s의 값을 인쇄하는 print() 메서드도 있습니다. 코드는 "Open Close"를 인쇄해야 하지만 두 가지 오류로 인해 컴파일되지 않습니다. 첫 번째 오류는 n1 라인에 있습니다. 여기서 익명 클래스의 선언 끝에 세미콜론이 누락되어 있습니다. 이로 인해 구문 오류가 발생하고 코드가 컴파일되지 않습니다. 이 오류를 해결하기 위해 옵션 B는 익명 클래스의 닫는 중괄호 뒤에 세미콜론을 추가합니다. 두 번째 오류는 n2 행에 있는데, 여기서 print() 메서드가 객체 참조 없이 호출됩니다. print() 메서드는 정적이 아니고 객체 없이 호출할 수 없기 때문에 컴파일 오류가 발생합니다. 이 오류를 해결하기 위해 옵션 E는 변수 t를 사용하여 print() 메서드에 객체 참조를 추가합니다. 따라서 옵션 B와 E는 정확하며 코드에서 "Open Close"를 인쇄할 수 있습니다.
1z1-829 문제 4
주어진:
정답: B
Integer 클래스의 parsInt 메소드는 정적 메소드이기 때문에 코드 조각은 컴파일되지 않습니다. 즉, 클래스의 객체를 생성하지 않고도 호출할 수 있습니다. 그러나 코드는 Integer 유형의 객체에 대해parseInt 메서드를 호출하려고 시도하고 있는데 이는 허용되지 않습니다. ParseInt 메소드를 호출하는 올바른 방법은 Integer.parseInt(s)와 같은 클래스 이름을 사용하는 것입니다. 따라서 코드 조각에서 컴파일 오류가 발생합니다. 참조: 정수(Java SE 17 및 JDK 17) - Oracle
1z1-829 문제 5
코드 조각을 보면 다음과 같습니다. 어떤 코드 조각이 다른 값을 반환합니까?
정답: C
설명 대답은 C입니다. 왜냐하면 코드 조각은 축소 작업에 다른 옵션과 다른 구문과 논리를 사용하기 때문입니다. 옵션 C의 축소 메소드는 스트림의 두 요소를 하나로 결합하는 BinaryOperator인 단일 매개변수를 사용합니다. 이 메서드는 스트림이 비어 있는지 여부에 따라 값을 포함하거나 포함하지 않을 수 있는 Optional을 반환합니다. 그런 다음 코드 조각은 존재 여부에 관계없이 감소 메소드의 결과에 5를 추가합니다. Optional이 비어 있는 경우 예외가 발생하거나 Optional이 비어 있지 않은 경우 다른 옵션과 다른 값을 생성할 수 있습니다. 다른 옵션은 축소 작업에 대해 다른 구문과 논리를 사용합니다. 이들은 모두 ID 값과 스트림 요소를 누산기와 결합하는 BinaryOperator라는 두 개의 매개 변수를 사용합니다. 이 메서드는 스트림이 비어 있으면 ID 값과 같은 최종 누산기 값을 반환하고, 그렇지 않으면 스트림의 모든 요소에 BinaryOperator를 적용한 결과를 반환합니다. 그런 다음 코드 조각을 추가합니다. 5를 축소 메소드의 결과로 설정하면 항상 유효한 값이 생성됩니다. 예를 들어 listOfNumbers에 [1, 2, 3]이 포함되어 있다고 가정합니다. 그런 다음 옵션 A는 다음 단계를 수행합니다. 누산기를 항등값 5로 초기화 BinaryOperator Integer::sum을 누산기와 첫 번째 요소에 적용: 5 + 1 = 6 누산기를 6으로 업데이트 BinaryOperator Integer::sum을 누산기와 두 번째 요소에 적용: 6 + 2 = 8 누산기를 8로 업데이트 BinaryOperator Integer::sum을 누산기에 적용 세 번째 요소: 8 + 3 = 11 누산기를 11로 업데이트 최종 누산기 값 11 반환 최종 누산기 값에 5 추가: 11 + 5 = 16 옵션 B는 메서드 대신 람다 식을 사용하는 것을 제외하고 옵션 A와 동일한 단계를 수행합니다. BinaryOperator에 대한 참조입니다. 옵션 D는 스트림 대신 병렬 스트림을 사용하는 것을 제외하고 옵션 A와 동일한 단계를 수행합니다. 이는 BinaryOperator 적용 순서를 변경할 수 있지만 최종 결과는 변경할 수 없습니다. 옵션 E는 5 대신 ID 값 0을 사용하는 것을 제외하고 옵션 A와 동일한 단계를 수행합니다. 그러나 옵션 C는 다음 단계를 수행합니다. 첫 번째 및 두 번째 요소에 BinaryOperator Integer::sum 적용: 1 + 2 = 3 이전 결과 및 세 번째 요소에 BinaryOperator Integer::sum 적용: 3 + 3 = 6 최종 결과 값이 포함된 Optional 반환 6 Optional 값에 5를 추가: Optional. of(6) + 5 = Optional.of(11) 보시다시피 옵션 C는 다른 옵션과 다른 값을 생성하고 감소 작업에 다른 구문과 논리를 사용합니다. 참고 자료 Oracle Certified Professional: Java SE 17 Developer Java SE 17 Developer OCP Oracle Certified Professional Java SE 17 개발자 학습 가이드 Stream.reduce() 가이드