😁29🔥6⚡2❤1
В статье показано, как с помощью класса Filters удобно строить фильтры для запросов к MongoDB — например, искать документы по условию, диапазону или списку значений.
Примеры охватывают методы eq, gt, in, or, regex и другие, с пояснениями и готовыми сниппетами кода.
tags: #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👍3🔥1
Может ли интерфейс содержать поля?
Ответ:
Интерфейс не может содержать обычные переменные, потому что он не хранит состояние объектов — только описывает поведение.
tags: #собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20❤6🔥6
Bazel — это высокопроизводительный инструмент сборки от Google, подходящий для Java-проектов любой сложности.
Используется для быстрой, воспроизводимой и масштабируемой сборки, особенно в больших кодовых базах и CI.
Пример java_binary в BUILD-файле:
java_binary(
name = "app",
srcs = ["Main.java"],
deps = [":core"],
main_class = "com.example.Main"
)
Maven-зависимости подключаются через
rules_jvm_external
и описываются в WORKSPACE-файле.tags: #полезное
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡13👍6❤3
Могут ли у абстрактного класса быть конструкторы?
Ответ:
tags: #собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15❤6👨💻2
В статье рассматривается проектирование системы по подходу DB-first и то, какие проблемы он помогает не просто решить, а устранить как явление.
База данных выступает как полноценный сервис с контрактом в виде схемы, а dbfirst позволяет сгенерировать SDK под эту схему для Java и Haskell.
tags: #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍3🔥3
Как изменится поведение метода
wait()
, если передать ему аргумент? Ответ:
tags: #собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤3⚡3
В видео разбирается, как работают виртуальные потоки в Java, чем они отличаются от обычных, и как позволяют запускать тысячи задач без перегрузки памяти.
Автор сравнивает блокирующий, асинхронный и виртуальный подходы, показывает примеры кода и объясняет, как виртуальные потоки упрощают масштабирование.
tags: #полезное
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤2
🔥17😁7❤4
В статье рассматриваются причины, по которым исключения в Java не прижились, и предлагаются альтернативные подходы к обработке ошибок — от классических
try/catch
до Typed Errors
с использованием Kotlin и библиотеки Arrow.Автор делится практическим опытом и показывает, когда лучше использовать исключения, а когда — функциональные конструкции вроде
Either
.tags: #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🤣3
🔥8👍5❤4🤔4
В видео разбираются основные архитектурные паттерны, которые помогают строить надёжные и масштабируемые системы: CQRS, Pub/Sub, Event Sourcing, Circuit Breaker и другие.
Автор объясняет, как и зачем они применяются, с примерами, плюсами и ограничениями каждого подхода.
tags: #полезное
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤4🔥1
За счёт чего достигается синхронизация в ConcurrentHashMap?
Ответ:
Когда происходит вставка, карта сначала пытается разместить элемент в нужной ячейке массива table с помощью атомарной операции CAS (Compare-And-Swap). Это безблокирующий способ записи: если ячейка пуста, значение вставляется безопасно без захвата монитора.
Если в ячейке уже есть другие элементы и простая вставка невозможна, используется synchronized, но только на уровне конкретного узла (Node). Это означает, что блокировка применяется локально, не затрагивая всю карту, и другие потоки могут параллельно работать с другими ячейками.
tags: #собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12👍8🔥8👨💻3