Специализация
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 в телеграм
Что такое JVM, JDK, JRE?
JVM (Java Virtual Machine) выполняет байткод, обеспечивая платформонезависимость Java. JDK (Java Development Kit) — это набор инструментов для разработки, включая компилятор и JRE. JRE (Java Runtime Environment) включает JVM и стандартные библиотеки, позволяя запускать Java-программы.
Зачем используют JVM?
JVM используется для выполнения Java-программ, обеспечивая платформонезависимость и управление памятью. Она позволяет запускать программы на разных операционных системах без необходимости перекомпиляции.
Для чего используется аннотация @JvmStatic в Kotlin?
Аннотация @JvmStatic делает методы или свойства компаньон-объектов статическими в байткоде, чтобы Java-код мог вызывать их как статические методы или поля. Это улучшает совместимость между Kotlin и Java.
Какие типы слабых и сильных ссылок существуют в JVM и когда их использовать?
В JVM есть четыре типа ссылок: сильная (strong), мягкая (soft), слабая (weak) и фантомная (phantom). Сильные не участвуют в сборке мусора. Мягкие используются для кэшей, удаляются при нехватке памяти. Слабые — для карт-кэширования, удаляются при следующем gc независимо от памяти. Фантомные применяются для финализации и пост-удаления.
Какие области памяти JVM ты знаешь?
JVM делит память на несколько логических областей.
Часть из них принадлежит каждому потоку, часть — всей JVM.
Каждая область отвечает за свой тип данных.
Это помогает эффективно управлять памятью и потоками.
Приходилось ли тюнить JVM и настраивать параметры памяти?
Какие параметры JVM ты знаешь для управления heap?
Что происходит в памяти JVM при объявлении int i = 10?
Что происходит в памяти JVM при объявлении Integer j = 1000?
Где хранятся примитивы и объекты-обертки в JVM?
Рейтинг:
3
Сложность:
7
Да, тюнинг JVM требуется в нагруженных и долгоживущих приложениях.
Чаще всего настраивают размеры heap и параметры GC.
Цель — снизить паузы и стабилизировать потребление памяти.
Без тюнинга JVM может работать, но не оптимально.
Рейтинг:
5
Сложность:
6
Для управления heap в JVM используются параметры запуска.
Основные из них задают начальный и максимальный размер кучи.
Также можно управлять размером поколений и поведением сборщика мусора.
Эти параметры напрямую влияют на стабильность и производительность приложения.
Рейтинг:
4
Сложность:
3
Переменная i типа int создаётся в стеке текущего метода.
Значение 10 хранится напрямую в этой ячейке памяти.
Никакие объекты в heap при этом не создаются.int — это примитивный тип, он не имеет ссылочной природы.
Время жизни переменной ограничено временем выполнения метода.
Рейтинг:
5
Сложность:
5
Переменная j — это ссылка, которая хранится в стеке.
Сам объект Integer создаётся в heap.
Значение 1000 не попадает в Integer Cache, поэтому создаётся новый объект.
Каждый такой Integer(1000) — отдельный объект.
Это может влиять на сравнение по == и на память.
Рейтинг:
5
Сложность:
6
Примитивы обычно хранятся в стеке или внутри объектов.
Объекты-обёртки всегда размещаются в heap.
Ссылки на объекты хранятся в стеке или в других объектах.
Место хранения зависит от контекста использования.
Garbage Collector работает только с объектами в heap.
Рейтинг:
4
Сложность:
6
Рейтинг:
3
Сложность:
6
Рейтинг:
2
Сложность:
8
Рейтинг:
2
Сложность:
6
Рейтинг:
5
Сложность:
6