Вопрос №299 от пользователя Max в уроке «Модуль 3. Урок 1. Основы использования и создания методов в классах.», курс «Введение в Java»

Max

Скажите, пожалуйста: 1) В последнем задании мы используем переменную NewSpeed (12 строка). Но не указываем тип. Получается, можно объявить переменную даже в "шапке" метода (9 строка), и это будет правильно ? 2) Значение переменной this. speed находится в хипе, а не в стеке, потому что при создании инстанса класса Car конструктор new выделил под поля класса место в хипе. Я правильно понял? 3) Переменные speed, которые используются в методах принадлежат уже мини-стекам методов и являются примитивами, поэтому находятся в общем стеке. Правильно? 4)Если в методе употребляется ссылка, то она уже указывает на адрес в хипе, а не в стеке. Правильно?

2 0

user-c01e8dc5a925b89f

1) ее тип указан в аргументе функции (строчка 9) 2) это можно отнести к области видимости. this.speed это по сути глобальная для класса переменная Car.speed, а просто запись speed, это запись "другой" уже локальной переменной, которая никак не относится к Car.speed, но умная джава будет ее искать и в Car.speed если не найдет локально.

1

Глеб Бочкарёв

3) Не совсем так. У каждого фрейма метода существует свой локальный стек. Соответственно локальные примитивные переменные будут созданы на этом стеке. Но для упрощения понимания мы всё время говорим только об одном глобальном стеке.

4) Сама ссылка всегда создаётся в стеке (т.к. ссылка это просто примитивный тип, хранящий указатель на адрес в оперативной памяти/хипе), а вот то, на что указывает ссылка, всегда располагается в хипе.

1

Используйте Хекслет по максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

Зарегистрируйтесь или войдите в свой аккаунт

Даю согласие на обработку персональных данных, соглашаюсь с «Политикой конфиденциальности» и «Условиями оказания услуг»

Рекомендуемые программы

С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.

Иконка программы Фронтенд-разработчик
Профессия
Разработка фронтенд-компонентов веб-приложений
25 мая 10 месяцев
Иконка программы Python-разработчик
Профессия
Разработка веб-приложений на Django
25 мая 10 месяцев
Иконка программы PHP-разработчик
Профессия
Разработка веб-приложений на Laravel
25 мая 10 месяцев
Иконка программы Node.js-разработчик
Профессия
Разработка бэкенд-компонентов веб-приложений
25 мая 10 месяцев
Иконка программы Fullstack-разработчик
Профессия
Новый
Разработка фронтенд и бэкенд компонентов веб-приложений
25 мая 16 месяцев
Иконка программы Верстальщик
Профессия
Вёрстка с использованием последних стандартов CSS
в любое время 5 месяцев
Иконка программы Java-разработчик
Профессия
Разработка приложений на языке Java
25 мая 10 месяцев
Иконка программы Разработчик на Ruby on Rails
Профессия
Создает веб-приложения со скоростью света
25 мая 5 месяцев