Я хочу понять, как языки программирования ООП отличаются от процедурных языков с точки зрения использования памяти. Чтобы быть более конкретным, давайте предположим, что мы говорим о Java
и C
в качестве примеров:Как языки ООП отличаются от процедурных языков с точки зрения использования памяти
- Верно ли, что объекты автоматически сохраняются в
heap
в процедурных языках вы должны явно определить использование кучи, например, в Cmalloc
? - Если я напишу программу на C,
OS
создаст виртуальную страницу этой программы, включая кучи и пространства стека. Если я не используюmalloc
в своем коде, это означает, что моя программа не использует выделенную для нее кучу, это правильно? - С
Stack
используется для хранения локальных переменных и вызовов функциональных вызовов, что, если в программе закончилось пространство стека,OS
расширяет размер подкачки этой программы или просто использует кучу в качестве расширения?
Можете ли вы уточнить, о каких языках вы говорите? Трудно делать общие утверждения о * всех * императивных языках или * все * объектно-ориентированных языках. Например, C++ является основным контрпример для нескольких утверждений, которые вы делаете выше. – EJoshuaS
Спасибо .. Я обновил свой вопрос – Kris