Встречается на собеседованиях • сегодня

В чем разница между очисткой стека в C и Java

В C стек очищается вручную, программист сам управляет памятью. В Java стек очищается автоматически сборщиком мусора (GC), когда объекты теряют ссылки.

Пример на C:

c
void foo() {
    int* ptr = malloc(sizeof(int)); // выделяем память в куче
    *ptr = 42;
    free(ptr); // обязаны очистить вручную
}

Пример на Java:

java
void foo() {
    Object obj = new Object(); // выделяем в куче
    // GC автоматически удалит obj после выхода из метода
}

Ключевые отличия:

  1. В C стек - это область памяти под локальные переменные, очищается при выходе из функции
  2. В Java стек - это структура данных для хранения вызовов методов и примитивов
  3. В Java объекты хранятся в куче, их очистка не связана напрямую со стеком вызовов
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы