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

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

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

Реклама на бирже: https://telega.in/c/java_tg
Download Telegram
Вопрос с собеседования

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

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

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

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


📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍184🔥2
👩‍💻 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 | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥32
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣67🤯12👍9😁2
Вопрос с собеседования

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

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

Phaser позволяет:

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

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

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

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯76👨‍💻3👍2
👩‍💻 Создание HTTP-сервера на Java NIO

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

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

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

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

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

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


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

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

tags: #статья

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍3
Наглядный принцип работы SQL-инъекций 😆

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

В чем CompletableFuture лучше, чем Future?

Ответ: CompletableFuture предоставляет более гибкий и асинхронный способ работы с результатами вычислений по сравнению с Future.

Основные преимущества:

Не блокирует поток: Future.get() останавливает выполнение до завершения задачи, а CompletableFuture позволяет устанавливать колбэки (thenApply, thenAccept) и работать без ожидания

Комбинирование задач: CompletableFuture поддерживает цепочки (thenCompose, thenCombine), что упрощает обработку зависимых операций

Поддержка асинхронных методов: можно запускать задачи на другом потоке (supplyAsync())

Обработка исключений: встроенные методы (exceptionally, handle) позволяют работать с ошибками без try-catch

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

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥322
👩‍💻 Взлом JVM-приложения с помощью отладчика IntelliJ IDEA

Что если мы скажем вам, что отладчик может стать не просто инструментом для поиска ошибок, а настоящим «режимом бога» в мире кода?

В статье рассматривается, как можно исследовать память приложения и изменить его функциональность, при этом не затрагивая исходный код, а используя только лишь отладчик IntelliJ IDEA.

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

tags: #статья

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍3🔥2
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣11😁5
🔥11👍3
Что выведет код сверху?
Anonymous Quiz
12%
0
38%
5
25%
10
25%
Ошибка
👍105🔥4
⌨️ Вышла Java 24

Вышла общедоступная версия Java 24. В этот релиз попало около 2700 закрытых задач и 24 JEP'а.

Ключевые изменения:
▶️ Загрузка и связывание классов заранее (JEP 483): ускоряет запуск приложений за счет предварительной загрузки и связывания классов

▶️ Stream Gatherers (JEP 485): расширяет Stream API поддержкой пользовательских промежуточных операций

▶️ Оптимизация виртуальных потоков (JEP 491): снижает нагрузку на системные потоки и улучшает масштабируемость многопоточных приложений

▶️ Постквантовая криптография (JEP 496, JEP 497): внедряет механизмы защиты данных от квантовых атак

▶️ Удаление Security Manager (JEP 486): исключает устаревший механизм безопасности из Java

▶️ Предупреждения при использовании sun.misc.Unsafe (JEP 498): поощряют переход на более безопасные API

▶️ Улучшения в сборщиках мусора: снижают паузы и повышают производительность G1 и ZGC

▶️ Удаление поддержки 32-битных систем (JEP 479, JEP 501): исключает 32-битные версии Windows и x86 Linux


Этот релиз не является LTS, обновления для него будут выходить только полгода — до сентября 2025 года.

Подробный обзор на Habr
⬇️ Скачать Java 24

❤️ — если будешь использовать
👨‍💻 — если ничего интересного

📱 Java Developer | #новости
Please open Telegram to view this post
VIEW IN TELEGRAM
16👨‍💻13👍3🔥2
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣22👍4😁3
Задача с LeetCode «Restore IP Addresses №93»

Допустимый IP-адрес состоит из четырёх чисел (0-255), разделённых точками, без начальных нулей, например: «0.1.2.201» и «192.168.1.1». Недопустимы адреса с числами больше 255 или начальными нулями, как «0.011.255.245» или «192.168.1.312».

Задача: из строки s, содержащей только цифры, вернуть все возможные допустимые IP-адреса, вставив точки. Порядок цифр менять нельзя.

Пример 1:
Вход: s = "25525511135"
Выход: ["255.255.11.135","255.255.111.35"]

Пример 2:
Вход: s = "0000"
Выход: ["0.0.0.0"]

tags: #задача #medium

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍85🔥3🤔1
👩‍💻 Функциональное программирование в Java

Функциональное программирование — это стиль написания кода, основанный на чистых функциях, иммутабельности данных и отсутствии побочных эффектов.

В статье разбираются основные принципы ФП в Java и показано, как использовать лямбда-выражения, функциональные интерфейсы и Stream API для упрощения разработки и повышения надежности кода.

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

tags: #статья

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

Почему @RestController предпочтительнее, чем @Controller в Spring Boot API?

Ответ: @RestController объединяет @Controller и @ResponseBody, автоматически сериализуя возвращаемые данные в JSON или XML.

Если использовать
@Controller, придется добавлять @ResponseBody к каждому методу или настраивать ViewResolver.

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

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23🤔42
👩‍💻 Генерация случайных чисел

Случайные числа — важный инструмент в Java, который используется в самых разных сферах: от разработки игр до криптографии.

В статье объясняется, как работают разные типы генераторов в Java (Random, SecureRandom и ThreadLocalRandom) и в чём между ними разница.

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

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
😁28🤣13👍8
2