Oracle JAVA Silverの4択問題4問を出題してください。正解と解説もお願いします。
はい、Oracle Java Silverの4択問題を出題いたします。以下の10問をお楽しみください。
- 以下のコードを実行した場合、どのような結果が返されるでしょうか?
go<button class="flex ml-auto gap-2">Copy code</button>
int[] numbers = {1, 2, 3};
System.out.println(numbers[3]);
a) 1
b) 2
c) 3
d) IndexOutOfBoundsExceptionがスローされます。
【正解】 d) IndexOutOfBoundsExceptionがスローされます。
【解説】 配列の要素数は3ですが、numbers[3]
という配列の範囲外のインデックスを指定しています。そのため、IndexOutOfBoundsExceptionがスローされます。
- 以下のコードを実行した場合、どのような結果が返されるでしょうか?
rust<button class="flex ml-auto gap-2">Copy code</button>
String str = "Java";
str.concat("SE 11");
System.out.println(str);
a) Java
b) JavaSE 11
c) SE 11
d) NullPointerExceptionがスローされます。
【正解】 a) Java
【解説】 String
はimmutable(不変)です。つまり、concat()
メソッドは元の文字列を変更せず、新しい文字列を作成します。しかし、新しい文字列が元のstr
に代入されていないため、str
の値は変わらずに"Java"のままです。
- 以下のコードを実行した場合、どのような結果が返されるでしょうか?
rust<button class="flex ml-auto gap-2">Copy code</button>
String str = "Java";
str = str.concat("SE 11");
System.out.println(str);
a) Java
b) JavaSE 11
c) SE 11
d) NullPointerExceptionがスローされます。
【正解】 b) JavaSE 11
【解説】 concat()
メソッドで新しい文字列が作成され、str
に再代入されています。そのため、str
の値は"JavaSE 11"に変わります。
- 以下のコードを実行した場合、どのような結果が返されるでしょうか?
go<button class="flex ml-auto gap-2">Copy code</button>
int x = 1;
switch (x) {
case 1:
System.out.println("A");
case 2:
System.out.println("B");
default:
System.out.println("C");
}
a) A
b) A, B
c) A, B, C
d) B
【正解】 c) A, B, C
【解説】 switch
文のcase
ブロックには、break
文がないため、case 1
が一致した場合は"A"が出力され、その後のcase 2
とdefault
ブロックも実行されます。そのため、"B"と"C"も出力されます。