String Constant Pool trong Java


String Constant Pool trong Java 💡

Trong Java, String Constant Pool là một vùng nhớ đặc biệt trong Heap để lưu trữ các chuỗi (String) nhằm tối ưu hóa bộ nhớ. Khi tạo một chuỗi bằng string literal (ví dụ: "Hello"), Java sẽ kiểm tra trong pool xem chuỗi đó đã tồn tại chưa:

✅ Nếu có, tham chiếu sẽ trỏ đến chuỗi có sẵn.
✅ Nếu chưa, Java sẽ tạo một đối tượng mới trong pool.

Ví dụ:

String s1 = "Hello";

String s2 = "Hello";

System.out.println(s1 == s2); // true (cùng tham chiếu)

Tuy nhiên, khi dùng new String(), Java sẽ tạo một đối tượng mới trong heap thay vì tái sử dụng trong pool:

String s3 = new String("Hello"); System.out.println(s1 == s3); // false (khác vùng nhớ)

🔹 Lợi ích: Giảm thiểu việc tạo đối tượng String dư thừa, tiết kiệm bộ nhớ.