Java Developer
16.1K subscribers
1.57K photos
114 videos
2 files
1.71K links
Авторский канал действующего разработчика — интересные заметки, новые технологии, библиотеки и фреймворки

Сотрудничество: @bape_ads
Прайс: @bape_media

РКН: https://clck.ru/3GHfTK

Реклама на бирже: https://telega.in/c/java_tg
Download Telegram
Что выведет код сверху?
Anonymous Quiz
15%
D
13%
CD
37%
DE
4%
CDE
31%
abcde
😁29🔥621
👩‍💻 Запросы к MongoDB из Java с помощью билдера фильтров

В статье показано, как с помощью класса Filters удобно строить фильтры для запросов к MongoDB — например, искать документы по условию, диапазону или списку значений.

Примеры охватывают методы eq, gt, in, or, regex и другие, с пояснениями и готовыми сниппетами кода.

Читать статью

tags: #статья

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍3🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥33😁158
Вопрос с собеседования

Может ли интерфейс содержать поля?

Ответ: Да, но только постоянные значения. Любое поле в интерфейсе автоматически становится public static final, то есть это всегда константа, общая для всех.

Интерфейс не может содержать обычные переменные, потому что он не хранит состояние объектов — только описывает поведение.


tags: #собеседование

📱 Java Developer  | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍206🔥6
👩‍💻 Bazel

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-файле.

📱 Ссылка на GitHub
📁 Документация

— если использовал
⚡️ — если Gradle лучше

tags: #полезное

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
13👍63
Please open Telegram to view this post
VIEW IN TELEGRAM
💯34🔥6👍4🤯2
Вопрос с собеседования

Могут ли у абстрактного класса быть конструкторы?

Ответ: Да, у абстрактного класса могут быть конструкторы. Они вызываются при создании экземпляров подклассов для инициализации общих переменных. Даже если конструктор не определён явно, компилятор добавляет его по умолчанию, чтобы обеспечить корректную работу цепочки вызовов super().

tags: #собеседование

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍156👨‍💻2
👩‍💻 Проектирование БД рекомендательной системы

В статье рассматривается проектирование системы по подходу DB-first и то, какие проблемы он помогает не просто решить, а устранить как явление.

База данных выступает как полноценный сервис с контрактом в виде схемы, а dbfirst позволяет сгенерировать SDK под эту схему для Java и Haskell.

Читать статью

tags: #статья

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍3🔥3
Монолит и микросервисы, наглядно:

📱 Java Developer | #memes
Please open Telegram to view this post
VIEW IN TELEGRAM
😁498🤣5🔥2💯2
Вопрос с собеседования

Как изменится поведение метода wait(), если передать ему аргумент?

Ответ:

▶️ Если wait() вызывается без аргументов, поток переходит в состояние ожидания до вызова notify() или notifyAll()

▶️ Если передать аргумент (время ожидания), поток автоматически возобновит выполнение после истечения указанного времени, даже если notify() не был вызван

tags: #собеседование

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1333
👩‍💻 Виртуальные потоки в Java

В видео разбирается, как работают виртуальные потоки в Java, чем они отличаются от обычных, и как позволяют запускать тысячи задач без перегрузки памяти.

Автор сравнивает блокирующий, асинхронный и виртуальный подходы, показывает примеры кода и объясняет, как виртуальные потоки упрощают масштабирование.

📱 Смотреть на YouTube

tags: #полезное

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍72
Please open Telegram to view this post
VIEW IN TELEGRAM
😁5610🤣6🔥4👀3
Что выведет код сверху?
Anonymous Quiz
4%
1010
60%
1010.2
7%
20.2
29%
Ошибка
🔥17😁74
👩‍💻 Почему Exceptions в Java не взлетели — и что с этим делать в 2025 году?

В статье рассматриваются причины, по которым исключения в Java не прижились, и предлагаются альтернативные подходы к обработке ошибок — от классических try/catch до Typed Errors с использованием Kotlin и библиотеки Arrow.

Автор делится практическим опытом и показывает, когда лучше использовать исключения, а когда — функциональные конструкции вроде Either.

Читать статью

tags: #статья

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🤣3
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣3910😎5
2
Что выведет код сверху?
Anonymous Quiz
54%
0
5%
1
4%
2
27%
null
10%
ArrayIndexOutOfBoundsException
🔥8👍54🤔4
👩‍💻 Ключевые паттерны системного дизайна

В видео разбираются основные архитектурные паттерны, которые помогают строить надёжные и масштабируемые системы: CQRS, Pub/Sub, Event Sourcing, Circuit Breaker и другие.

Автор объясняет, как и зачем они применяются, с примерами, плюсами и ограничениями каждого подхода.

📱 Смотреть на YouTube

tags: #полезное

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍64🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣53😁75
Вопрос с собеседования

За счёт чего достигается синхронизация в ConcurrentHashMap?

Ответ:
В ConcurrentHashMap, начиная с Java 8, синхронизация достигается за счёт сочетания атомарных операций и локальной синхронизации на уровне отдельных ячеек (bin) таблицы.

Когда происходит вставка, карта сначала пытается разместить элемент в нужной ячейке массива table с помощью атомарной операции CAS (Compare-And-Swap). Это безблокирующий способ записи: если ячейка пуста, значение вставляется безопасно без захвата монитора.

Если в ячейке уже есть другие элементы и простая вставка невозможна, используется synchronized, но только на уровне конкретного узла (Node). Это означает, что блокировка применяется локально, не затрагивая всю карту, и другие потоки могут параллельно работать с другими ячейками.


tags: #собеседование

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
12👍8🔥8👨‍💻3