2010-03-21 6 views
-3

Où est la définition de classe stockée en mémoire?Java - Allocation de mémoire pour les classes

+4

Je suggère que, avant de poser d'autres questions, vous naviguez à travers le JLS (http://java.sun.com/docs/books/jls/third_edition/html/j3TOC.html) et la spécification JVM (http: //java.sun.com/docs/books/jvms/second_edition/html/Overview.doc.html). –

+8

Une classe est comme un cours de sciences informatiques que vous prenez actuellement. Un que vous avez des devoirs assignés pour. Un que vous échouerez si vous ne commencez pas à apprendre le matériel au lieu de poser toutes les questions sur les interwebs. –

+0

Duplicata de http://stackoverflow.com/questions/2263523/does-java-have-automatic-garbage-collection –

Répondre

1

Cela dépend de Java que vous parlez

« la mise en page de la mémoire des données d'exécution zones, les ordures collecte algorithme utilisé, et toute optimisation interne de Java instructions de machine virtuel (par exemple, les traduire en code machine) sont laissés à la discrétion de l'implémentation . "

Voir le JVM spec. Cela dit, Sun Java a une section de mémoire appelée permanent generation, qui inclut les définitions de classe. En raison de son intention initiale (une zone relativement petite pour les classes essentiellement statiques), la génération permanente ne s'adapte pas toujours bien aux langages dynamiques ciblant la JVM. Voir this discussion des problèmes JRuby. Cela fait partie de la motivation pour le Da Vinci Machine project, qui vise à améliorer le support VM pour ces langues.