Для Java приложений не нужен JSON, YAML или TOML. Есть встроенный
.properties простой формат ключ=значение.В этом посте:
• Загружаем конфиг через Properties.load().
• Получаем значения с дефолтами.
• Преобразуем строки в числа и флаги.
Формат понятен, читается в одну строчку, и отлично работает в любых инструментах.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11❤6👍5
Создадим программу, которая будет принимать число и выводить его запись в римской системе.
В этой задаче:
• Храним арабские числа и их римские аналоги в массивах;
• Используем алгоритм для преобразования;
• Формируем строку через StringBuilder.
Алгоритм прост: вычитаем максимальное возможное значение и добавляем символ в строку.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16❤8👍8🤝1
Разберем Shutdown Hook — выполняем код при завершении JVM!
Иногда нужно сделать действие перед выходом программы: сохранить данные, закрыть соединения или вывести сообщение. Для этого есть shutdown hook.
🔥 Полезно для: логирования, graceful shutdown, освобождения ресурсов.
👉 Java Ready | #практика
Иногда нужно сделать действие перед выходом программы: сохранить данные, закрыть соединения или вывести сообщение. Для этого есть shutdown hook.
Runtime.getRuntime().addShutdownHook(new Thread(() -> {
System.out.println("Программа завершена.");
}));🔥 Полезно для: логирования, graceful shutdown, освобождения ресурсов.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤5🔥4
Хранить пароли в базе в открытом виде грубейшая ошибка. Решение — сохранять только их хэши.
В этом посте:
• Используем MessageDigest для MD5.
• Используем MessageDigest для SHA-256.
• Добавляем соль для защиты.
Для серьёзных проектов применяют алгоритмы вроде
PBKDF2, bcrypt и scrypt. Но даже простая схема с SHA-256 и солью уже сильно повышает безопасность.Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13❤7👍6🤝1
Проверяем строку на длину, наличие цифр, строчных и прописных букв, а также спецсимволов. Получаем результат «надёжный» или «слабый».
В этой задаче:
• Описываем правила как предикаты;
• Условия в isStrong();
• Считываем пароль и печатаем результат.
Решение легко встраивается в формы регистрации и консольные утилиты.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16❤6👍5🤝4👎1
NIO Selector — как обрабатывать тысячи соединений в одном потоке!
Обычно каждому сокету нужен поток, но это не масштабируется. Selector позволяет держать тысячи соединений на одном потоке.
Шаг 1 — поднимаем сервер и делаем неблокирующим:
Шаг 2 — регистрируем в селекторе события:
Шаг 3 — ждём событий:
🔥 Так можно обрабатывать тысячи клиентов без лишних потоков.
👉 Java Ready | #практика
Обычно каждому сокету нужен поток, но это не масштабируется. Selector позволяет держать тысячи соединений на одном потоке.
Шаг 1 — поднимаем сервер и делаем неблокирующим:
ServerSocketChannel.open().configureBlocking(false);
Шаг 2 — регистрируем в селекторе события:
server.register(selector, SelectionKey.OP_ACCEPT);
Шаг 3 — ждём событий:
selector.select();
🔥 Так можно обрабатывать тысячи клиентов без лишних потоков.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤5🔥4