До тех пор, пока несколько недель назад, я не подумал, что я должен понимать, когда делать поля и методы static
или non-static
. Например, когда поле (например, объект другого класса) уникально для любого количества объектов для класса, оно должно быть сделано static
.Статические и нестационарные
Но потом я прочитал о сборке мусора JVM несколько недель назад.
Понимаю, что поля всегда собираются и не хранятся в памяти, пока не загрузится сборщик мусора.
Но если я не сделаю это поле static
, по крайней мере, это будет сбор мусора.
Таким образом, кажется, есть очень тонкая линия между созданием поля/статические методы или нет.
Может кто-нибудь, пожалуйста, объясните мне этот тонкая линия в принятии решения, так что мое приложение путь более эффективным.
И в чем проблема с полем сбора мусора? Вы хотите, чтобы он был доступен на всю жизнь приложения, не так ли? Так что это нормально для объекта, не являющегося GCed. Приложения потребляют память. Это нормально и ожидаемо. Установка его в null сделает его доступным для GC (если только он не доступен из другого места). –