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

Автор: @energy_it

Реклама на бирже: https://telega.in/c/java_ready
Download Telegram
Добавляем водяной знак в PDF

Расскажу как можно добавить на ваш PDF-файл водяной знак для защиты его от копирования.

Открываем PDF:
PDDocument doc = PDDocument.load(new File("input.pdf"));


Берём страницу и начинаем рисовать поверх:
PDPage page = doc.getPage(0);
PDPageContentStream cs =
new PDPageContentStream(doc, page, AppendMode.APPEND, true);


Добавляем текст водяного знака:
cs.beginText();
cs.setFont(PDType1Font.HELVETICA_BOLD, 48);
cs.setNonStrokingColor(200, 200, 200);
cs.setTextMatrix(Matrix.getRotateInstance(
Math.toRadians(45), 150, 300));
cs.showText("CONFIDENTIAL");
cs.endText();


Сохраняем результат:
cs.close();
doc.save("output.pdf");
doc.close();


Водяной знак помогает: защитить документы, помечать файлы и отслеживать утечки

👉 Java Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍6🔥5
Что же выведет консоль?
Anonymous Quiz
60%
A
26%
B
11%
C
3%
D
14👍6🔥5
Создаём метрики — считаем события, время и текущее состояние!

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

Создаём счётчик событий:
int counter = 0;


Увеличиваем счётчик при событии:
counter++;
System.out.println("Событий: " + counter);


Создаём текущее значение:
int gauge = 5;
System.out.println("Текущее значение: " + gauge);

Обновляем gauge при изменении состояния:
```java
gauge -= 2;
System.out.println("Обновлённое значение: " + gauge);


Замеряем время выполнения операции:
long start = System.currentTimeMillis();


Выполняем операцию и считаем длительность:
Thread.sleep(120);
long duration = System.currentTimeMillis() - start;
System.out.println("Время выполнения: " + duration + " мс");


🔥 В итоге у нас получилась базовая система метрик: счётчики, текущие значения и тайминги.

👉 Java Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍5🔥5
This media is not supported in your browser
VIEW IN TELEGRAM
☕️ TheAlgorithms/Java — практические реализации алгоритмов!

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

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

👉 Java Ready | #репозиторий
Please open Telegram to view this post
VIEW IN TELEGRAM
👍118🔥7
Локализация приложения!

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

Создаём файлы локализации:
messages_en.properties
messages_ru.properties


Пример содержимого:
app.start=Приложение запущено
app.exit=Выход из программы


Выбираем локаль:
Locale locale = new Locale("ru");


Загружаем переводы:
ResourceBundle bundle =
ResourceBundle.getBundle("messages", locale);


Используем текст в коде:
System.out.println(bundle.getString("app.start"));


🔥 Так приложение легко переключается между языками
без переписывания кода и перекомпиляции.

👉 Java Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍6🔥4
📂 Напоминалка по Java Core!

Если только начинаешь или хочешь освежить базу, на картинке собраны все основы Java: переменные, операторы, типы, ввод, строки, массивы, условия, циклы и try-catch.

Сохрани, пригодится для повторения!

👉 Java Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥124👍4
Генерация диаграммы!

Сделаем простую столбчатую диаграмму из массива чисел.

Задаём данные для визуализации:
int[] values = {3, 7, 2, 5, 9};


Определяем символ для построения столбцов:
char bar = '█';


Проходим по значениям и строим диаграмму:
for (int v : values) {
System.out.printf("%2d | ", v);


Рисуем нужное количество символов для каждого значения:
    for (int i = 0; i < v; i++) {
System.out.print(bar);
}
System.out.println();
}


Пример результата в консоли:
 3 | ███
7 | ███████
2 | ██
5 | █████
9 | █████████


В итоге получаем наглядную диаграмму прямо в терминале.

👉 Java Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍6🔥5
👩‍💻 Временные файлы — безопасный способ работать с данными!

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

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


👉 Java Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥125👍5
Аннотации Spring Boot, которые нужно знать

👉 Java Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥64
Что же выведет консоль?
Anonymous Quiz
36%
A
32%
B
18%
C
14%
D
👍12🔥86
Автозамена слов в файле!

Иногда нужно массово заменить слово во всём файле. Java позволяет прочитать файл, сделать замену и записать его обратно.

Указываем входной файл и что меняем:
var in = java.nio.file.Path.of("input.txt");
var from = "password";
var to = "********";


Читаем весь текст из файла в строку:
var text = java.nio.file.Files.readString(in);


Делаем замену и получаем обновлённый текст:
var updated = text.replace(from, to);


Сохраняем результат в новый файл:
var out = java.nio.file.Path.of("output.txt");
java.nio.file.Files.writeString(out, updated);


В итоге появляется output.txt с уже заменёнными словами.

👉 Java Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
👍54🔥4👎2
📂 Напоминалка по безопасности в Spring Boot!

Безопасность это обязательная часть продакшена. На картинке собраны ключевые практики для защиты Spring Boot-приложений.

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

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