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 #2675 · Back to latest

Older Posts 20 shown
Post #2673 3.98K
👩‍💻 Создание HTTP-сервера на Java NIO

Java NIO (Non-blocking I/O) — это часть стандартной библиотеки Java, обеспечивающая работу с неблокирующими вводом-выводом, сокетами и буферами.

В статье рассматривается создание HTTP-сервера с использованием этого API, позволяющего эффективно обрабатывать множество соединений в одном потоке.

Что вы узнаете в статье?
▶️ Как настроить ServerSocketChannel и принимать соединения?

▶️ Как управлять запросами через Selector в одном потоке?

▶️ Как обработать HTTP-запрос и отправить ответ?

▶️ В чем преимущества NIO перед блокирующими серверами?


Автор показывает ключевые приемы работы с Java NIO и объясняет, как применить их на практике.

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

tags: #статья

📱 Java Developer | Чат
  • ❤ 6
  • 👍 3
Post #2672 3.82K
❔ Вопрос с собеседования

Почему Phaser эффективнее, чем CountDownLatch, если фазы неизвестны заранее?

Ответ: В отличие от CountDownLatch, который можно использовать только один раз, Phaser поддерживает многоразовую синхронизацию, что делает его более гибким.

Phaser позволяет:

▶️ Динамически добавлять и удалять потоки во время выполнения

▶️ Использовать несколько фаз без необходимости создания новых объектов

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

📱 Java Developer | Чат
  • 🤯 7
  • ❤ 6
  • 👨‍💻 3
  • 👍 2
Post #2669 4.34K
👩‍💻 Null-safety в Spring-приложениях с JSpecify и NullAway

NullPointerException — одна из самых неприятных ошибок в Java, которая может неожиданно привести к сбоям в работе приложения и усложнить жизнь пользователям.

В статье рассматриваются современные подходы к обеспечению null-безопасности в Spring-приложениях с использованием JSpecify и NullAway.

Что вы узнаете из статьи?
▶️ Почему NullPointerException остается одной из самых частых ошибок в Java?

▶️ Как JSpecify позволяет управлять nullability на уровне API?

▶️ В чем разница между JSpecify и NullAway, и когда использовать каждый из них?

▶️ Как статический анализ помогает находить потенциальные ошибки на этапе компиляции?

▶️ Как интегрировать null-безопасность в Spring-приложение без лишних сложностей?


Автор делится практическими рекомендациями по внедрению null-безопасности, которые снижают количество ошибок и делают код более устойчивым.

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

tags: #статья #spring

📱 Java Developer | Чат
  • 🔥 3
  • ❤ 2
Post #2668 3.85K
❔ Вопрос с собеседования

Почему synchronized не работает с volatile?

Ответ: volatile гарантирует видимость изменений между потоками, но не обеспечивает атомарности операций.

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

Для атомарных операций лучше использовать synchronized, Lock или Atomic-переменные.


📱 Java Developer | Чат
  • 👍 18
  • ❤ 4
  • 🔥 2
Post #2666 4.19K
👩‍💻 Барьеры и модели памяти

В статье на примере реального кейса из Amazon рассказывается о проблемах, которые могут возникнуть при переносе сервисов между архитектурами x86/64 и ARM из-за различий в моделях памяти.

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

⛓ Ссылка на статью

📱 Java Developer | #статья
  • 👍 8
  • ❤ 1
  • 🔥 1
Post #2665 3.92K
❔ Вопрос с собеседования

Почему Thread.sleep() не освобождает монитор блокировки?

Ответ: Метод Thread.sleep() приостанавливает выполнение потока на заданное время, но при этом не освобождает монитор, если поток удерживает synchronized-блокировку.

Это происходит потому, что sleep() просто переводит поток в состояние ожидания (TIMED_WAITING), но не влияет на механизмы синхронизации. Пока поток “спит”, другие потоки не могут получить доступ к заблокированному ресурсу, так как монитор остается занятым.

Чтобы освободить монитор и дать другим потокам возможность выполнить код, необходимо использовать wait(), join(), Lock или Condition, которые позволяют явно управлять блокировкой и ожиданием.


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

📱 Java Developer | Чат
  • 👍 8
  • 🔥 5
  • ❤ 4
Post #2662 4.5K
👩‍💻 Хэши: виды, применение и примеры

