Hỏi về hàm append trong java

        StringBuilder a = new StringBuilder("Hello ");
        StringBuilder b;
        b = a;
        a.append("Java");
        System.out.println(a);//Hello Java
        System.out.println(b);//Hello Java - b gán trước khi a nối chuỗi vì sao vẫn ra Hello Java

Cho em hỏi vì sao a nối chuỗi sau khi gán b=a;b vẫn bằng Hello Java.

Đây không phải là vấn đề của (hàm) phương thức. Đấy là tham chiếu!
Cả ab đều trỏ (tham chiếu) vào 1 đối tượng. Nên giá trị bằng nhau là hiển nhiên.

Chỉ có các kiểu giá trị sau là tham trị:

boolean
byte
char
short
int
long
float
double

Các kiểu tương đương dạng đối tượng của chúng vẫn tham chiếu.

5 Likes
String a="abc";
String b;
b=a;
a="d";
System.out.println(b);//abc

Nếu như A nói ở trên thì kieu String tham chiếu đến cùng 1 ô nhớ thì kq là d chứ. Em hơi chưa hiểu có thể giải thích cho e không.

String là một kiểu dữ liệu đặc biệt, khác với các class khác. Bạn có thể tìm hiểu về String pool trong Java

3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?