Уничтожьте объект, вызванный методом Java [duplicate]

Вы можете использовать такую ​​функцию:

function getById (path, id) {
  return firestore.getAll(
    [].concat(ids).map(id => firestore.doc(`${path}/${id}`)
  )
}

Его можно вызывать с помощью одного ID:

getById('collection', 'some_id')

или массива идентификаторов:

getById('collection', ['some_id', 'some_other_id'])
8
задан Jacob Schoen 24 August 2012 в 15:59
поделиться

7 ответов

Java не поддерживает детерминированное завершение экземпляра (т. е. деструкторы C ++). У Java есть сборщик мусора, который вам пригоден (например, Runtime.getRuntime().gc()), но время, затраченное на сбор мусора, как правило, лучше всего работает, когда вы оставляете только очистку памяти.

3
ответ дан Andrew Hare 26 August 2018 в 08:37
поделиться

«object destroy» автоматически выполняется jvm в java, когда объект имеет право на сборщик мусора.

, например ..

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;
 }
}
0
ответ дан Archer 26 August 2018 в 08:37
поделиться

Java автоматически обрабатывает все распределение и освобождение динамической памяти. По существу, любая память, которая больше не ссылается на именованную переменную, становится пригодной для сбора мусора (нет анонимных переменных). Это будет тот случай, когда все переменные, относящиеся к этой памяти, настроены на что-то еще или выходят за рамки.

Сбор мусора произойдет автоматически, но нет конкретного времени, в течение которого любая часть памяти будет

Большинство людей не должны знать больше, но ссылка, ранее размещенная corprew , дает приятное количество деталей в интуитивном формате для всех, кто интересуется узнать больше.

0
ответ дан Community 26 August 2018 в 08:37
поделиться

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

3
ответ дан mipadi 26 August 2018 в 08:37
поделиться

Извините, но на Java нет действительно «свободного» или «распоряжающегося» эквивалента.

Лучшее, что вы можете сделать, это просто установить объект в null (удаляет ссылку). Затем явным образом сообщите сборщику мусора, что вы собираетесь rambo (его где-то в java.lang.Runtime).

40
ответ дан Rev316 26 August 2018 в 08:37
поделиться

Это объясняет, как сбор мусора (почему вы не должны явно удалять объекты на Java) работает: http://web.archive.org/web/20080205091525/http://chaoticjava.com/posts / how-do-garbage-collection-work /

Проверьте это, задайте следующий вопрос, если это поможет.

3
ответ дан stanek 26 August 2018 в 08:37
поделиться

Память, занятая объектами Java, которые больше не доступны, может быть восстановлена ​​сборщиком мусора виртуальной машины . Как отмечали другие, это автоматически. Напротив, нормальная работа программы может выделять определенные системные ресурсы, которые должны быть явно освобождены. Примером могут служить собственные ресурсы экрана. Частичный список таких методов включает в себя следующие:

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
16
ответ дан trashgod 26 August 2018 в 08:37
поделиться
Другие вопросы по тегам:

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