【Java SE17 Silver 模擬試験】B-39

Java SE17 Silver 模擬試験
Java SE17 Silver 模擬試験

問題

次のコード断片について正しい説明はどれですか。

public class Main {
	public static void main(String[] args) {
		String s1 = new String("Duke");
		String s2 = s1;
		String s3 = s1.intern();
		String s4 = "Duke";
		if (s1 == s2)
			System.out.print("s1 == s2 | ");
		if (s1 == s3)
			System.out.print("s1 == s3 | ");
		if (s1 == s4)
			System.out.print("s1 == s4 | ");
		if (s2 == s3)
			System.out.print("s2 == s3 | ");
		if (s2 == s4)
			System.out.print("s2 == s4 | ");
		if (s3 == s4)
			System.out.print("s3 == s4 | ");
	}
}

選択肢

A)String オブジェクトは2つ作成され、s1 == s2 | s1== s3 | s2 == s3 | が出力される

B)String オブジェクトは1つだけ作成され、s1 == s2 | s1== s3 | s1 == s4 | s2 == s3 | s2 == s4 | s3 == s4 が出力される

C)String オブジェクトは2つ作成され、s1 == s2 | s1== s3 | が出力される

D)String オブジェクトは4つ作成され、何も出力されない

E)String オブジェクトは2つ作成され、s1 == s2 | s3== s4 | が出力される

F)String オブジェクトは3つ作成され、s1 == s2 | が出力される

解答

A)String オブジェクトは2つ作成され、s1 == s2 | s1== s3 | s2 == s3 | が出力される

B)String オブジェクトは1つだけ作成され、s1 == s2 | s1== s3 | s1 == s4 | s2 == s3 | s2 == s4 | s3 == s4 が出力される

C)String オブジェクトは2つ作成され、s1 == s2 | s1== s3 | が出力される

D)String オブジェクトは4つ作成され、何も出力されない

E)String オブジェクトは2つ作成され、s1 == s2 | s3== s4 | が出力される

F)String オブジェクトは3つ作成され、s1 == s2 | が出力される

解説

public class Main {
	public static void main(String[] args) {
		String s1 = new String("Duke");     //Stringオブジェクト1つ目
		String s2 = s1;
		String s3 = s1.intern();  //Stringオブジェクト2つ目 
                                                                //intern()は、同クラスのメモリ領域に同じ文字列が無いか探しに行くメソッド
                                                                //仮に同じ文字列が見つからなければ新たに文字列を生成
		String s4 = "Duke";
		if (s1 == s2)
			System.out.print("s1 == s2 | ");
		if (s1 == s3)
			System.out.print("s1 == s3 | ");
		if (s1 == s4)
			System.out.print("s1 == s4 | ");
		if (s2 == s3)
			System.out.print("s2 == s3 | ");
		if (s2 == s4)
			System.out.print("s2 == s4 | ");
		if (s3 == s4)
			System.out.print("s3 == s4 | ");
	}
}

前の問題へ SE17_B-38

次の問題へ SE17_B-40

対象資格:Java SE17 認定資格