Ich möchte verstehen, wie OOP Programmiersprachen unterscheidet sich von prozeduralen Sprachen in Bezug auf die Speichernutzung. Um genauer zu sein, nehmen wir an, wir sprechen über Java
und C
als Beispiele:Wie OOP-Sprachen unterscheidet sich von prozeduralen Sprachen in Bezug auf die Speichernutzung
- Ist es wahr, dass Objekte in
heap
automatisch gespeichert werden, während in prozeduralen Sprachen Sie müssen explizit die Heap-Nutzung definieren wie in Cmalloc
? Wenn ich ein Programm in C schreibe, erstelltOS
eine virtuelle Seite dieses Programms einschließlich Heap und Stack-Speicher. Wenn ichmalloc
nicht in meinem Code verwende, bedeutet dies, dass mein Programm den zugewiesenen Heap nicht verwendet, ist das korrekt? - Da
Stack
wird verwendet, um lokale Variablen und Funktionsaufruf Adressen zu speichern, was passiert, wenn ein Programm aus Stack-Raum lief, hatOS
die Paging-Größe dieses Programm erweitern oder es nutzt nur den Heap als Erweiterung?
Können Sie genauer angeben, über welche Sprachen Sie sprechen? Es ist schwierig, allgemeine Aussagen über * alle * imperativen Sprachen oder * alle * objektorientierten Sprachen zu treffen. Zum Beispiel ist C++ ein Hauptgegenbeispiel für einige der oben gemachten Aussagen. – EJoshuaS
Vielen Dank .. Ich habe meine Frage aktualisiert – Kris