Специализация
Python Backend Developer
Java Backend Developer
Node.js Backend Developer
Golang Backend Developer
React Frontend Developer
Выберите навыки
React
JavaScript
Git
Redux
Webpack
Сложность
1-3
4-6
7-8
9-10
Рейтинг вопросов
1
2
3
4
5
Подпишись на React Developer в телеграм
Как исправить код с CountDownLatch и не-атомарным счётчиком (без AtomicInteger)?
Чтобы избежать состояния гонки при работе с не-атомарным счётчиком, используйте:
synchronized-блоки для синхронизации доступа к счётчику.
Лок на объекте, общем для всех потоков.
Как сравниваются объекты-обёртки, например Integer?
Объекты-обёртки можно сравнивать по ссылке и по значению.
Оператор == сравнивает ссылки, а метод equals() — значения.
Для Integer результат == может быть неожиданным из-за кеширования.equals() всегда сравнивает числовое значение.
Для корректных сравнений следует использовать equals().
Что такое кеширование Integer и в каком диапазоне оно работает?
Кеширование Integer — это механизм повторного использования объектов для часто используемых чисел.
JVM хранит заранее созданные объекты Integer в ограниченном диапазоне значений.
По умолчанию кешируются значения от -128 до 127.
Это влияет на сравнение через ==.
Метод equals() всегда работает корректно.
Что происходит в памяти JVM при объявлении Integer j = 1000?
Переменная j — это ссылка, которая хранится в стеке.
Сам объект Integer создаётся в heap.
Значение 1000 не попадает в Integer Cache, поэтому создаётся новый объект.
Каждый такой Integer(1000) — отдельный объект.
Это может влиять на сравнение по == и на память.
Рейтинг:
1
Сложность:
6
Рейтинг:
5
Сложность:
6
Рейтинг:
5
Сложность:
5
Рейтинг:
5
Сложность:
5