코드 조각이 "Dog"라는 이름의 새 Pet 객체를 생성하고 이를 변수 p에 할당하기 때문에 대답은 E입니다. 그런 다음 p를 p1에 할당합니다. 다음으로 p1의 이름을 "Cat"으로 변경합니다. 그런 다음 p1을 p에 할당합니다. 마지막으로 p를 null로 설정하고 p와 p1의 이름을 인쇄합니다. p가 null로 설정되어 있고 p1이 여전히 이름이 "Cat"인 Pet 개체를 가리키기 때문에 출력은 "Cat" 및 "null"이 됩니다.
1z1-829 문제 22
어떤 말이 진실이야?
정답: 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
1z1-829 문제 23
코드 조각을 보면 다음과 같습니다. 결과는 무엇입니까?
정답: C
설명 코드 조각은 새로운 Java 17 구문과 함께 스위치 문을 사용하고 있습니다. switch 문은 변수 Rank의 값을 확인하고 해당하는 Case 문을 실행합니다. 이 경우 순위 값은 4이므로 첫 번째 Case 문이 실행되어 "Range1"이 인쇄됩니다. 두 번째 및 세 번째 Case 문도 실행되어 "Range2" 및 "Range3"을 인쇄합니다. 기본 케이스 문도 실행되어 "유효한 순위가 아님"이 인쇄됩니다. 참조: Java 언어 변경 사항 - 오라클 도움말 센터
1z1-829 문제 24
제품 클래스를 고려하면 다음과 같습니다. 그리고 상점 클래스는 다음과 같습니다. 결과는 무엇입니까?
정답: E
Product 클래스의 readObject 메소드에 @Override 주석이 없기 때문에 코드 조각이 컴파일되지 않습니다. readObject 메서드는 객체의 역직렬화 프로세스를 사용자 정의하는 데 사용되는 특수 메서드입니다. 비공개로 선언되어야 하고, 반환 유형이 없으며, ObjectInputStream 유형의 단일 매개변수를 취해야 합니다. 또한 ObjectInputStream 클래스의 기본 동작을 재정의함을 나타내기 위해 @Override 주석을 달아야 합니다. @Override 주석이 없으면 컴파일러는 readObject 메서드를 deserialization 후크가 아닌 일반 메서드로 처리합니다. 따라서 코드 조각에서 컴파일 오류가 발생합니다. 참조: 객체 직렬화 - Oracle, [ObjectInputStream (Java SE 17 & JDK 17) - Oracle]
1z1-829 문제 25
코드 조각을 보면 다음과 같습니다. 결과는 무엇입니까?
정답: C
코드 조각은 "Hello! Java" 값을 사용하여 문자열 변수 "a"를 생성합니다. 그런 다음 "a"에 "Java" 인덱스를 인쇄합니다. 다음으로 "Hello!"를 대체합니다. "환영합니다!" 안에". 그런 다음 "a"에 "Java" 인덱스를 인쇄합니다. 마지막으로 "a" 값을 사용하여 새 StringBuilder 개체 "b"를 생성하고 "b"에 "Java" 인덱스를 인쇄합니다. "a"의 "Java" 인덱스가 8이고 "Hello!"를 대체한 후 "a"의 "Java" 인덱스이므로 출력은 8109가 됩니다. "환영합니다!" 은 10이고 "b"의 "Java" 인덱스는 9입니다. 참조: Oracle Java SE 17 개발자 소스 및 문서: [String (Java SE 17 & JDK 17)], [StringBuilder (Java SE 17 & JDK 17) ]