Java Ready | Программирование
8.89K subscribers
1.22K photos
60 videos
1 file
599 links
Авторский канал по разработке на Java.
Ресурсы, гайды, задачи, шпаргалки.
Информация ежедневно пополняется!

Автор: @energy_it

Реклама на бирже: https://telega.in/c/java_ready
Download Telegram
Конвертация текста в морзянку!

Морзянка это система представления символов с помощью точек и тире. Мы будем использовать 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();
}


🔥 В итоге получаем перевод текста в морзянку.

👉 Java Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍4🔥3
❤️ Spring Boot Starter для Telegram-ботов!

Автор рассказывает про готовый Spring Boot Starter, который упрощает разработку Telegram-ботов и избавляет от рутинной конфигурации.

В этой статье:
• Быстрый старт бота
• Управление жизненным циклом
• Готовая архитектура
• Маршрутизация и обработка ошибок
• Open Source проект с исходниками на GitHub

🔊 Читать статью на Habr!


👉 Java Ready | #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
6🔥6👍5
Конвертация миллисекунд в секунды и минуты!

В Java время часто приходит в миллисекундах, например в таймерах, логах, замерах производительности. Чтобы читать такие значения нормально, их удобно быстро переводить.

Исходное значение:
long millis = 123456;


Перевод в секунды:
long seconds = millis / 1000;


Перевод в минуты:
long minutes = millis / 60000;


🔥 Полезно для логов, таймеров и статистики выполнения кода.

👉 Java Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
😁10👍76🔥5
Чтение данных из XML-файла!

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 как структуру и достаём нужные значения по тегам.

👉 Java Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥54
👩‍💻 Определяем кодировку файла!

При работе с файлами из разных систем и источников важно корректно определить их кодировку перед чтением.

В этой задаче:
Анализируем содержимое;

Используем детектор кодировки;

Получаем кодировку.


Такой подход особенно полезен при импорте файлов, CSV и данных из внешних систем.

👉 Java Ready | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥84👍4
☕️ Напоминалка по примитивным типам данных!

В Java есть 8 примитивных типов от byte до boolean. Каждый из них имеет фиксированный размер, диапазон значений и предназначение.

На картинке собраны все типы с примерами и размерами.

Сохрани, чтобы не забыть!

👉 Java Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍7🔥5
Работаем с конфигами!

Хранить настройки прямо в коде это плохая идея. Гораздо удобнее выносить их в конфиг и менять без перекомпиляции.

Создаём конфиг:
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"));


🔥 Таким образом можно легко управлять работай кода не перезапуская программу.

👉 Java Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
👍115🔥5
This media is not supported in your browser
VIEW IN TELEGRAM
💅 Держите Visualgo — рай для тех, кто понимает глазами!

Если тебе сложно представить, как работает бинарный поиск, быстрая сортировка или структура «куча» — этот сайт сделан для тебя.
Visualgo позволяет буквально увидеть каждую операцию: шаг за шагом, с пояснениями и анимацией.

📌 Оставляю ссылочку: visualgo.net

👉 Java Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍74
Создание меню с выбором действий!

Консольное меню помогает быстро управлять программой без 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-утилиту которой сможет управлять пользователь.

👉 Java Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍5🔥5
This media is not supported in your browser
VIEW IN TELEGRAM
🧐 Tutorialspoint: Linux / Unix — простые объяснения команд, процессов, памяти, файловых систем!

Здесь подробно разбираются ключевые вещи, с которыми сталкиваешься в Linux каждый день: как работают процессы и сигналы, что происходит с памятью, как устроена файловая система, как читать права доступа и управлять ими. Каждая тема идёт с примерами команд и пояснениями.

📌 Оставляю ссылочку: tutorialspoint.com

👉 Java Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥76👍4😁1
Покажись, IP!

Определяем местоположение любого IP прямо из терминала с помощью curl и jq — без сторонних библиотек, всё в консоли.

Юзаем бесплатный API от ip-api.com.
Запрос предельно прост:
curl -s http://ip-api.com/json/1.1.1.1


В ответ получаем JSON с информацией о стране, городе, провайдере и других параметрах.

Подключаем jq, чтобы аккуратно вывести нужные поля из ответа:
curl -s http://ip-api.com/json/1.1.1.1 | jq '.country, .regionName, .city, .isp'


Результат будет отображён построчно: страна, регион, город и провайдер.

Для удобства можно оформить это в виде функции:
geoip() {
curl -s "http://ip-api.com/json/$1" | jq '.query, .country, .city, .isp'
}


И вызвать:
geoip 8.8.8.8


🔥 Отличный способ быстро проверять подозрительные IP во время пентеста или анализа логов.

👉 Java Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍4🔥4
👩‍💻 Хешируем большие файлы!

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

В этом посте:
Создаём MessageDigest;

Читаем файл;

Получаем результат.


Такой подход используют для проверки целостности загрузок, поиска дубликатов и контроля файловых операций.

👉 Java Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥116👍6🤝1
📂 Напоминалка по ArrayList!

ArrayList это удобная коллекция для работы с динамическими списками в Java. На картинке собраны основные методы: от инициализации списка до сортировки, удаления и итерации элементов.

Сохрани, чтобы всегда быть в курсе!

👉 Java Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
10🔥6👍4