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

Автор: @energy_it

Реклама на бирже: https://telega.in/c/java_ready
Download Telegram
Автоматическое логирование через SLF4J + Logback

Заменяем System.out.println на нормальные логи с уровнями и форматами.

Добавляем зависимость:
implementation "ch.qos.logback:logback-classic:1.5.6"


Теперь определим простой конфиг logback.xml, который задаёт формат и уровень логирования:
<configuration>
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d %-5level %logger{12} - %msg%n</pattern>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="CONSOLE"/>
</root>
</configuration>


Используем в коде вместо System.out.println:
var log = org.slf4j.LoggerFactory.getLogger("app");
log.info("Сервис запущен");
log.error("Ошибка", new RuntimeException("broken"));


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

👉 Java Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
16🔥4👍3
👩‍💻 Как работает volatile в Java?

Он гарантирует, что запись переменной одним потоком сразу станет видна другим. Это решает типичную проблему с залипающими флагами в циклах.

В этом посте:
Покажем, как поток может не увидеть изменение;

Исправим это, объявив;

Объясним ограничение.


Применяйте volatile для флагов и статусов, а для счётчиков и составных операций используйте атомики или синхронизацию.

👉 Java Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥135👍4
👩‍💻 Создание ZIP-архива через Java NIO!

Java позволяет архивировать файлы без сторонних библиотек. Можно легко собрать несколько документов или папку в .zip. Это удобно для резервных копий, логов или экспорта данных.

Открываем поток для архива:
var zip = new java.util.zip.ZipOutputStream(
java.nio.file.Files.newOutputStream(java.nio.file.Path.of("archive.zip"))
);


Добавляем файл в архив:
var file = java.nio.file.Path.of("data.txt");
zip.putNextEntry(new java.util.zip.ZipEntry(file.getFileName().toString()));
java.nio.file.Files.copy(file, zip);
zip.closeEntry();


Закрываем архив:
zip.close();
System.out.println("Архив создан!");


🔥 Всё работает без зависимостей только стандартная библиотека. Этот подход простой, быстрый и кроссплатформенный.

👉 Java Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
👍135🔥4
👩‍💻 Double — обёртка для дробных чисел!

Парси строки, проверяй спецзначения, сравнивай, суммируй и легко конвертируй между строками и числами. Удобный инструмент поверх примитива double.

👉 Java Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
11🔥10👍4🤝3
Чтение пользовательского ввода через Scanner!

Scanner позволяет считывать данные прямо из консоли. Можно обрабатывать текст, числа и даже целые строки с пробелами.

Создаём Scanner и читаем имя:
var sc = new java.util.Scanner(System.in);
System.out.print("Введите имя: ");
String name = sc.nextLine();


Считываем возраст:
System.out.print("Введите возраст: ");
int age = sc.nextInt();


Выводим форматированный ответ:
System.out.printf("Привет, %s! Тебе %d лет.%n", name, age);
sc.close();


🔥 Простой способ получать данные от пользователя. Подходит для CLI-инструментов, тестовых утилит и интерактивных задач.

👉 Java Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
👍85🔥4
👩‍💻 Проверяем формат IPv4 в Java!

Строка должна содержать ровно 4 секции, разделённые точками. Каждая секция — только цифры без ведущих нулей и значение в диапазоне от 0 до 255. Если все условия выполнены — адрес корректен.

В этой задаче:
Разбиваем строку на 4 части по символу «.»;

Проверяем, что секции содержат только цифры;

Проверяем диапазон значений и отсутствие ведущих нулей.


Так определяется, корректен ли IPv4-адрес без регулярных выражений и сторонних библиотек.

👉 Java Ready | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥194👍4
Форматированный вывод таблицы через printf!

Иногда нужно вывести таблицу с ровными колонками: имена, цены, количество.

Если просто печатать через System.out.println, всё поедет. Решение — метод printf, который поддерживает форматирование, как в C.

Выводим заголовок таблицы:
System.out.printf("%-10s %-8s %-6s%n", "Товар", "Цена", "Кол-во");
System.out.println("-------------------------");


Добавляем строки с выравниванием:
System.out.printf("%-10s %-8.2f %-6d%n", "Яблоко", 2.5, 10);
System.out.printf("%-10s %-8.2f %-6d%n", "Банан", 3.75, 5);
System.out.printf("%-10s %-8.2f %-6d%n", "Апельсин", 4.1, 12);


Результат в консоли:
Товар      Цена     Кол-во
--------------------------
Яблоко 2.50 10
Банан 3.75 5
Апельсин 4.10 12


🔥 Форматирование делает консольные отчёты и списки аккуратными. Можно выравнивать по левому краю, задавать ширину и количество знаков после запятой.

👉 Java Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
15👍8🔥6