Ожидайте Сборки "мусора" конкретного объекта

<link rel='stylesheet' src='something.css' media='print'>

И в той таблице стилей, скройтесь (дисплей: ни один), или делают то, что Вы хотите с thead и tfoot элементами. Если таблица динамично сгенерирована, можно проверить ее размер с JavaScript и применить соответствующий класс в той таблице стилей печати.

5
задан Sean Bright 4 August 2009 в 13:34
поделиться

2 ответа

Согласно исходному коду , он использует класс PhantomReference . Согласно документации:

Фантомные ссылочные объекты, которые ставятся в очередь после того, как сборщик определяет, что их референты в противном случае могут быть возвращены. Фантомные ссылки чаще всего используются для планирования предварительных действий по очистке более гибким способом, чем это возможно с механизмом финализации Java.

Если сборщик мусора определяет в определенный момент времени, что референт фантома ссылка является фантомной достижимой, тогда в это время или позже она будет помещена в очередь.

Чтобы гарантировать, что восстанавливаемый объект остается таким, референт фантомной ссылки не может быть получен: метод get объекта фантомная ссылка всегда возвращает ноль.

В отличие от мягких и слабых ссылок, фантомные ссылки не удаляются автоматически сборщиком мусора, поскольку они помещаются в очередь. Объект, доступный через фантомные ссылки, останется таковым до тех пор, пока все такие ссылки не будут очищены или сами не станут недоступными.

Конструктор PhantomReference принимает два аргумента:

референт - объект, на который будет ссылаться новая фантомная ссылка

q - очередь, в которой должна быть ссылка зарегистрировано, или null, если регистрация не требуется

Аргумент q является экземпляром класса ReferenceQueue . PhantomReference будет добавлен к этой ReferenceQueue , когда его референт станет фантомно достижимым. Когда это произойдет, вы можете получить PhantomReference с помощью методов poll () или remove () класса ReferenceQueue .

Например, :

T objectToWatch = ...;
ReferenceQueue<T> referenceQueue = new ReferenceQueue<T>();
new PhantomReference<T>(objectToWatch, referenceQueue);

// Later on, probably in another thread...
Reference<? extends T> nextReference = referenceQueue.remove();
// Tidy up!

Примечание: PhantomReference имеет родственные классы с именами SoftReference и WeakReference , которые также могут быть полезны. Отношения между ними описаны в документации пакета java.lang.ref .

9
ответ дан 13 December 2019 в 22:13
поделиться

Не уверен, что это действительно ответ на ваш вопрос, но метод finalize () объекта вызывается до того, как его ресурсы будут освобождены.

Изменить: Это означает, что вы можете отправить сообщение другому объекту, чтобы предупредить его, или чему-то в этом роде.

1
ответ дан 13 December 2019 в 22:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: