Вопрос проверяет знание о содержимом стека потока в JVM.
В стеке потока хранятся:
Локальные переменные методов.
Стек-фреймы (информация о вызовах методов).
Параметры методов и возвращаемые адреса.
1. Структура стека:
Каждый поток имеет свой стек.
Каждый метод при вызове создает фрейм (кадр стека).
2. Что внутри фрейма:
Локальные переменные (примитивы, ссылки на объекты).
Операндный стек (для вычислений).
Ссылка на текущий класс (this).
3. Пример:
void main() {
int x = 10; // Локальная переменная во фрейме main()
foo(x);
}
void foo(int a) {
String b = "test"; // Фрейм foo()
} Вывод:
Стек потока — это его "рабочая область" для выполнения методов.