Авторский канал по разработке на Java.
Ресурсы, гайды, задачи, шпаргалки.
Информация ежедневно пополняется!
Cотрудничество: @energy_c
Post #1669
2.21K

- ❤ 10
- 👍 6
- 🔥 6
JA @java_ready
Showing posts older than #1671 · Back to latest


• Что такое Robolectric и как он работает
• Как использовать Robolectric для тестирования без эмулятора и устройства
• Модификация байткода и использование ASM и кастомных ClassLoader'ов 🔊 Продолжай читать на Habr!

String ip = "8.8.8.8";
GeoIP API:URL url = new URL("https://ip-api.com/json/" + ip);BufferedReader br = new BufferedReader(
new InputStreamReader(url.openStream())
);
String response = br.readLine();
System.out.println(response);






Цифровая подпись решает сразу две задачи: подтверждает источник данных и гарантирует, что они не были изменены.
Приложение перестаёт полагаться на контекст и начинает опираться на математику, что делает систему устойчивее к подменам, атакам и ошибкам интеграции.SystemTray и TrayIcon, которые позволяют отправить всплывающее сообщение в нативный трей операционной системы.java.awt, чтобы работать с системным треем.import java.awt.*;
if (SystemTray.isSupported()) {
SystemTray tray = SystemTray.getSystemTray();
Image img = Toolkit.getDefaultToolkit().createImage("icon.png");
TrayIcon icon = new TrayIcon(img, "Java App");
tray.add(icon); icon.displayMessage("Готово!", "Задача завершена", TrayIcon.MessageType.INFO);
} else {
System.out.println("Трей не поддерживается на этой системе");
}JavaFX или Swing.Оставляю ссылочку: GitHub 📱
language-detector.implementation 'com.optimaize.languagedetector:language-detector:0.6'
LanguageDetector detector = LanguageDetectorBuilder.create().build();
TextObjectFactory factory = CommonTextObjectFactories.forDetectingOnLargeText();
String input = "Привет, как дела?";
TextObject text = factory.forText(input);
Optional<LdLocale> lang = detector.detect(text);
System.out.println("Язык: " + lang.map(LdLocale::getLanguage).orElse("не определён"));
ru, en, fr и т.д. Работает с короткими и длинными фразами, подходит для фильтрации, автоопределения языка и локализации.

LocalDateTime expiresAt = LocalDateTime.of(2026, 1, 20, 0, 0);
LocalDateTime now = LocalDateTime.now();
if (now.isAfter(expiresAt)) {
System.out.println("Доступ истёк");
System.exit(1);
}System.out.println("Доступ активен");

Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
String text = "secret-token-123";
StringSelection data = new StringSelection(text);
clipboard.setContents(data, null);
String value = (String) clipboard.getData(DataFlavor.stringFlavor);
System.out.println(value);

Pomodoro помогает работать концентрированно и не выгорать. Сделаем консольный таймер, который сам считает время и сообщает о смене этапа.int workMinutes = 25;
int breakMinutes = 5;
void countdown(int seconds) throws InterruptedException {
while (seconds > 0) {
System.out.print("\rОсталось: " + seconds + " сек ");
Thread.sleep(1000);
seconds--;
}
System.out.println();
}System.out.println("Работаем!");
countdown(workMinutes * 60);System.out.println("Перерыв!");
countdown(breakMinutes * 60);System.out.println("Помодоро завершён.");