Когда нужно генерировать уникальные значения или надёжные случайные числа, лучше использовать более мощные инструменты, чем просто new Random(). Они обеспечивают большую надёжность и безопасность.Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10❤7👍6🤝1
Микросервисная архитектура это подход, при котором приложения делятся на независимые сервисы, каждый из которых выполняет свою задачу.
На картинке собраны основные компоненты для создания микросервисов, базы данных, брокеры сообщений, языки программирования, мониторинг, контейнеризация и безопасность.
Сохрани, чтобы всегда быть в курсе!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9🔥7👍5
Конвертация текста в морзянку!
Морзянка это система представления символов с помощью точек и тире. Мы будем использовать
Создаём таблицу для букв и их кодов:
Делаем функцию для перевода текста в морзянку:
Проходим по каждому символу в строке:
Завершаем функцию и возвращаем результат:
🔥 В итоге получаем перевод текста в морзянку.
👉 Java Ready | #практика
Морзянка это система представления символов с помощью точек и тире. Мы будем использовать
HashMap, чтобы сопоставить символы с их морзянским эквивалентом.Создаём таблицу для букв и их кодов:
var morseCode = new java.util.HashMap<Character, String>();
morseCode.put('A', ".-");
morseCode.put('B', "-...");
Делаем функцию для перевода текста в морзянку:
public String toMorse(String text) {
StringBuilder morseText = new StringBuilder();
text = text.toUpperCase();Проходим по каждому символу в строке:
for (char c : text.toCharArray()) {
if (morseCode.containsKey(c)) {
morseText.append(morseCode.get(c)).append(" ");
} else if (c == ' ') {
morseText.append(" / "); // Пробел разделяет слова
}
}Завершаем функцию и возвращаем результат:
return morseText.toString().trim();
}
🔥 В итоге получаем перевод текста в морзянку.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍4🔥3
Автор рассказывает про готовый Spring Boot Starter, который упрощает разработку Telegram-ботов и избавляет от рутинной конфигурации.
В этой статье:
• Быстрый старт бота
• Управление жизненным циклом
• Готовая архитектура
• Маршрутизация и обработка ошибок
• Open Source проект с исходниками на GitHub
🔊 Читать статью на Habr!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6🔥6👍5
Конвертация миллисекунд в секунды и минуты!
В Java время часто приходит в миллисекундах, например в таймерах, логах, замерах производительности. Чтобы читать такие значения нормально, их удобно быстро переводить.
Исходное значение:
Перевод в секунды:
Перевод в минуты:
🔥 Полезно для логов, таймеров и статистики выполнения кода.
👉 Java Ready | #совет
В Java время часто приходит в миллисекундах, например в таймерах, логах, замерах производительности. Чтобы читать такие значения нормально, их удобно быстро переводить.
Исходное значение:
long millis = 123456;
Перевод в секунды:
long seconds = millis / 1000;
Перевод в минуты:
long minutes = millis / 60000;
Please open Telegram to view this post
VIEW IN TELEGRAM
😁10👍7❤6🔥5
Чтение данных из XML-файла!
Указываем путь к XML-файлу и создаём парсер:
Читаем
Достаём список элементов по тегу:
Вытаскиваем поля из первого элемента:
🔥 В итоге мы читаем
👉 Java Ready | #практика
XML до сих пор встречается в конфигах, интеграциях и старых API. В Java можно читать его без библиотек, через стандартный DOM-парсер.Указываем путь к XML-файлу и создаём парсер:
var path = java.nio.file.Path.of("data.xml");
var factory = javax.xml.parsers.DocumentBuilderFactory.newInstance();
var builder = factory.newDocumentBuilder();Читаем
XML и получаем Document:var doc = builder.parse(path.toFile());
doc.getDocumentElement().normalize();
Достаём список элементов по тегу:
var users = doc.getElementsByTagName("user");
System.out.println("Найдено user: " + users.getLength());Вытаскиваем поля из первого элемента:
var first = (org.w3c.dom.Element) users.item(0);
System.out.println(first.getElementsByTagName("name").item(0).getTextContent());
System.out.println(first.getElementsByTagName("age").item(0).getTextContent());
🔥 В итоге мы читаем
XML как структуру и достаём нужные значения по тегам.Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥5❤4
При работе с файлами из разных систем и источников важно корректно определить их кодировку перед чтением.
В этой задаче:
• Анализируем содержимое;
• Используем детектор кодировки;
• Получаем кодировку.
Такой подход особенно полезен при импорте файлов,
CSV и данных из внешних систем.Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8❤4👍4
В Java есть 8 примитивных типов от
byte до boolean. Каждый из них имеет фиксированный размер, диапазон значений и предназначение.На картинке собраны все типы с примерами и размерами.
Сохрани, чтобы не забыть!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👍7🔥5
Работаем с конфигами!
Хранить настройки прямо в коде это плохая идея. Гораздо удобнее выносить их в конфиг и менять без перекомпиляции.
Создаём конфиг:
Загружаем конфиг в приложении:
Используем значения в коде:
🔥 Таким образом можно легко управлять работай кода не перезапуская программу.
👉 Java Ready | #совет
Хранить настройки прямо в коде это плохая идея. Гораздо удобнее выносить их в конфиг и менять без перекомпиляции.
Создаём конфиг:
app.name=JavaReady
app.port=8080
debug=true
Загружаем конфиг в приложении:
Properties props = new Properties();
props.load(new FileInputStream("app.properties"));
Используем значения в коде:
String name = props.getProperty("app.name");
int port = Integer.parseInt(props.getProperty("app.port"));Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤5🔥5
This media is not supported in your browser
VIEW IN TELEGRAM
Если тебе сложно представить, как работает бинарный поиск, быстрая сортировка или структура «куча» — этот сайт сделан для тебя.
Visualgo позволяет буквально увидеть каждую операцию: шаг за шагом, с пояснениями и анимацией.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍7❤4
Создание меню с выбором действий!
Консольное меню помогает быстро управлять программой без
Создаём сканер и флаг, чтобы меню работало в цикле:
Печатаем меню и читаем выбор пользователя:
Обрабатываем команды через
Закрываем Scanner после выхода из меню:
🔥 Так можно собрать полноценную CLI-утилиту которой сможет управлять пользователь.
👉 Java Ready | #практика
Консольное меню помогает быстро управлять программой без
GUI и сложного кода.Создаём сканер и флаг, чтобы меню работало в цикле:
var sc = new java.util.Scanner(System.in);
boolean run = true;
Печатаем меню и читаем выбор пользователя:
while (run) {
System.out.println("1) Время 2) Сумма 0) Выход");
System.out.print("Выбор: ");
var cmd = sc.nextLine().trim();Обрабатываем команды через
switch: switch (cmd) {
case "1" -> System.out.println(java.time.LocalTime.now());
case "2" -> System.out.println(10 + 20);
case "0" -> run = false;
default -> System.out.println("Неизвестная команда");
}
System.out.println();
}Закрываем Scanner после выхода из меню:
sc.close();
🔥 Так можно собрать полноценную CLI-утилиту которой сможет управлять пользователь.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👍5🔥5
This media is not supported in your browser
VIEW IN TELEGRAM
Здесь подробно разбираются ключевые вещи, с которыми сталкиваешься в Linux каждый день: как работают процессы и сигналы, что происходит с памятью, как устроена файловая система, как читать права доступа и управлять ими. Каждая тема идёт с примерами команд и пояснениями.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7❤6👍4😁1