Quelles sont les différences entre l'allocation statique, dynamique et automatique?Allocation statique par rapport à l'allocation dynamique par rapport à l'allocation automatique
Répondre
Il y aura des détails spécifiques à la langue, mais l'idée générale est la suivante:
- statique: alloué au démarrage du programme, existe pour la vie entière du programme
- automatique: attribué lors de l'entrée dans un bloc, existe pour durée de ce bloc
L'allocation dynamique nécessite un peu plus d'explications: elle est allouée lorsque vous l'attribuez (par exemple avec quelque chose comme 'new XXX'). Dans (la plupart des implémentations de) C++, il existera jusqu'à ce que vous le supprimiez explicitement. Avec la plupart des langages plus récents (par exemple Java, C#) il existera jusqu'à ce que le garbage collector détermine qu'il n'est plus accessible, moment auquel il sera détruit automatiquement.
Toutes les langues n'ont pas toutes les trois formes d'allocation. Dans certains cas (par exemple Java), même si une forme d'allocation est prise en charge, il existe des restrictions telles que l'allocation automatique pour les types intégrés, mais nécessitant une allocation dynamique pour les types d'objet (c'est-à-dire les instances de classes).
L'allocation statique est une mémoire qui a été mise de côté pour une application lors du premier chargement. Cette section de la mémoire est conservée pour être utilisée uniquement avec cette application, et est rendue disponible à nouveau une fois le programme fermé.
L'allocation dynamique est la mémoire qui est allouée selon les besoins et libérée/libérée lorsqu'elle n'est plus nécessaire. Les tas et les piles sont des exemples de zones de mémoire pouvant être allouées dynamiquement.
- 1. ASP.NET État de l'application par rapport à un objet statique
- 2. DLL par rapport à l'Assemblée
- 3. Executors.newCachedThreadPool() par rapport à Executors.newFixedThreadPool()
- 4. Correctif et correctif par rapport à la version de maintenance par rapport au Service Pack par rapport à
- 5. ArrayList par rapport à un tableau d'objets par rapport à la collection de T
- 6. ListView.ItemCheck par rapport à ListView.ItemChecked .NET
- 7. TextWriter.ReadToEnd par rapport à Unix wc Commande
- 8. Valeur par rapport à la référence
- 9. Maven par rapport à AspectJ - Exemple?
- 10. C# génériques par rapport à C++ modèles
- 11. python par rapport à l'empreinte Java runtime
- 12. Performances WCF net.tcp par rapport à namedpipes
- 13. ATI Stream par rapport à NVidia/CUDA
- 14. Configuration par programme d'endpoints par rapport à web/app.config
- 15. Mise à niveau automatique de VDPROJ par rapport à la désinstallation/réinstallation
- 16. jquery ie7 css hauteur résultat incohérent par rapport à firefox
- 17. L'encapsulation par rapport à l'héritage, aide à faire un choix
- 18. objet d'économie par rapport ManyToMany
- 19. Rapport SSRS 2005 Rendu automatique
- 20. Utilisation de la propriété DesignMode par rapport à LicenseManager.UsageMode
- 21. Solutions ORM (JPA, Hibernate) par rapport à JDBC
- 22. Quels sont les avantages de LePUS3 par rapport à UML?
- 23. Quelle est la performance de F # par rapport à C#?
- 24. REF CURSOR par rapport à la fonction TABLE dans Oracle
- 25. élément global par rapport à la transmission de paramètres
- 26. mosso par rapport à gogrid qui est le meilleur?
- 27. Positionnement d'un div par rapport à défiler la position
- 28. Classe de conception: ID d'entité par rapport à l'entité
- 29. Linq OrderBy par rapport à des valeurs spécifiques
- 30. ms access création par rapport cases à cocher