Phương thức intern()
Phương thức intern() trong Java trả về một biểu diễn chuẩn (canonical representation) cho đối tượng String. Nói cách khác, Phương thức intern() giúp giảm thiểu số lượng đối tượng String bằng cách duy trì một bảng tham chiếu đến các chuỗi giống nhau.
Khi bạn gọi phương thức intern() trên một chuỗi, Java sẽ kiểm tra trong String pool xem có chuỗi nào tồn tại giống hệt chuỗi hiện tại không. Nếu tìm thấy một chuỗi giống hệt, phương thức sẽ trả về chính chuỗi đó; Nếu không tìm thấy, nó sẽ thêm chuỗi hiện tại vào String pool và trả về một tham chiếu đến chuỗi mới được thêm vào.
Dưới đây là một ví dụ đơn giản minh họa cách sử dụng phương thức intern():
Ví dụ: Example.java
public class Example {
public static void main(String[] args) {
// Tạo hai chuỗi bằng cách sử dụng phép nối
String str1 = new String("hello");
String str2 = new String("hello");
// Tạo chuỗi từ pool
String internedStr1 = str1.intern();
String internedStr2 = str2.intern();
// So sánh các chuỗi
System.out.println(str1 == str2); // false, vì chúng là các đối tượng khác nhau
System.out.println(internedStr1 == internedStr2); // true, vì chúng tham chiếu đến cùng một đối tượng trong pool
}
}
Kết quả của chương trình là:
true
Trong ví dụ này:
↳ str1 == str2 trả về false vì chúng không cùng tham chiếu đến cùng một đối tượng.
↳ internedStr1 == internedStr2 trả về true vì sau khi gọi intern(), cả hai biến đều tham chiếu đến cùng một chuỗi trong pool.