TGViewer
Channel Public Channel
Java Ready | Программирование

Java Ready | Программирование

@java_ready

Авторский канал по разработке на Java.
Ресурсы, гайды, задачи, шпаргалки.
Информация ежедневно пополняется!

Cотрудничество: @energy_c
Subscribers
9.26K
Photos
1.4K
Videos
77
Links
759

Showing posts older than #1556 · Back to latest

Older Posts 12 shown
Post #1555 1.77K
Получение хоста и локального IP

Когда нужно узнать имя машины или её локальный IP, класс InetAddress делает это в один вызов.

Получаем информацию о текущем устройстве:
InetAddress host = InetAddress.getLocalHost();  


Имя хоста:
System.out.println("Имя хоста: " + host.getHostName());


Локальный IP-адрес машины:
System.out.println("IP-адрес: " + host.getHostAddress());


🔥 Часто используется для логирования, настройки сетевых сервисов, диагностики и внутренних API.

👉 Java Ready | #совет
  • 👍 7
  • ❤ 5
  • 🔥 4
Post #1553 1.7K
☕️ CodeAbbey — тренажёр алгоритмического мышления!

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

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

👉 Java Ready | #ресурс
  • 👍 10
  • 🔥 6
  • 🤝 5
Post #1552 1.64K
Создаём ZIP-архив из нескольких файлов!

Иногда нужно собрать несколько файлов в один архив. Java умеет делать ZIP без сторонних библиотек только стандартный пакет java.util.zip. Достаточно перечислить файлы, открыть поток и записать их в архив по очереди.

Готовим список файлов, которые нужно упаковать:
var files = java.util.List.of(
"notes.txt",
"image.png",
"data.json"
);


Указываем имя будущего ZIP-архива и путь к нему:
var zipPath = java.nio.file.Path.of("archive.zip");


Открываем поток для записи ZIP-архива:
var zip = new java.util.zip.ZipOutputStream(
java.nio.file.Files.newOutputStream(zipPath)
);


Добавляем каждый файл в архив как отдельную запись:
for (var name : files) {
var path = java.nio.file.Path.of(name);
zip.putNextEntry(new java.util.zip.ZipEntry(path.getFileName().toString()));
java.nio.file.Files.copy(path, zip);
zip.closeEntry();
}


Закрываем архив и сообщаем пользователю о результате:
zip.close();
System.out.println("Готово! Файлы упакованы в " + zipPath);


🔥 В итоге получаем archive.zip, в котором лежат все указанные файлы.

👉 Java Ready | #практика
  • 👍 6
  • ❤ 5
  • 🔥 4
Post #1547 1.63K
👩‍💻 Знаете, что в VS Code можно быстро генерировать фейковые данные для тестов с помощью плагина?

Faker — позволяет легко вставлять случайные имена, адреса, номера телефонов, даты и другие данные прямо в ваш код.

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

👉 Java Ready | #ресурс
  • 👍 9
  • ❤ 5
  • 🔥 3
  • 😁 1
Post #1542 1.64K
👩‍💻 Проверяем доступность сайтов!

Для мониторинга сервисов или автоматизации бывает важно быстро понять, сайт отвечает или нет. С современным HttpClient это можно сделать в несколько строк, отправить запрос, получить код ответа и обработать таймауты.

В этом посте:
• Создаём HttpClient и отправляем запрос;

• Получаем статус доступности сайта;

• Добавляем таймаут для медленных сервисов.


Такой способ подходит для утилит, CI/CD, мониторинга и любых скриптов, работающих с внешними API.

👉 Java Ready | #гайд
  • 🔥 7
  • ❤ 6
  • 👍 5
Post #1540 1.57K
Создание HTML-файла с таблицей данных!

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

Подготавливаем данные для таблицы:
var rows = java.util.List.of(
new String[]{"Имя", "Возраст", "Город"},
new String[]{"Alice", "22", "Paris"},
new String[]{"Bob", "30", "Berlin"}
);


Создаём базовый каркас HTML-страницы:
var sb = new StringBuilder();
sb.append("""
<!DOCTYPE html>
<html><head><meta charset="UTF-8">
<style>table,td,th{border:1px solid #000;border-collapse:collapse;padding:4px;}</style>
</head><body><table>
""");


