TGViewer
Channel Public Channel
Java Developer

Java Developer

@java_tg

Авторский канал действующего разработчика — интересные заметки, новые технологии, библиотеки и фреймворки

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

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

Реклама на бирже: https://telega.in/c/java_tg
Subscribers
14.8K
Photos
2.2K
Videos
162
Links
2.5K

Showing posts older than #3104 · Back to latest

Older Posts 20 shown
Post #3103 3.25K
❔ Вопрос с собеседования

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

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

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

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


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

📱 Java Developer | Чат
  • ❤ 14
  • 👍 9
  • 🔥 8
  • 👨‍💻 3
Post #3099 3.41K
👩‍💻 Ключевые паттерны системного дизайна

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

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

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

tags: #полезное

📱 Java Developer | Чат
  • 👍 7
  • ❤ 4
  • 🔥 1
Post #3098 3.33K
  • 🔥 9
  • 👍 6
  • ❤ 4
  • 🤔 4
Post #3094 3.36K
👩‍💻 Почему Exceptions в Java не взлетели — и что с этим делать в 2025 году?

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

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

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

tags: #статья

📱 Java Developer | Чат
  • 👍 8
  • 🤣 3
  • ❤ 1
Post #3093 3.15K
  • 🔥 17
  • 😁 9
  • ❤ 4
Post #3089 3.57K
👩‍💻 Виртуальные потоки в Java

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

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

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

tags: #полезное

📱 Java Developer | Чат
  • 👍 9
  • ❤ 2
Post #3088 3.13K
❔ Вопрос с собеседования

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

Ответ:

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

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

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

📱 Java Developer | Чат
  • 👍 15
  • ⚡ 4
  • ❤ 3
Post #3087 3.51K
Монолит и микросервисы, наглядно:

📱 Java Developer | #memes
  • 😁 53
  • ❤ 8
  • 🤣 5
  • 🔥 2
  • 💯 2
Post #3086 3.43K
👩‍💻 Проектирование БД рекомендательной системы

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

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

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

tags: #статья

📱 Java Developer | Чат
  • ❤ 7
  • 👍 3
  • 🔥 3
Post #3084 3.28K
❔ Вопрос с собеседования

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

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

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

📱 Java Developer | Чат
  • 👍 16
  • ❤ 6
  • 👨‍💻 2
Post #3081 3.63K
👩‍💻 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 | Чат
  • ⚡ 13
  • 👍 6
  • ❤ 3
Post #3080 3.28K
❔ Вопрос с собеседования

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

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

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


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

📱 Java Developer  | Чат
  • 👍 20
  • ❤ 6
  • 🔥 6
Post #3077 3.65K
👩‍💻 Запросы к MongoDB из Java с помощью билдера фильтров

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

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

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

tags: #статья

📱 Java Developer | Чат
  • ❤ 8
  • 👍 3
  • 🔥 1
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →