Я читаю некоторые материалы о сборке мусора на Java, чтобы узнать больше, что действительно происходит в процессе GC.
Я столкнулся с механизмом, называемым "карточным столом". Я искал его и не нашел исчерпывающей информации. Большинство объяснений довольно мелкие и описывают его как волшебство.
Мой вопрос: как работает карточный стол и барьер записи? Что помечено в карточных таблицах? Как тогда сборщик мусора знает, что на конкретный объект ссылается другой объект, который сохраняется в старшем поколении.
Я хотел бы иметь некоторое практическое воображение об этом механизме, как будто я должен был подготовить некоторую симуляцию.