¿Puede darme un ejemplo para mi pregunta?¿Qué método en Java se usa para destruir sus objetos?
Respuesta
No hay un método per se. El método finalize()
, definido en el nivel superior Object
, puede invocarse cuando el recolector de basura desasigna el objeto, pero este no es un comportamiento en el que pueda confiar.
Java no admite la finalización de instancias determinísticas (es decir, los destructores de C++). Java tiene un recolector de basura que usted puede invocar (como este Runtime.getRuntime().gc()
), pero los tiempos de ejecución recogidos de basura tienden a funcionar mejor cuando se deja solo la limpieza de la memoria.
Lo sentimos, pero no hay realmente un equivalente "libre" o "disponer" en Java.
Lo mejor que puede hacer es simplemente establecer el objeto en nulo (elimina la referencia). Luego explícitamente dile al recolector de basura que vas a rambo (está en algún lugar en java.lang.Runtime
).
+1 para la observación de Rambo. – cbmeeks
Esto explica como la recolección de basura (¿por qué usted no tiene que borrar objetos de forma explícita en Java) funciona: http://web.archive.org/web/20080205091525/http://chaoticjava.com/posts/how-does-garbage-collection-work/
comprobar que funciona, hacer una pregunta de seguimiento si ayudaría.
Java maneja automáticamente toda su asignación de memoria dinámica y desasignación. Esencialmente, cualquier memoria que ya no se referencia por una variable nombrada se convierte en elegible para la recolección de basura (no hay variables anónimas). Este será el caso cuando todas las variables que se refieren a esa memoria estén configuradas en otra cosa o salgan del alcance.
La recolección de basura se realizará de forma automática, pero no hay un momento específico en el que se eliminará la memoria.
La mayoría de las personas no necesitarán saber más que eso, pero el enlace previamente publicado por corprew brinda una buena cantidad de detalles en un formato intuitivo para cualquier persona interesada en aprender más.
La memoria ocupada por objetos Java que ya no se puede acceder puede ser reclamada por la máquina virtual garbage collector. Como otros han notado, esto es automático. Por el contrario, la operación normal de un programa puede asignar ciertos recursos del sistema que deben liberarse explícitamente. Los recursos de pantalla nativa son un ejemplo. Un parcial list de tales métodos inlcudes siguientes:
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
"objeto destory" se realiza automáticamente por JVM en java, cuando el objeto es elegible para el colector de basura.
por ejemplo ..
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. Cómo destruir objetos Java?
- 2. Destruir manualmente objetos C#
- 3. ¿Por qué Java se usa con frecuencia para aplicaciones empresariales?
- 4. ¿Para qué se usa + =?
- 5. ¿Cómo se prueban sus objetos comerciales?
- 6. Método común para comparar dos objetos Java
- 7. ¿Qué tipo de identificación usa YouTube para sus videos?
- 8. ¿Cómo puedo destruir objetos COM en C#?
- 9. ¿Cómo se usa jQuery para simplificar sus vistas MVC?
- 10. ¿Para qué se usa Django?
- 11. ¿Qué lenguaje de programación se usa para desarrollar Java?
- 12. ¿Qué método se usa cuando se selecciona un QGraphicsItem?
- 13. ¿Qué usa Collection.Contains() para verificar si hay objetos existentes?
- 14. ¿Cómo se usa JSON.stringify en un método personalizado para JSON?
- 15. ¿Por qué algunos desarrolladores declaran objetos String en sus interfaces en Java y cómo funciona?
- 16. ¿Hay un costo por método para crear objetos en Java?
- 17. ¿Qué son los objetos simulados en Java?
- 18. unboxing o toString() se usa en sysout en java
- 19. ¿Qué se incluye en los objetos de su modelo de dominio y qué incluye sus servicios?
- 20. ¿Qué significa "% 1 $ #" cuando se usa en String.format (Java)?
- 21. ¿Qué formato de serialización usa Java?
- 22. ¿por qué se usa osgi?
- 23. ¿Para qué se usa el parámetro "siguiente" en Express?
- 24. ¿Cómo se usa NSPredicate para atrapar objetos secundarios?
- 25. ¿Se usa mucho el burlarse de objetos?
- 26. ¿Qué compilador se usa para producir Microsoft Office para Mac?
- 27. ¿Para qué se usa el auto =>?
- 28. ¿Para qué se usa Test-and-Set?
- 29. ¿Por qué Android usa Java?
- 30. ¿Qué método para definir en una clase de Ruby para proporcionar dup/clone para sus instancias?
Ya hay un montón de preguntas muy similares, véase 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- in-java y muchos más. Haga una pequeña búsqueda antes de publicar. –
Creo que http://stackoverflow.com/questions/2450855/how-do-you-write-a-deconstructor-in-java es una pregunta similar, también. ¡No te olvides de http://stackoverflow.com/questions/2450855/how-do-you-write-a-deconstructor-in-java, tampoco! ;) –
Java no es como C# ... No existe tal cosa como IDisposable.dispose(). – devinbost