Nếu GC có thể biết rằng một đối tượng không chứa bất kỳ tham chiếu nào đến bất kỳ đối tượng gen0 nào, thì nó có thể bỏ qua khi thực hiện bộ sưu tập gen0. Tương tự như vậy nếu một đối tượng không chứa bất kỳ tham chiếu đến bất kỳ đối tượng gen0 hoặc gen1, nó có thể bị bỏ qua khi thực hiện một bộ sưu tập gen1. Có thể bỏ qua nhiều đối tượng hơn trong bộ sưu tập, bộ sưu tập sẽ nhanh hơn.
Nếu một đối tượng sống sót sau gen0 GC, có thể chắc chắn rằng bất kỳ đối tượng gen0 nào mà đối tượng đã tổ chức tham chiếu sẽ được thăng cấp thành gen1; tương tự như vậy nếu một đối tượng không chứa bất kỳ tham chiếu gen0 nào tồn tại một gen gen1, bất kỳ tham chiếu gen1 nào chứa đối tượng đó sẽ được thăng hạng thành gen2. Vì vậy, một khi một đối tượng đã được kiểm tra trong một bộ sưu tập gen0, nó không cần phải được kiểm tra lại cho đến bộ sưu tập gen1 tiếp theo, trừ khi nó được sửa đổi. Tương tự như vậy, một đối tượng được kiểm tra trong bộ sưu tập gen1 không cần được kiểm tra cho đến bộ sưu tập gen2 tiếp theo trừ khi nó được sửa đổi.
Biết liệu các đối tượng đã được sửa đổi có phải là một chủ đề khó khăn hay không, nhưng điểm mấu chốt là nó rất thuận lợi cho GC nếu các đối tượng chưa được.
Ai nói JVM GC yêu các đối tượng bất biến? – lichengwu
Cảm ơn, @lichengwu, tôi đã chỉnh sửa câu hỏi bằng cách thêm nguồn. – Jacky