Это заменяет проверки if (obj != null) и даёт богатую декларативную обёртку. Создавай через .of(), проверяй через .isPresent(), обрабатывай с .map(), и забудь про NullPointerException.Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍3🔥3🤝3
Ключевые слова это зарезервированные слова языка, которые используются для описания логики программы:
if, class, return, try, static и другие.На картинке собраны все основные
keywords, включая const и goto, которые зарезервированы, но не используются.Сохрани, чтобы не путаться в синтаксисе!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤6🔥5
Подсчёт количества дней между двумя датами!
Java умеет работать с датами без ручной арифметики. Можно вычислить разницу между любыми двумя датами.
Создаём две даты через LocalDate:
Считаем разницу в днях через ChronoUnit:
Можно вывести разницу в неделях и месяцах:
🔥 Такой подход даёт точные результаты, учитывая високосные годы и длину месяцев.
👉 Java Ready | #практика
Java умеет работать с датами без ручной арифметики. Можно вычислить разницу между любыми двумя датами.
Создаём две даты через LocalDate:
var start = java.time.LocalDate.of(2025, 1, 10);
var end = java.time.LocalDate.of(2025, 3, 2);
Считаем разницу в днях через ChronoUnit:
long days = java.time.temporal.ChronoUnit.DAYS.between(start, end);
System.out.println("Дней прошло: " + days);
Можно вывести разницу в неделях и месяцах:
long weeks = java.time.temporal.ChronoUnit.WEEKS.between(start, end);
long months = java.time.temporal.ChronoUnit.MONTHS.between(start, end);
System.out.println("Недель: " + weeks);
System.out.println("Месяцев: " + months);
🔥 Такой подход даёт точные результаты, учитывая високосные годы и длину месяцев.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤5🔥5
🏧 Создаём программу для банкомата
Это хороший пример маленького, но уже живого приложения:
пользователь вводит PIN-код, смотрит баланс, снимает деньги или пополняет счёт.
Проверяем PIN-код:
Если PIN неверный, доступ закрыт:
Стартовый баланс:
Показываем меню действий:
Снятие денег:
Пополнение счёта:
Проверка остатка:
Такой пример уже очень похож на реальную логику терминала:
есть авторизация, меню, изменение состояния и обработка действий пользователя.
👉 Java Ready | #совет
Это хороший пример маленького, но уже живого приложения:
пользователь вводит PIN-код, смотрит баланс, снимает деньги или пополняет счёт.
Проверяем PIN-код:
String pin = "1234";
System.out.print("Введите PIN: ");
String input = sc.nextLine();
Если PIN неверный, доступ закрыт:
if (!pin.equals(input)) {
System.out.println("Неверный PIN ❌");
return;
}Стартовый баланс:
double balance = 5000;
Показываем меню действий:
System.out.println("1 - Баланс");
System.out.println("2 - Снять деньги");
System.out.println("3 - Пополнить счёт");
System.out.println("4 - Выход");Снятие денег:
double amount = sc.nextDouble();
if (amount <= balance) {
balance -= amount;
System.out.println("Выдано: " + amount);
}
Пополнение счёта:
double amount = sc.nextDouble();
balance += amount;
System.out.println("Баланс пополнен");
Проверка остатка:
System.out.println("Ваш баланс: " + balance);Такой пример уже очень похож на реальную логику терминала:
есть авторизация, меню, изменение состояния и обработка действий пользователя.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍3🔥3👎1
This media is not supported in your browser
VIEW IN TELEGRAM
Это AI-ассистент для обучения, который позволяет загружать документы, видео или аудио и автоматически превращать их в структурированные материалы: краткие конспекты, ответы, карточки и тесты. Также можно задавать вопросы прямо по загруженному источнику и получать точные ответы на основе его содержания.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12👍8🔥6
Нужно принять список товаров с ценами и красиво отформатировать их в текстовом чеке. Столбцы выравниваются, итог подсчитывается и округляется.
В этой задаче:
• Создаём класс Item для представления товара
• Выводим чек через System.out.printf()
• Выравниваем по ширине и считаем общую сумму
Это идеально подойдет для POS-прототипов или печати квитанций.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11❤4👍4
На картинке собраны ключевые возможности Java 8+: Lambdas, Default methods и Optional. Они упрощают код, делают его чище и помогают избегать null.
Сохрани, чтобы быстрее ориентироваться Java-коде!Please open Telegram to view this post
VIEW IN TELEGRAM
❤11👍6🔥4
Создаём гифку из фото
Несколько обычных фотографий можно превратить в одну анимацию. Такая программа отлично показывает, как работать с изображениями, файлами и последовательной обработкой данных.
Собираем список кадров:
Читаем изображения в память:
Добавляем кадры в GIF по очереди:
Задаём задержку между кадрами:
Сохраняем готовую анимацию:
Программу можно использовать для создания анимированных аватарок, баннеров, презентаций или серии фото.
👉 Java Ready | #совет
Несколько обычных фотографий можно превратить в одну анимацию. Такая программа отлично показывает, как работать с изображениями, файлами и последовательной обработкой данных.
Собираем список кадров:
File[] frames = new File("images").listFiles((dir, name) ->
name.endsWith(".png") || name.endsWith(".jpg"));Читаем изображения в память:
BufferedImage img = ImageIO.read(frames[i]);
Добавляем кадры в GIF по очереди:
gifWriter.writeToSequence(
new IIOImage(img, null, metadata),
params
);
Задаём задержку между кадрами:
metadataNode.setAttribute("delayTime", "50");Сохраняем готовую анимацию:
output.close();
gifWriter.endWriteSequence();
Программу можно использовать для создания анимированных аватарок, баннеров, презентаций или серии фото.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7🔥4👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Это структурированная подборка материалов и примеров по основам Java. Внутри разобраны ключевые темы: классы и объекты, наследование, полиморфизм, коллекции, обработка исключений и базовые алгоритмы. Материал подаётся через код и примеры, что позволяет сразу видеть, как применяются концепции на практике.
Оставляю ссылочку: GitHub📱
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤6🔥6
Создаём консольный редактор текста
Пользователь вводит текст, добавляет новые строки, удаляет лишнее и в любой момент может посмотреть текущее содержимое.
Такой проект хорошо показывает, как строится логика приложения с командами, хранением данных и циклом работы.
Храним все строки текста в списке:
Считываем команду от пользователя:
Добавляем новую строку в редактор:
Показываем всё содержимое с номерами строк:
Удаляем строку по номеру:
Сохраняем текст в файл:
Загружаем текст из файла обратно:
Для новичка это очень сильная практика, потому что здесь сразу есть и структура данных, и пользовательский ввод, и работа с файлами.
👉 Java Ready | #совет
Пользователь вводит текст, добавляет новые строки, удаляет лишнее и в любой момент может посмотреть текущее содержимое.
Такой проект хорошо показывает, как строится логика приложения с командами, хранением данных и циклом работы.
Храним все строки текста в списке:
List<String> lines = new ArrayList<>();
Считываем команду от пользователя:
System.out.print("Команда: ");
String cmd = sc.nextLine();Добавляем новую строку в редактор:
System.out.print("Введите текст: ");
String text = sc.nextLine();
lines.add(text);Показываем всё содержимое с номерами строк:
for (int i = 0; i < lines.size(); i++) {
System.out.println((i + 1) + ": " + lines.get(i));
}Удаляем строку по номеру:
System.out.print("Номер строки: ");
int index = Integer.parseInt(sc.nextLine()) - 1;
lines.remove(index);Сохраняем текст в файл:
Files.write(Path.of("note.txt"), lines);Загружаем текст из файла обратно:
lines = Files.readAllLines(Path.of("note.txt"));Для новичка это очень сильная практика, потому что здесь сразу есть и структура данных, и пользовательский ввод, и работа с файлами.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍3🔥3
Парсинг HTML через Jsoup!
Собираем данные со страниц: тянем заголовки и ссылки, удобно для ботов, парсеров и быстрых утилит.
Устанавливаем библиотеку:
Извлекаем заголовки h1..h3:
Собираем ссылки с текстами:
Массовый парсинг нескольких страниц:
🔥 Быстро вытягиваем метаданные, заголовки и ссылки: идеально для агрегаторов, мониторинга и автосборки контента.
👉 Java Ready | #практика
Собираем данные со страниц: тянем заголовки и ссылки, удобно для ботов, парсеров и быстрых утилит.
Устанавливаем библиотеку:
implementation "org.jsoup:jsoup:1.17.2"
Извлекаем заголовки h1..h3:
var url = "https://java.com";
var doc = org.jsoup.Jsoup.connect(url).get();
doc.select("h1, h2, h3").forEach(h -> {
System.out.println(h.tagName() + ": " + h.text());
});
// h1: Example Domain
// h2:
Собираем ссылки с текстами:
doc.select("a[href]").forEach(a -> {
var href = a.attr("abs:href"); // абсолютная ссылка
var text = a.text();
System.out.println(text + " -> " + href);
});Массовый парсинг нескольких страниц:
var urls = java.util.List.of(
"https://example.com",
"https://example.org"
);
for (var u : urls) {
var d = org.jsoup.Jsoup.connect(u).get();
System.out.println("== " + u + " ==");
d.select("title").forEach(t -> System.out.println(t.text()));
}
🔥 Быстро вытягиваем метаданные, заголовки и ссылки: идеально для агрегаторов, мониторинга и автосборки контента.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍3🔥2
Например, Java-код сначала компилируется в байткод (.class), а затем JVM загружает его, проверяет, и выполняет — либо через интерпретатор, либо через JIT-компиляцию в машинный код.
На схеме — полный пайплайн: от сборки (javac) до выполнения, включая загрузчики классов, этапы линковки и области памяти (heap, stack, method area), а также работу execution engine и JNI.
Сохрани, чтобы не потерять!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍7❤5🤝2