En java, où en mémoire les fonctions de classe sont-elles mises?En Java, où en mémoire sont placées les fonctions de classe?
Répondre
Dépend de l'implémentation. En règle générale, vous ne devriez pas vous inquiéter de ces choses en Java. Le concept entier d'un "VM" est d'abstraire des choses telles que celle-ci. Maintenant, je suppose que les fonctions sont stockées quelque part près du bytecode, mais si votre machine virtuelle prend en charge JIT, ils pourraient être partout ....
Je suppose que nous pourrions dire « sur le tas » ... lol
Pour être honnête, je ne peux pas penser à une seule raison pour laquelle vous auriez besoin de le savoir, et de penser à ce que vous pourriez essayer de l'utiliser pour m'effrayer.
Je pense que @husain souhaite connaître la différence entre les fonctions class/static et instance – Yaneeve
Dans ce cas, ils sont stockés au même endroit. Les données contenues dans les fonctions peuvent être allouées différemment si elles sont statiques par rapport à la classe d'instance, mais les "fonctions" elles-mêmes, c'est-à-dire le code contenu dans les fonctions, ne seront pas copiées. –
La spécification JVM laisse entendre que cela fait partie du tas:
3.5.4 Méthode Area
La machine virtuelle Java a une zone de procédé qui est partagé entre tous les fils de la machine virtuelle Java . La zone de méthode est analogue à la zone de stockage pour le code compilé d'un langage conventionnel ou analogue au segment «text» dans un processus UNIX. Il stocke par classe structures telles que la piscine constant exécution , champ et données de procédé, et le code pour les méthodes et les constructeurs, y compris les méthodes spéciales (§3.9) utilisé dans la classe et initialisation d'instance et type d'interface initialisation La zone de méthode est créée au démarrage virtuel de la machine . Bien que la zone méthode est logiquement partie du tas, mises en œuvre simples peuvent choisir de ne pas à la collecte des ordures ou compact il. Cette version de la spécification de la machine virtuelle Java n'exige pas l'emplacement de la zone de méthode ou les règles utilisées pour gérer le code compilé. La zone de méthode peut être de taille fixe ou peut être étendue comme requis par le calcul et peut être contractée si une zone de méthode plus grande devient inutile. La mémoire de la zone n'a pas besoin d'être contiguë.
Référence: The JavaTM Virtual Machine Specification
- 1. Où sont stockées les méthodes en mémoire?
- 2. Où en mémoire sont les variables stockées en C++?
- 3. En Java, où dans la hiérarchie paquet/source les ressources doivent-elles être placées?
- 4. allocation de mémoire pour les fonctions membres en C++
- 5. Où sont définis les opérateurs (en C#)?
- 6. allocation de mémoire en Java
- 7. Où sont stockés en mémoire des types valables?
- 8. Où sont ces octets []? (En Java utilisant JProfiler)
- 9. Les fonctions javascript ne fonctionnent pas lorsqu'elles sont placées dans des fichiers différents
- 10. Où sont utilisés les algorithmes de gestion de la mémoire?
- 11. Où sont placées les données de compte d'une nouvelle application Web asp.net mvc?
- 12. en utilisant les fonctions en dll, en java
- 13. Où sont passées toutes les fonctions simples de WebGL?
- 14. Où sont les fonctions de socket BSD définies sous Linux?
- 15. DB Java en mémoire
- 16. java et mise en page de mémoire
- 17. [javascript] Où sont toutes les fonctions dans IE?
- 18. Allocation de mémoire en Java
- 19. Composer des fonctions en Java?
- 20. matlab matrix fonctions en java
- 21. Pourquoi les fonctions de parenscript sont-elles modifiées en minuscules?
- 22. A quoi ressemble Java en mémoire
- 23. Où sont stockées les variables locales finales Java?
- 24. Où mettre les fonctions de conversion?
- 25. classe et méthode en java
- 26. Déchargement de classe en Java
- 27. En quoi les fonctions prototypes sont-elles différentes des fonctions normales en javascript?
- 28. Situation difficile où l'accès aux fonctions parentes est nécessaire en Java
- 29. Java - Allocation de mémoire pour les classes
- 30. Comment les variables sont allouées de la mémoire en Javascript?
Est-il important pour tout programme que vous/nous/I/quelqu'un d'autre faire? –