Можете ли вы привести мне один пример для моего вопроса?Какой метод в Java используется для уничтожения ваших объектов
ответ
Не существует способа как такового. Метод finalize()
, определенный в верхнем уровне Object
, , может быть вызван, когда объект освобождается сборщиком мусора, но это не то поведение, на которое вы можете положиться.
Java не поддерживает детерминированное завершение экземпляра (т. Е. Деструкторы C++). У Java есть сборщик мусора, который может быть вызван вами (например, Runtime.getRuntime().gc()
), но время, затраченное на сборку мусора, имеет тенденцию работать лучше всего, когда вы оставляете только очистку памяти.
Извините, но на Java нет действительно «свободного» или «распоряжающегося» эквивалента.
Лучшее, что вы можете сделать, это просто установить объект в null (удаляет ссылку). Затем явно сообщите сборщику мусора, что вы собираетесь rambo (его где-то в java.lang.Runtime
).
+1 для примечания Рэмбо. – cbmeeks
Это объясняет, как сборка мусора (почему вы не должны удалять объекты в явном виде в Java) работает: http://web.archive.org/web/20080205091525/http://chaoticjava.com/posts/how-does-garbage-collection-work/
Проверьте это, спросите следить за вопрос, если это поможет.
Java автоматически обрабатывает все распределение и освобождение динамической памяти. По существу, любая память, которая больше не ссылается на именованную переменную, становится пригодной для сбора мусора (нет анонимных переменных). Это будет тот случай, когда все переменные, относящиеся к этой памяти, будут установлены на что-то еще или выходят за рамки.
Сбор мусора будет происходить автоматически, но нет конкретного времени, в течение которого любая часть памяти будет фактически освобождена.
Большинство людей не должны знать больше, но ссылка, ранее размещенная corprew, дает приятное количество деталей в интуитивно понятном формате для всех, кто интересуется обучением больше.
Память, занятая объектами Java, которые больше не доступны, может быть восстановлена garbage collector виртуальной машины. Как отмечали другие, это автоматически. Напротив, нормальная работа программы может выделять определенные системные ресурсы, которые должны быть явно освобождены. Примером могут служить собственные ресурсы экрана. Частичное list таких методов включает все эти:
java.awt.Component.BltBufferStrategy#dispose() java.awt.Component.FlipBufferStrategy#dispose() java.awt.CompositeContext#dispose() java.awt.Graphics#dispose() java.awt.im.InputContext#dispose() java.awt.im.spi.InputMethod#dispose() java.awt.image.BufferStrategy#dispose() java.awt.Image#flush() java.awt.PaintContext#dispose() java.awt.Window#dispose() java.io.InputStream#close()* java.io.OutputStream#close()* java.sql.Connection#close() java.util.Timer#cancel() javax.imageio.ImageReader#dispose() javax.imageio.ImageWriter#dispose() javax.print.StreamPrintService#dispose() javax.security.sasl.SaslClient#dispose() javax.security.sasl.SaslServer#dispose() javax.swing.DebugGraphics#dispose() javax.swing.JInternalFrame#dispose() org.ietf.jgss.GSSContext#dispose() org.ietf.jgss.GSSCredential#dispose() * Includes subclasses
«объект Destory» автоматически выполняются в JVM Явы, когда объект имеет право на сборщик мусора.
, например ..
public class gc{
public static void main(String []s){
gc obj=new gc();
gc obj1=new gc();
// if u made manually obj1=null. its eligible for garbage collection else jvm done automatically when this obj1 not in use..
obj1=null;
}
}
- 1. Метод уничтожения объектов Spring register
- 2. Монитор уничтожения объектов Java
- 3. Какой обратный вызов используется для создания и уничтожения?
- 4. Метод уничтожения Rails при выпуске нескольких объектов
- 5. Метод JAVA для уничтожения класса/объекта
- 6. какой java.lang.reflect.Method.isBridge() используется для?
- 7. Модели для ваших объектов, а также для ваших ответов
- 8. Какой HTTP-метод используется для загрузки файлов?
- 9. Django auto_now какой метод используется?
- 10. Порядок уничтожения для массива объектов
- 11. какой метод используется для получения реального уведомления?
- 12. Какой метод разработки используется для разработки сайта?
- 13. Какой маршал :: используется метод перегрузки?
- 14. Метод уничтожения/уничтожения в классе документов
- 15. метод уничтожения в tkinter
- 16. Метод уничтожения в перехватчике
- 17. метод записи для уничтожения и создания ссылки для уничтожения объекта
- 18. Завершение вкладки для методов в irb, какой метод используется?
- 19. Какой метод обучения используется в cv2.createLBPHFaceRecognizer.train?
- 20. Какой язык программирования используется для разработки Java?
- 21. Какой драйвер jdbc используется для java 1.6?
- 22. Какой метод сериализации используется для сообщения объекта ActiveMQ NMS C#?
- 23. Какой java-компилятор используется NetBeans?
- 24. Какой алгоритм сортировки используется Java?
- 25. Глобальный метод уничтожения для всех бобов весной
- 26. Ext.util.KeyMap метод уничтожения
- 27. Метод уничтожения бобы весом
- 28. Какой HTTP-метод используется для этого запроса клиента?
- 29. Какой метод используется для хранения объекта в сеансе?
- 30. Какой класс/метод используется для записи в SysOutGoingEmailTable из предупреждения?
Есть уже много очень похожих вопросов, см http://stackoverflow.com/questions/2450855/how-do-you-write-a-deconstructor-in- java, http://stackoverflow.com/questions/171952/is-there-a-destructor-for-java, http://stackoverflow.com/questions/2450855/how-do-you-write-a-deconstructor- в-java и многие другие. Сделайте небольшой поиск перед публикацией. –
Я думаю, что http://stackoverflow.com/questions/2450855/how-do-you-write-a-deconstructor-in-java тоже аналогичный вопрос. Не забывайте о http://stackoverflow.com/questions/2450855/how-do-you-write-a-deconstructor-in-java, либо! ;) –
Java не похож на C# ... Нет такой вещи, как IDisposable.dispose(). – devinbost