Этап 1 из 11 · ≈ 10 ч

Примитивы, строки и методы

Основа с Junior

Примитивы и обёртки, кэш Integer, строки и StringBuilder, передача по значению, порядок инициализации.

Что важно знать

  • Восемь примитивов и обёртки; Integer кэширует значения от −128 до 127 — отсюда «иногда работает» ==.
  • Строки неизменяемы; конкатенация в цикле — StringBuilder.
  • Передача по значению: метод получает копию ссылки и не может подменить объект у вызывающего.
  • final, static, порядок инициализации классов и объектов.

Критерии освоения

Junior ≈ 10 ч

  • Объясняет разницу примитивов и обёрток, автоупаковку и ловушку == с Integer
  • Объясняет неизменяемость строк, пул строк и когда нужен StringBuilder
  • Объясняет, что Java всегда передаёт аргументы по значению, включая ссылки
  • Описывает порядок инициализации полей, static-блоков и конструкторов

Практика. Решить 20 задач «что выведет код» на примитивы, строки, передачу параметров и инициализацию, объяснив каждую.

Проверка знаний

Войдите, чтобы пройти тест: сданный тест отмечает тему пройденной на карте и в ИПР.

Вопросы с собеседований

Смотреть все
Что вернут сравнения для new String("a") и new String("a") через == и через equals()?Junior

== даст false, equals() — true: == сравнивает ссылки, equals() у String — содержимое.

Полный разбор
Почему String в Java неизменяемый?Middle

Неизменяемость String даёт пул строк (литералы разделяются безопасно), кэш hashCode (строка — идеальный ключ HashMap), потокобезопасность без синхронизации и безопасность: проверенный путь к файлу или имя класса нельзя подменить после проверки.

Полный разбор
Библиотека объявляет public static final String VERSION = "1.0". В новой версии значение изменили на "2.0" и заменили только jar библиотеки. Что увидит уже скомпилированное приложение?Senior

Старое "1.0": static final примитив или строка с константным инициализатором — константа времени компиляции, её значение вписано прямо в байт-код потребителя. Без перекомпиляции приложения новое значение не подхватится.

Полный разбор
Integer a=127, b=127, c=128, d=128. Что вернут a==b и c==d?Junior

a==b → true, c==d → false: Integer.valueOf() кэширует значения от −128 до 127.

Полный разбор
Почему int v = flag ? map.get(key) : 0 (map.get может вернуть null) способно бросить NPE?Middle

Если одна ветвь тернарного оператора int, а другая Integer, тип всего выражения — int: обёрточная ветвь распаковывается, и null даёт NPE, хотя код выглядит безопасным.

Полный разбор
Что означает final для переменной-ссылки?Junior

final у ссылки запрещает переприсваивание, но объект по ней менять можно.

Полный разбор
Что верно про модификатор final в Java?Junior

final-класс нельзя наследовать (String, Integer), final-метод нельзя переопределить, final-переменная или поле присваивается ровно один раз. final-ссылка не делает объект неизменяемым — менять его состояние можно.

Полный разбор
Что такое перегрузка метода (overloading)?Junior

Перегрузка (overloading) — несколько методов с одним именем и разными параметрами в одном классе; выбор на этапе компиляции по объявленным типам аргументов. Переопределение (overriding) — подкласс заменяет метод родителя с той же сигнатурой; выбор во время…

Полный разбор
Чем String, StringBuilder и StringBuffer отличаются?Junior

String неизменяем: каждая «правка» — новый объект. StringBuilder — изменяемый буфер, быстрый, не потокобезопасный. StringBuffer — то же, но с synchronized на каждом методе — устаревший вариант.

Полный разбор
Сколько в Java примитивных типов и что хранит char?Junior

Примитивов восемь: byte, short, int, long, float, double, char, boolean; char — 16-битный беззнаковый, один UTF-16 code unit.

Полный разбор

Разборы темы

← Вся карта «Java»

Партнёр платформы

Разбор собеседования с sotto

После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.

Разбор собеседования