Хэширование — это фундаментальный процесс в программировании, который применяется везде: от защиты паролей до ускорения поиска данных в структурах.
Эта статья поможет разобраться в основных видах хэшей, их применении, а также покажет, как их использовать на практике с примерами на Java.
tags: #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5❤3👍1
Почему
Thread.sleep()
не освобождает монитор блокировки?Ответ:
Это происходит потому, что sleep() просто переводит поток в состояние ожидания (TIMED_WAITING), но не влияет на механизмы синхронизации. Пока поток “спит”, другие потоки не могут получить доступ к заблокированному ресурсу, так как монитор остается занятым.
Чтобы освободить монитор и дать другим потокам возможность выполнить код, необходимо использовать wait(), join(), Lock или Condition, которые позволяют явно управлять блокировкой и ожиданием.
tags: #собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥5❤2
В статье на примере реального кейса из Amazon рассказывается о проблемах, которые могут возникнуть при переносе сервисов между архитектурами x86/64 и ARM из-за различий в моделях памяти.
Автор подробно объясняет, что такое модели памяти и барьеры памяти, делится личным опытом и предлагает визуально понятные материалы для глубокого понимания темы.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤1🔥1
Почему
synchronized
не работает с volatile
?Ответ:
Если несколько потоков одновременно обновляют volatile-переменную, они могут перезаписывать изменения друг друга, так как нет механизма блокировки.
Для атомарных операций лучше использовать synchronized, Lock или Atomic-переменные.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18❤4🔥2
NullPointerException
— одна из самых неприятных ошибок в Java, которая может неожиданно привести к сбоям в работе приложения и усложнить жизнь пользователям.В статье рассматриваются современные подходы к обеспечению null-безопасности в Spring-приложениях с использованием JSpecify и NullAway.
Что вы узнаете из статьи?
▶️ Почему NullPointerException остается одной из самых частых ошибок в Java?▶️ Как JSpecify позволяет управлять nullability на уровне API?▶️ В чем разница между JSpecify и NullAway, и когда использовать каждый из них?▶️ Как статический анализ помогает находить потенциальные ошибки на этапе компиляции?▶️ Как интегрировать null-безопасность в Spring-приложение без лишних сложностей?
Автор делится практическими рекомендациями по внедрению null-безопасности, которые снижают количество ошибок и делают код более устойчивым.
tags: #статья #spring
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3❤2
Почему
Phaser
эффективнее, чем CountDownLatch
, если фазы неизвестны заранее?Ответ:
Phaser позволяет:
tags: #собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯7❤6👨💻3👍2
Java NIO (Non-blocking I/O) — это часть стандартной библиотеки Java, обеспечивающая работу с неблокирующими вводом-выводом, сокетами и буферами.
В статье рассматривается создание HTTP-сервера с использованием этого API, позволяющего эффективно обрабатывать множество соединений в одном потоке.
Что вы узнаете в статье?
▶️ Как настроить ServerSocketChannel и принимать соединения?▶️ Как управлять запросами через Selector в одном потоке?▶️ Как обработать HTTP-запрос и отправить ответ?▶️ В чем преимущества NIO перед блокирующими серверами?
Автор показывает ключевые приемы работы с Java NIO и объясняет, как применить их на практике.
tags: #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍3
В чем
CompletableFuture
лучше, чем Future
?Ответ:
Основные преимущества:
tags: #собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥3⚡2❤2
Что если мы скажем вам, что отладчик может стать не просто инструментом для поиска ошибок, а настоящим «режимом бога» в мире кода?
В статье рассматривается, как можно исследовать память приложения и изменить его функциональность, при этом не затрагивая исходный код, а используя только лишь отладчик IntelliJ IDEA.
tags: #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👍3🔥2
👍10❤5🔥4
Вышла общедоступная версия 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 года.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤16👨💻13👍3🔥2
Допустимый 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
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤5🔥3🤔1
Функциональное программирование — это стиль написания кода, основанный на чистых функциях, иммутабельности данных и отсутствии побочных эффектов.
В статье разбираются основные принципы ФП в Java и показано, как использовать лямбда-выражения, функциональные интерфейсы и Stream API для упрощения разработки и повышения надежности кода.
tags: #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤2🔥2