Java String

Làm chủ Java String

String là một trong những kiểu dữ liệu quan trọng nhất trong Java. Hiểu rõ cách String hoạt động sẽ giúp bạn viết code hiệu quả hơn và tránh được nhiều lỗi phổ biến.

1. String là Immutable (Bất biến)

Một đặc điểm quan trọng của String trong Java là nó bất biến. Điều này có nghĩa là sau khi được tạo, giá trị của String không thể thay đổi.

String str = "Hello";
str.concat(" World");
System.out.println(str); // Vẫn in ra "Hello"

// Để thay đổi, phải gán lại:
str = str.concat(" World");
System.out.println(str); // In ra "Hello World"

2. String Pool

Java sử dụng một vùng nhớ đặc biệt gọi là String Pool để lưu trữ các String literals. Điều này giúp tiết kiệm bộ nhớ khi nhiều biến tham chiếu đến cùng một chuỗi.

String s1 = "Java";
String s2 = "Java";
String s3 = new String("Java");

System.out.println(s1 == s2);     // true (cùng tham chiếu)
System.out.println(s1 == s3);     // false (khác tham chiếu)
System.out.println(s1.equals(s3)); // true (cùng giá trị)

3. So sánh String

Luôn sử dụng equals() hoặc equalsIgnoreCase() để so sánh nội dung, không dùng ==.

String str1 = "Java";
String str2 = "java";

// So sánh phân biệt hoa thường
str1.equals(str2);           // false

// So sánh không phân biệt hoa thường
str1.equalsIgnoreCase(str2); // true

4. Các phương thức hữu ích

5. StringBuilder vs StringBuffer

Khi cần thay đổi String nhiều lần, hãy sử dụng StringBuilder (không thread-safe) hoặc StringBuffer (thread-safe) thay vì String để tránh tạo nhiều object không cần thiết.

StringBuilder sb = new StringBuilder("Hello");
sb.append(" World");
sb.append("!");
String result = sb.toString(); // "Hello World!"

Kết luận

Hiểu rõ về String trong Java giúp bạn viết code tối ưu hơn. Hãy nhớ: String là immutable, sử dụng equals() để so sánh, và dùng StringBuilder khi cần thao tác nhiều lần.