Đây có vẻ là một câu hỏi đơn giản, nhưng sau khi đọc rất nhiều về chủ đề này, tôi vẫn không tìm thấy câu trả lời dứt khoát (có lẽ vì nó quá đơn giản).
Câu hỏi của tôi là: khi một trình thu gom rác thu gọn các đối tượng trong heap, các tham chiếu đến các đối tượng đó trong ngăn xếp được cập nhật như thế nào? Tôi có thể nghĩ về hai giải pháp khả thi:
- Đi qua ngăn xếp (và các tham chiếu trong heap) và cập nhật tham chiếu để trỏ đến vị trí mới của đối tượng. Tương tự như việc di chuyển, điều này sẽ giống như gửi thư cho bất kỳ ai có địa chỉ của bạn và yêu cầu họ cập nhật sổ địa chỉ của họ với địa chỉ mới của bạn.
- Cung cấp một số loại tra cứu bảng. Điều này sẽ giống như để lại một địa chỉ chuyển tiếp với bưu điện địa phương.
Do người thu gom rác chủ yếu sử dụng một trong hai phương pháp này? Một số phương pháp khác? Cả hai?