3章13
このJavaのコードには、2つのStringオブジェクトaとbが宣言されています。aはnew String("sample")を使用してヒープに新しいオブジェクトとして作成され、bは文字列リテラル"sample"を参照しています。Javaにおいて文字列リテラルは、同じ内容の文字列リテラルがあれば常に同じインスタンスを参照するため、文字列リテラルはプールされます。これにより、bはリテラルプール内のインスタンスを参照しますが、aは新しく作成された別のインスタンスを参照しています。 コードの解析を行い、そのプロセスにコメントを加えて説明します。 public class Main { public static void main(String[] args) { String a = new String("sample"); // ヒープに新しいStringオブジェクトを作成 String b = "sample"; // 文字列リテラルプールからStringオブジェクトを参照 System.out.print(a == b); // 参照の同一性をチェック(false) System.out.print(", "); System.out.println(a.equals(b)); // 値の同一性をチェック(true) } } a ==...