Dans une servlet, destroy() est-il appelé avant ou après finalize()? Destroy() est appelé en premier lieuDans le servlet destroy() est appelé first ou finalize()?
Répondre
destroy() sera appelé par le conteneur servlet au moment où le servlet sera arrêté. finalize() est appelée par la JVM avant que le garbage-collector ne réclame les objets (et n'est pas garanti d'être appelé du tout).
De même, finalize() peut être appelé ou non. Ne comptez jamais sur ce qui se passe.
La méthode finalize() est appelée lorsque l'objet sort de la portée et est éligible pour la récupération de place. Donc la méthode destroy() est appelée avant quand l'objet n'est pas hors de portée.
Non, finalize() * peut * être appelé lorsque l'objet va es hors champ. Il n'est pas garanti d'être appelé avant la fermeture de la JVM. –
@mmyers - La méthode finalize() ne peut pas être invoquée avant que l'objet ne soit hors de portée, mais la méthode destroy() doit être invoquée avant que l'objet ne soit hors de portée. Par conséquent, détruisez la méthode toujours appelée avant de finaliser la méthode. –
True, * si * finalize() est appelé, il sera appelé après destroy(). Il semblait juste trompeur de dire que "la méthode finalize() sera appelée ..." au lieu de "la méthode finalize() peut être appelée ..." –
Si vous souhaitez libérer des ressources à une certaine heure, ne comptez pas sur un code externe comme le conteneur de servlet ou la JVM pour le faire. Faites votre allocation et désaffectation des ressources aussi explicite que possible. Les bogues Nasty peuvent être le résultat de dépendre du code externe pour nettoyer après vous.
C'est plutôt paranoïaque de votre part. Si le conteneur de servlet n'appelle pas destroy() au moment approprié, alors c'est de la merde et devrait être remplacé par un autre. Vous ne pouvez pas traverser la vie en ré-inventant constamment la roue, c'est ce que les serveurs d'applications sont là pour, – skaffman
Le fait est que la méthode destroy() peut être appelée après un laps de temps considérable. C'est pourquoi j'ai dit "à un certain moment", ce qui signifie que libérer des ressources explicitement de votre propre code est la seule façon d'avoir le contrôle sur QUAND la ressource est libérée. Bien sûr, vous devriez compter sur le conteneur de servlet pour faire son travail, mais dans certains cas cela peut prendre trop de temps. –
Il suit 5 étapes
- Constructor
- init()
- Service() >> doGet() ou doPost()
- destroy()
- finalize()
- 1. Servlet étant appelé deux fois!
- 2. problème de connexion dans le servlet
- 3. Java et exécution manuelle finalize
- 4. Quel framework GUI est utilisé par l'application "Spybot Search & Destroy"?
- 5. Servlet Exception - getOutputStream() a déjà été appelé pour cette réponse
- 6. Constructeur paramétré dans le servlet
- 7. Pourquoi Javascript est pas appelé
- 8. Pourquoi mon filtre de servlet (Spring Security) est-il appelé deux fois?
- 9. Schema First WCF Development
- 10. Est-ce que doFilter() est exécuté avant ou après le travail du servlet?
- 11. Afficher l'image dans le servlet
- 12. Quand OnValidate est-il appelé dans Linq?
- 13. Combien de fois le déclencheur dans MySQL est appelé?
- 14. Servlet ou POJO entraînant une application Web
- 15. Projet First Rails: Rake Problème
- 16. En C#, quelle est la différence entre un destructeur et une méthode Finalize dans une classe?
- 17. Ambiguïté dans le mappage de servlet
- 18. Est-ce que sIFR supporte les pseudo-éléments comme: first-child?
- 19. motionEnded est appelé plusieurs fois
- 20. Le servlet n'est pas dans le contexte de servlet de l'application racine
- 21. Quand ServiceConnection.onServiceDisconnected() est-il appelé?
- 22. Pourquoi/quand ComponentListener.componentShown() est appelé?
- 23. Servlet Filter: Le socket doit être référencé dans doFilter()
- 24. SQL Server équivalent à NULLS FIRST d'Oracle?
- 25. iPhone - quand le dealloc pour un viewcontroller est-il appelé?
- 26. Pourquoi le finaliseur de NHibernate AdoTransaction est-il appelé?
- 27. quel est l'équivalent servlet de Server.MapPath?
- 28. ASP MVC: Quand IController Dispose() est appelé?
- 29. First & Suivre défini pour les expressions arithmétiques
- 30. Netbeans + servlet
Merci pour l'explication –