Вы можете использовать такую функцию:
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'])
Java не поддерживает детерминированное завершение экземпляра (т. е. деструкторы C ++). У Java есть сборщик мусора, который вам пригоден (например, Runtime.getRuntime().gc()
), но время, затраченное на сбор мусора, как правило, лучше всего работает, когда вы оставляете только очистку памяти.
«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;
}
}
Java автоматически обрабатывает все распределение и освобождение динамической памяти. По существу, любая память, которая больше не ссылается на именованную переменную, становится пригодной для сбора мусора (нет анонимных переменных). Это будет тот случай, когда все переменные, относящиеся к этой памяти, настроены на что-то еще или выходят за рамки.
Сбор мусора произойдет автоматически, но нет конкретного времени, в течение которого любая часть памяти будет
Большинство людей не должны знать больше, но ссылка, ранее размещенная corprew , дает приятное количество деталей в интуитивном формате для всех, кто интересуется узнать больше.
Не существует метода как такового. Метод finalize()
, определенный в верхнем уровне Object
, , может быть вызван , когда объект освобождается сборщиком мусора, но это не поведение, на которое вы можете положиться.
Извините, но на Java нет действительно «свободного» или «распоряжающегося» эквивалента.
Лучшее, что вы можете сделать, это просто установить объект в null (удаляет ссылку). Затем явным образом сообщите сборщику мусора, что вы собираетесь rambo (его где-то в java.lang.Runtime
).
Это объясняет, как сбор мусора (почему вы не должны явно удалять объекты на Java) работает: http://web.archive.org/web/20080205091525/http://chaoticjava.com/posts / how-do-garbage-collection-work /
Проверьте это, задайте следующий вопрос, если это поможет.
Память, занятая объектами 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