Создадим программу, которая будет принимать число и выводить его запись в римской системе.
В этой задаче:
• Храним арабские числа и их римские аналоги в массивах;
• Используем алгоритм для преобразования;
• Формируем строку через 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
Программа считает количество строк в .java-файле, отдельно выводит пустые строки и строки с комментариями. Отличный пример работы с файлами и Stream API.
В этой задаче:
• Читаем файл построчно через Files.readAllLines
• Считаем пустые строки методом .isBlank()
• Фильтруем комментарии по //
Решение универсальное и легко расширяется для анализа других языков.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11❤7👍5👎1