Вопрос №299 от пользователя Max в уроке «Модуль 3. Урок 1. Основы использования и создания методов в классах.», курс «Введение в Java»
Скажите, пожалуйста: 1) В последнем задании мы используем переменную NewSpeed (12 строка). Но не указываем тип. Получается, можно объявить переменную даже в "шапке" метода (9 строка), и это будет правильно ? 2) Значение переменной this. speed находится в хипе, а не в стеке, потому что при создании инстанса класса Car конструктор new выделил под поля класса место в хипе. Я правильно понял? 3) Переменные speed, которые используются в методах принадлежат уже мини-стекам методов и являются примитивами, поэтому находятся в общем стеке. Правильно? 4)Если в методе употребляется ссылка, то она уже указывает на адрес в хипе, а не в стеке. Правильно?
1) ее тип указан в аргументе функции (строчка 9) 2) это можно отнести к области видимости. this.speed это по сути глобальная для класса переменная Car.speed, а просто запись speed, это запись "другой" уже локальной переменной, которая никак не относится к Car.speed, но умная джава будет ее искать и в Car.speed если не найдет локально.
3) Не совсем так. У каждого фрейма метода существует свой локальный стек. Соответственно локальные примитивные переменные будут созданы на этом стеке. Но для упрощения понимания мы всё время говорим только об одном глобальном стеке.
4) Сама ссылка всегда создаётся в стеке (т.к. ссылка это просто примитивный тип, хранящий указатель на адрес в оперативной памяти/хипе), а вот то, на что указывает ссылка, всегда располагается в хипе.
Используйте Хекслет по максимуму!
- Задавайте вопросы по уроку
- Проверяйте знания в квизах
- Проходите практику прямо в браузере
- Отслеживайте свой прогресс
Зарегистрируйтесь или войдите в свой аккаунт
С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.







