설명 코드 조각은 SpecialDays라는 문자열 목록에서 스트림 메서드 allMatch, anyMatch, noneMatch 및 findFirst를 사용하고 있습니다. 이러한 메서드는 스트림의 요소에 대해 일치 작업을 수행하는 데 사용됩니다(예: 지정된 조건자를 만족하는 요소가 모두 있는지, 일부인지 또는 없음인지 확인하거나 조건자와 일치하는 첫 번째 요소 찾기1). 이 경우의 조건자는 문자열이 "Labour" 또는 "할로윈". 출력은 다음과 같습니다: 거짓: SpecialDays의 모든 요소가 "Labour" 또는 "Halloween"과 동일하지 않기 때문입니다. true: SpecialDays의 요소 중 하나 이상이 "Labour" 또는 "Halloween"과 동일하기 때문입니다. true: SpecialDays의 어떤 요소도 "Labour" 및 "Halloween"과 동일하지 않기 때문입니다. Optional[NewYear]: 술어와 일치하는 SpecialDays의 첫 번째 요소는 "NewYear"이고 findFirst 메소드는 널이 아닌 값을 포함하거나 포함하지 않을 수 있는 Optional 객체를 반환하기 때문입니다2. 참조: 스트림(Java SE 17 및 JDK 17), 선택 사항(Java SE 17 및 JDK 17)
1Z0-829 문제 22
어떤 두 코드 조각이 컴파일됩니까?
정답: B,E
설명 컴파일되는 두 코드 조각은 B와 E입니다. 이들은 var 변수를 선언하고 초기화하기 위해 올바른 구문을 사용하는 유일한 것입니다. var 키워드는 컴파일러가 이니셜라이저 표현식을 기반으로 변수의 유형을 유추할 수 있도록 하는 예약된 유형 이름입니다. 그러나 var 변수에는 이니셜라이저가 있어야 하며 이니셜라이저는 null 또는 람다 식이어서는 안 됩니다. 따라서 옵션 A는 이니셜라이저가 없기 때문에 유효하지 않고, 옵션 C는 null 이니셜라이저가 있기 때문에 유효하지 않으며, 옵션 D는 이니셜라이저로 람다 식이 있으므로 유효하지 않습니다. 옵션 B는 String 이니셜라이저가 있기 때문에 유효하고 옵션 E는 int 이니셜라이저가 있기 때문에 유효합니다. https://docs.oracle.com/en/java/javase/17/언어/local-variable-type-inference.html
1Z0-829 문제 23
코드 조각을 보면 다음과 같습니다. 결과는 무엇입니까?
정답: D
코드 조각이 "Dog"라는 이름의 새 Pet 객체를 생성하고 이를 변수 p에 할당하기 때문에 대답은 E입니다. 그런 다음 p를 p1에 할당합니다. 다음으로 p1의 이름을 "Cat"으로 변경합니다. 그런 다음 p1을 p에 할당합니다. 마지막으로 p를 null로 설정하고 p와 p1의 이름을 인쇄합니다. p가 null로 설정되어 있고 p1이 여전히 이름이 "Cat"인 Pet 개체를 가리키기 때문에 출력은 "Cat" 및 "null"이 됩니다.
1Z0-829 문제 24
주어진: 코드 조각은 다음과 같습니다.
정답: A
설명 코드 조각은 Stream API를 사용하여 ElectricProduct 개체 목록에 대한 축소 작업을 수행합니다. 축소 연산은 항등값, 누산기 함수, 결합기 함수의 세 부분으로 구성됩니다. ID 값은 결과의 초기 값이며 이 경우 0.0입니다. Accumulator 함수는 현재 결과와 스트림의 현재 요소라는 두 가지 인수를 취하고 새 결과를 반환하는 BiFunction입니다. 이 경우 누산기 함수는 (a,b) -> a + b.getPrice()입니다. 이는 각 요소의 가격을 현재 결과에 추가한다는 의미입니다. 결합기 함수는 두 개의 부분 결과를 가져와 하나로 결합하는 BinaryOperator입니다. 이 경우 결합자 함수는 (a,b) -> a + b입니다. 이는 두 부분 결과를 함께 더한다는 의미입니다. 그런 다음 코드 조각은 스트림에 필터 작업을 적용하여 지정된 조건자와 일치하는 요소만 포함하는 새 스트림을 반환합니다. 조건자는 p -> p.getPrice() > 10입니다. 이는 가격이 10보다 큰 요소만 선택한다는 의미입니다. 그런 다음 코드 조각은 필터링된 스트림에 매핑 작업을 적용하여 다음을 포함하는 새 스트림을 반환합니다. 주어진 함수를 각 요소에 적용한 결과입니다. 함수는 p -> p.getName()입니다. 이는 각 요소의 이름을 반환한다는 의미입니다. 그런 다음 코드 조각은 매핑된 스트림에서 Collect 메서드를 호출합니다. 이 메서드는 Collector를 사용하여 스트림 요소에 대해 변경 가능한 축소 작업을 수행합니다. 수집기는 Collectors.joining(",")입니다. 이는 스트림의 요소를 쉼표로 구분된 단일 문자열로 연결한다는 의미입니다. 그런 다음 코드 조각은 축소 작업의 결과와 수집 작업의 결과를 새 줄로 구분하여 인쇄합니다. 감소 작업의 결과는 300.00이며, 이는 가격이 10보다 큰 모든 ElectricProduct 객체의 가격 합계입니다. 수집 작업의 결과는 이름을 연결한 CellPhone,ToyCar,Motor,Fan입니다. 가격이 10보다 큰 모든 ElectricProduct 개체 중 하나입니다. 따라서 코드 조각의 출력은 다음과 같습니다. 300.00 휴대폰,장난감자동차,모터,선풍기 참조: 스트림(Java SE 17 및 JDK 17) - Oracle, 수집기(Java SE 17 및 JDK 17) - Oracle
1Z0-829 문제 25
모듈에 대한 설명으로 옳은 것은 무엇입니까?
정답: C
설명 모듈 경로는 모듈 또는 JAR 파일을 포함하는 일련의 디렉터리입니다. 명명된 모듈은 종속성을 선언하고 내보내는 모듈 설명자(module-info.class)와 이름이 있는 모듈입니다. 자동 모듈은 모듈 설명자가 없지만 JAR 파일의 이름과 내용에서 파생되는 모듈입니다. 명명된 모듈과 자동 모듈은 모두 모듈 경로에 배치될 수 있으며 Java 런타임에 의해 분석될 수 있습니다. 명명되지 않은 모듈은 클래스 경로에 있는 클래스와 같이 다른 모듈에 없는 모든 클래스를 포함하는 특수 모듈입니다. 이름이 지정되지 않은 모듈은 모듈 경로에 없지만 다른 모든 모듈을 읽을 수 있습니다.