Tôi là người mới, và tôi đã đọc về Bộ sưu tập rác từ hai câu trả lời đầu tiên here.Làm thế nào để các đối tượng không thể thay đổi giúp giảm chi phí do Bộ sưu tập rác?
Bây giờ biện minh cho việc sử dụng đối tượng không thể thay đổi ngay cả khi người lập trình phải tạo đối tượng mới, so với sử dụng đối tượng hiện có (trong ứng dụng đa luồng), this tutorial nói rằng chi phí tạo đối tượng được tạo bởi giảm trong bộ nhớ overhead do thu gom rác thải, và việc loại bỏ mã để bảo vệ vật có thể thay đổi từ đề can thiệp và nhất quán bộ nhớ lỗi:
tác động của việc tạo ra đối tượng thường được đánh giá quá cao, và có thể bù đắp bởi một số hiệu quả kết hợp với các đối tượng bất biến. Chúng bao gồm giảm chi phí do thu gom rác thải và việc loại bỏ mã cần thiết để bảo vệ các đối tượng có thể biến đổi khỏi sự cố tham nhũng .
Câu hỏi đặt ra là như thế nào? Những gì hiện Garbage Bộ sưu tập có liên quan đến Mutability hoặc Immutability của các đối tượng?
GC hiện đại cực kỳ hiệu quả với các đối tượng "chết trẻ". Đừng ngại tạo và sử dụng các đối tượng với tuổi thọ ngắn; nhưng hãy cẩn thận với việc giữ các đối tượng tham chiếu trong thời gian dài hơn (ví dụ: để lưu bộ nhớ đệm). Vấn đề là không thực sự về bất biến, nhiều hơn về tuổi thọ. – ZhongYu
Trong hướng dẫn bạn đã liên kết, cụm từ chính xác là _ "giảm chi phí do thu gom rác thải" _. Không có từ "bộ nhớ" trong đó. Bạn nên sửa nó trong câu hỏi của bạn, bởi vì các đối tượng bất biến thực sự có thể tiêu thụ nhiều bộ nhớ hơn (vì bạn buộc phải tạo một bộ nhớ mới nếu bạn muốn thay đổi thứ gì đó hiện có), trong khi giảm gánh nặng chung trên GC. Thêm chi tiết trong câu trả lời của tôi dưới đây. –