Q001
NO.36 Given:
import java.time.LocalDate;
import static java.time.DayOfWeek.*;
public class Main {
public static void main(String[] args) {
var today = LocalDate.now().with(TUESDAY).getDayOfWeek();
switch (today) {
case SUNDAY:
case SATURDAY:
System.out.println("Weekend");
break;
case MONDAY: FRIDAY:
System.out.println("Working");
break;
default:
System.out.println("Unknown");
}
}
}
What is the result?
A. WorkingUnknown
B. Unknown
C. TuesdayUnknown
D. The compilation fails.
E. Tuesday
F. Working
Answer: B
LocalDate.now() 會顯示今天的日期如下。註 : 2025-07-02 是星期三
2025-07-02
LocalDate.now().with(TUESDAY),那個 TUESDAY 需 import static java.time.DayOfWeek.TUESDAY,然後會顯示本周星期二的日期
2025-07-01
LocalDate.now().with(TUESDAY).getDayOfWeek() 會顯示如下
TUESDAY
switch 裏的 case 並沒有 TUESDAY,所以結果為 Unknown。
「case MONDAY: FRIDAY:」 這種寫法是無效的,但並不會造成編譯失敗,是可正常執行。
Q002
NO.155 Given: LocalDate dl=LocalDate.now(); dl.pushDays(1); dl=dl.minusMonths(2); LocalDate d2=d1.pushWeeks(3); d2.minusDays(4); d2=null; How many LocalDate objects are created in this example? A. 2 B. 3 C. 4 D. 5 Answer: D
LocalDate 是 immutable(不可變) 的,所以每次呼叫像 plusDays()、minusMonths() 這類方法時,都會回傳一個新的 LocalDate 物件,不會改變原來的物件。
