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 #1700 · Back to latest

Older Posts 12 shown
Post #1698 1.99K
📂 Напоминалка по состояниям потоков в Java!

Поток в Java может находиться в одном из 6 состояний: NEW, RUNNABLE, BLOCKED, WAITING, TIMED_WAITING, TERMINATED.
На картинке чёткая схема переходов между ними с указанием методов, которые это вызывают.

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

👉 Java Ready | #ресурс
  • 👍 17
  • ❤ 5
  • 🔥 5
Post #1697 1.95K
Генерация deterministic ID!

Иногда UUID не подходит и нужен ID, который стабилен и повторяем. Удобно для кэшей, ключей и записей.

Задаём входные данные, из которых будем делать ID:
String input = "user:alice@example.com";


Хешируем строку алгоритмом SHA-256:
var md = java.security.MessageDigest.getInstance("SHA-256");
byte[] hash = md.digest(input.getBytes(java.nio.charset.StandardCharsets.UTF_8));


Переводим байты в компактный HEX-вид:
var sb = new StringBuilder();
for (byte b : hash) sb.append(String.format("%02x", b));


Берём первые 12 символов:
String id = sb.substring(0, 12);
System.out.println("ID: " + id);


Можно менять длину ID и использовать как ключ в базе, кэше или логах.

👉 Java Ready | #практика
  • ❤ 8
  • 👍 6
  • 🔥 4
Post #1695 2.02K
💡 Awesome Java — крутая подборка ресурсов для любого уровня!

Целый каталог материалов: библиотеки, фреймворки, статьи, туториалы, книги, проекты, инструменты и ссылки на полезные сообщества. Репозиторий охватывает всё, от основ языка и JVM до продвинутых тем. Полезно тем, кто хочет структурировать обучение, подобрать ресурсы под конкретную задачу или пополнить свой набор инструментов.

Оставляю ссылочку: GitHub 📱


👉 Java Ready | #ресурс
  • ❤ 12
  • 🔥 9
  • 🤝 5
  • 👍 4
Post #1694 1.97K
Очередь задач!

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

Создаём очередь задач:
BlockingQueue<Runnable> queue = new LinkedBlockingQueue<>();


Добавляем задачи в очередь:
queue.add(() -> System.out.println("Задача 1 выполнена"));
queue.add(() -> System.out.println("Задача 2 выполнена"));


Запускаем обработчик очереди:
while (true) {
Runnable task = queue.take();
task.run();
}


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

👉 Java Ready | #ресурс
  • ❤ 11
  • 👍 7
  • 🔥 5
Post #1692 2K
📂 Напоминалка по сетевой диагностике!

Например, ping используется для проверки доступности узла и времени отклика, ss и netstat позволяют определить открытые порты и активные соединения.

На изображении — самые часто используемые сетевые команды для Linux/macOS и Windows, которые применяются при анализе сетевых сбоев, проблем с подключением и производительностью.

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

👉 Java Ready | #ресурс
  • ❤ 12
  • 🔥 7
  • 👍 6
  • 🤝 3
Post #1687 2.22K
👩‍💻 Создадим свой мини логгер!

Когда не хочется тянуть библиотеки ради простого логирования можно сделать всё вручную. Добавим уровни (INFO, WARN, ERROR), цвет в консоли и текущее время.

В этом посте:
• Напишем метод log() с цветным выводом.

• Добавим уровни сообщений.

• Получим формат: [INFO] 12:44:05 - Сообщение.


Подходит для отладки, мини-приложений и утилит.

👉 Java Ready | #гайд
  • 🔥 14
  • ❤ 7
  • 👍 6
Post #1686 2.06K
Генератор резервной копии папки!

Резервные копии спасают от случайных удалений и ошибок. В Java можно скопировать целую папку со всеми файлами.

Указываем исходную папку и каталог для резервной копии:
var source = java.nio.file.Path.of("data");
var backup = java.nio.file.Path.of("backup");


Создаём папку для бэкапа, если её ещё нет:
if (!java.nio.file.Files.exists(backup))
java.nio.file.Files.createDirectory(backup);


Проходим по файлам в исходной папке:
try (var paths = java.nio.file.Files.list(source)) {
paths.forEach(p -> {


Копируем каждый файл в папку backup:
        try {
var target = backup.resolve(p.getFileName());
java.nio.file.Files.copy(
p, target,
java.nio.file.StandardCopyOption.REPLACE_EXISTING
);
} catch (Exception e) {
System.out.println("Ошибка: " + p.getFileName());
}
});
}


Сообщаем о результате:
System.out.println("Резервная копия создана в папке backup");


В итоге получаем копию всех файлов из data в backup.

👉 Java Ready | #практика
  • 👍 9
  • ❤ 6
  • 🔥 4
  • 😁 1
Post #1684 2.27K
😎 Java Design Patterns — удобный и компактный сайт с реализациями всех популярных шаблонов проектирования на Java!

Каждый шаблон снабжён кратким описанием, структурной диаграммой и кодом. Подойдёт как для повторения, так и для практики при разработке крупных проектов.

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

👉 Java Ready | #ресурс
  • 👍 12
  • 🔥 9
  • ❤ 6
Post #1683 2.17K
Защита от повторного запуска!

Иногда приложение нельзя запускать дважды, второй экземпляр создаёт конфликты и ошибки. Решение создать lock-файл, первый запуск ставит блокировку, второй сразу выходит.

Создаём lock-файл:
Path lockPath = Path.of("app.lock");


Открываем и пытаемся заблокировать:
FileChannel ch = FileChannel.open(lockPath,
StandardOpenOption.CREATE, StandardOpenOption.WRITE);

FileLock lock = ch.tryLock();


Если блокировка не получена — второй запуск запрещён:
if (lock == null) {
System.out.println("Экземпляр уже запущен");
System.exit(1);
}


Если всё ок, то приложение работает:
System.out.println("Запуск разрешён ✅");


👉 Java Ready | #совет
  • ❤ 7
  • 👍 7
  • 🔥 4
Post #1681 2.31K
✍️ AlgoTree — понятные объяснения алгоритмов, деревьев и графов!

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

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

👉 Java Ready | #ресурс
  • 👍 12
  • ❤ 6
  • 🔥 5
  • 🤝 4
Post #1676 3.18K
👩‍💻 Случайные числа, это основа для программирования!

Даже самые простые приложения часто требуют случайности. Стандартная Java позволяет сделать это быстро и просто.

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


👉 Java Ready | #шпора
  • 🔥 29
  • 👍 7
  • ❤ 4
  • 🤝 4
Post #1671 2.85K
👩‍💻 Проверяем целостность JAR-файла по подписи!

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

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

• Считываем вывод команды;

• Проверяем результат.


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

👉 Java Ready | #гайд
  • 🔥 11
  • ❤ 5
  • 👍 5
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 →