На странице собраны вопросы по Java — от проверки базовых принципов до практического применения и архитектурных решений. В подборке чаще встречаются темы: backend, database, optimization.
Ошибки при работе с памятью Утечки памяти — ресурсы не освобождаются, из-за чего потребление памяти постоянно растёт Двойное освобождение — повторный вызов free/ delete приводит к неопределённому поведению…
Преимущества Kotlin перед Java современный статически типизированный язык для JVM корутины для удобной реализации асинхронного кода лаконичный и выразительный синтаксис (type inference, data class) встроенный на этапе…
Преимущества многопроцессного запуска Android-приложения изоляция кода и данных повышает стабильность: сбой в одном процессе не приведёт к завершению работы всего приложения повышение безопасности благодаря…
Ручные SQL-запросы и ORM (Hibernate): преимущества и ограничения Ручной SQL: обеспечивает полный контроль над запросом и его оптимизацией Ручной SQL: предпочтителен для сложных и специализированных запросов, требующих…
компонент Android для производительного отображения списков повторное использование ViewHolder снижает расходы на findViewById и создание View обеспечение плавной прокрутки больших списков благодаря переработке…
Почему мультимодульность лучше монолита архитектура строится из самостоятельных модулей повышаются модульность и понятность кода команды могут вести параллельную разработку уменьшается область влияния изменений:…
Примитивы синхронизации: synchronized, Atomic, семафоры synchronized блокирует метод или отдельный блок кода и обеспечивает взаимное исключение (mutex). Примитив удобен, однако при неправильном применении может…
Основные принципы работы с базой данных целостность данных: соблюдение ACID (атомарность, согласованность, изоляция, долговечность) нормализация: сокращение избыточности и предотвращение аномалий безопасность:…
Проблемы при добавлении индекса на большие таблицы блокировка таблицы и длительное удержание блокировок существенная нагрузка на CPU и IO снижение производительности БД на период построения индекса увеличение объёма…
Проблемы 64-битных примитивов в многопоточной среде Контекст: многопоточность и работа с примитивными типами На 32-битных системах чтение и запись 64-битных long и double могут выполняться неатомарно При отсутствии…
Промежуточные и терминальные операции Stream API Stream API представляет собой конвейер для обработки данных в Java Промежуточные операции — ленивые методы, возвращающие Stream и позволяющие последовательно…
Риски и сценарии использования Executors.newCachedThreadPool() определение: пул потоков с динамически изменяемым размером проблема 1: потенциально неограниченное увеличение количества потоков → риск исчерпания…