Хэширование — это фундаментальный процесс в программировании, который применяется везде: от защиты паролей до ускорения поиска данных в структурах.

Эта статья поможет разобраться в основных видах хэшей, их применении, а также покажет, как их использовать на практике с примерами на Java.

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

tags: #статья

📱 Java Developer | Чат
  • ❤ 6
  • 🔥 5
  • 👍 1
Post #2661 3.95K
  • 👍 14
  • 🤯 11
  • 🔥 5
  • 😁 2
Post #2656 4.25K
👩‍💻 Нововведения Java 24

18 марта выходит Java 24 с улучшенной работой потоков, байткода и взаимодействия с нативным кодом.

Основные нововведения:
▶️ Stream Gatherers: новый метод gather(Gatherer) для кастомных операций в стримах

▶️ Class-File API: официальное API для работы с байткодом и модификацией классов

▶️ Pattern Matching for switch: расширенная поддержка паттерн-матчинга в switch

▶️ Foreign Function & Memory API: улучшенное взаимодействие с нативным кодом и памятью

▶️ Virtual Threads: виртуальные потоки для более эффективной многопоточности


Подробнее обо всех изменениях можно прочитать в статье.

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

tags: #статья

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

Поддерживает ли Java множественное наследование классов?

Ответ: Java не позволяет классу наследоваться сразу от нескольких классов, так как это может привести к конфликтам при разрешении методов.

Однако, множественное наследование можно реализовать с помощью интерфейсов – класс может одновременно имплементировать несколько интерфейсов, получая их сигнатуры методов без конкретной реализации.


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

📱 Java Developer | Чат
  • 🔥 17
  • ❤ 7
  • 👍 2
Post #2654 4.22K
Пусть сами выбирают⁠⁠

📱 Java Developer | #memes
  • 😁 40
  • 🤣 13
  • 💯 4
Post #2652 4.71K
👩‍💻 Вышла IntelliJ IDEA 2025.1 Beta

JetBrains выпустила бета-версию IntelliJ IDEA 2025.1 с улучшенной работой с Git, коммитами и интеграцией Dev Containers, а также рядом других обновлений.

Основные нововведения:
▶️ Интерфейс: нативные диалоговые окна для работы с файлами в Windows

▶️ Git: отображение деталей коммита в окне diff, авто-fetch при изменении remote, отключение хуков при коммите

▶️ Коммиты: немодальное окно коммита для удобства и скорости работы

▶️ Dev Containers: готовый образ Ubuntu для быстрого запуска контейнеризированных сред


Подробнее обо всех изменениях — в статье.

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

tags: #статья

📱 Java Developer | Чат
  • ❤ 10
  • 👍 5
  • 👨‍💻 2
Post #2651 4.36K
❔ Вопрос с собеседования

В чем преимущества и недостатки ООП по сравнению с процедурным/функциональным программированием?

Преимущества ООП:

▶ Модульность: легкость управления большими проектами

▶ Повторное использование: возможность использования одного и того же кода в разных частях программы

▶ Поддержка абстракции: обеспечение высокого уровня абстракции через классы и объекты

Недостатки ООП:

▶ Сложность: для новичков сложнее освоить концепции ООП по сравнению с процедурным подходом

▶ Производительность: может быть ниже по сравнению с другими способами

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

📱 Java Developer | Чат
  • 🔥 10
  • ❤ 5
Post #2650 4.38K
Ох уж эти питонисты

📱 Java Developer | #memes
  • 🔥 27
  • 🤣 14
  • ⚡ 6
  • ❤ 2
  • 👍 1
Post #2648 4.02K
👩‍💻 Java-тестирование приватных методов

Приватные методы редко тестируют напрямую, но в некоторых случаях это может быть необходимо.

В статье разбираются способы их тестирования с помощью Reflection API, публичных интерфейсов и альтернативных подходов.

Что вы узнаете из статьи:
▶️ Когда тестирование приватных методов действительно необходимо?

▶️ Как с помощью Reflection API получить доступ к закрытым методам?

▶️ Почему тестирование через публичные методы предпочтительнее?

▶️ Какие архитектурные решения позволяют упростить тестирование?


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

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

tags: #статья

📱 Java Developer | Чат
  • ❤ 4
  • 👍 3
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 →