Добавляем строки таблицы, первая строка будет заголовком:
for (int i = 0; i < rows.size(); i++) {
var r = rows.get(i);
sb.append("<tr>");
for (var cell : r) {
var tag = (i == 0) ? "th" : "td";
sb.append("<").append(tag).append(">")
.append(cell)
.append("</").append(tag).append(">");
}
sb.append("</tr>");
}


Закрываем HTML-структуру:
sb.append("</table></body></html>");


Сохраняем готовый HTML в файл:
java.nio.file.Files.writeString(
java.nio.file.Path.of("report.html"),
sb.toString()
);


🔥 В результате появляется файл report.html, таблица с данными, которую можно открыть в браузере или отправить в отчёте.

👉 Java Ready | #практика
  • ❤ 7
  • 👍 4
  • 🔥 3
Post #1538 1.55K
📂 Напоминалка по методам String!

В Java строки неизменяемы, и для работы с ними есть десятки встроенных методов.

На картинке базовые и самые используемые для поиска, модификации, работа с регистром и регулярками, преобразованием

Сохрани себе что бы не потерять!

👉 Java Ready | #ресурс
  • ❤ 9
  • 👍 7
  • 🔥 4
  • 😁 1
Post #1533 1.61K
👩‍💻 Собираем таймлапс из картинок!

Часто нужно превратить серию кадров в видео. Java отлично подходит для того, чтобы управлять этим процессом и автоматизировать вызов ffmpeg.

В этом посте:
• Формируем команду;

• Запускаем процесс;

• Ждём завершения работы.


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

👉 Java Ready | #задача
  • 🔥 8
  • ❤ 4
  • 👍 3
Post #1531 1.53K
📂 Напоминалка по структуре каталогов Linux!

Например, /bin содержит системные бинарные файлы, а /etc — конфигурации, управляющие поведением системы.

На картинке — директории Linux, их назначение и место в иерархии.

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

👉 Java Ready | #ресурс
  • 👍 12
  • 🔥 5
  • ❤ 3
  • 🤝 2
Post #1530 1.55K
Скрытые риски автобоксинга и анбоксинга!

Сегодня рассмотрим одну из скрытых ловушек Java — автобоксинг и анбоксинг. Эти механизмы удобны, но могут вызывать неожиданные ошибки, влияя на производительность и корректность работы кода

При сравнении объектов-оберток (например, Integer) с использованием оператора == вы можете получить неожиданный результат:
Integer a = 127;
Integer b = 127;
System.out.println(a == b); // true

Integer c = 128;
Integer d = 128;
System.out.println(c == d); // false


Значения от -128 до 127 кешируются JVM для оберток Integer. Поэтому ссылки на объекты с такими значениями указывают на один и тот же объект, а вне этого диапазона создаются новые экземпляры.

Используйте метод .equals() для сравнения значений.
System.out.println(c.equals(d)); // true


А при анбоксинге объекта-обертки, содержащего null, возникает NullPointerException:
Integer value = null;
int result = value; // Ошибка: NullPointerException


Проверяйте объект на null перед анбоксингом:
if (value != null) {
int result = value;
}


🔥 Эти знания помогут вам избежать неожиданных ошибок и сделать код более надежным.

👉 Java Ready | #практика
  • ❤ 12
  • 👍 4
  • 🔥 3
Post #1528 1.54K
💅 CyberLeninka — открытая библиотека научных статей на русском!

Если хочешь разобраться в теме глубже, чем позволяют блоги и туториалы, загляни на этот сайт. Здесь тысячи публикаций по IT, математике, кибербезопасности, машинному обучению и не только. Можно искать по ключевым словам и даже цитировать в своих проектах или статьях.

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

👉 Java Ready | #ресурс
  • 🔥 9
  • 👍 5
  • 🤝 5
  • ❤ 1
  • 😁 1
Post #1527 1.64K
Подсчёт повторяющихся значений в массиве!

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

Создаём массив с повторяющимися элементами:
int[] nums = {1, 2, 3, 2, 3, 3, 4, 1};


Подсчитываем частоту элементов через HashMap:
var freq = new java.util.HashMap<Integer, Integer>();
for (int n : nums) {
freq.put(n, freq.getOrDefault(n, 0) + 1);
}


Выводим результат:
freq.forEach((k, v) -> System.out.println(k + " -> " + v + " раз"));


🔥 На выходе получаем компактную статистику по значениям. Такой способ работает для любых типов чисел, строк и объектов.

👉 Java Ready | #практика
  • 👍 7
  • 🔥 5
  • ❤ 4
  • 😁 1
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →