Chào bạn đến với phanlamcoder.blogspot.com!
Ở bài viết này chúng ta sẽ tìm hiểu về đối tượng String trong Java:
Trong Java, các đối tượng chuỗi là
immutable. Immutable nghĩa là không thể thay đổi hay không thể
sửa đổi. Một khi đối tượng String đã được tạo thì dữ liệu hoặc trạng thái của
nó không thể bị thay đổi nhưng một đối tượng String được tạo. Bạn theo dõi ví
dụ sau để hiểu khái niệm Immutable trong Java:
class Testimmutablestring{
public static void main(String args[]){
String s="yzenny";
s.concat(" blogspot");//phuong thuc concat() phu them vao cuoi chuoi
System.out.println(s);//se in yzenny vi
string la immutable
}
}
Ở đây,
"yzenny" là không bị thay đổi nhưng một đối tượng mới được tạo với
" blogspot". Đó là tại sao String trong Java là không thể sửa đổi.
Trong ví dụ trên, hai đối tượng được tạo, nhưng biến tham chiếu vẫn tham chiếu
tới "yzenny" chứ không tham chiếu tới " blogspot".
Nhưng nếu chúng ta gán
nó tới biến tham chiếu một cách tường minh, thì nó sẽ tham chiếu tới đối tượng
" blogspot". Ví dụ:
class Testimmutablestring1{
public static void main(String args[]){
String s="yzenny";
s=s.concat(" blogspot");
System.out.println(s);
}
}
Trong trường hợp này, s
trỏ tới " blogspot". Bạn nên chú ý rằng đối tượng
"yzenny" vẫn không bị sửa đổi (vẫn còn lưu trong pool)
Tại sao đối tượng String
là Immutable trong Java?
Bởi vì Java sử dụng khái
niệm String Literal. Giả sử có 5 biến tham chiếu, tất cả tham chiếu tới một đối
tượng "yzenny". Nếu một biến tham chiếu thay đổi giá trị của đối
tượng, nó sẽ có tác động tới tất cả các biến tham chiếu khác. Đó là tại sao đối
tượng String là Immutable trong Java.
Hãy xem trong phần tổng kết về lớp String ở bài sau để hiểu rõ hơn.
Chúc các bạn học tốt!
Góp ý tại mục bình luận bên dưới 💓