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

Автор: @energy_it

Реклама на бирже: https://telega.in/c/java_ready
Download Telegram
Создаём Крестики-Нолики!

В итоге мы получим реальную игру: поле 3×3, два игрока, проверка победы и ничьи. Игроки будут вводить координаты, а программа — валидировать ход и обновлять поле.

Создаём поле и текущего игрока:
char[][] b = {
{' ', ' ', ' '},
{' ', ' ', ' '},
{' ', ' ', ' '}
};
char player = 'X';


Функция вывода поля:
void print() {
for (int i = 0; i < 3; i++) {
System.out.println(" " + b[i][0] + " | " + b[i][1] + " | " + b[i][2]);
if (i < 2) System.out.println("---+---+---");
}
}


Проверка победы (строки, колонки, диагонали):
boolean win(char p) {
for (int i = 0; i < 3; i++)
if ((b[i][0]==p && b[i][1]==p && b[i][2]==p) ||
(b[0][i]==p && b[1][i]==p && b[2][i]==p))
return true;

return (b[0][0]==p && b[1][1]==p && b[2][2]==p) ||
(b[0][2]==p && b[1][1]==p && b[2][0]==p);
}


Проверка ничьи (нет пустых клеток):
boolean draw() {
for (var r : b)
for (var c : r)
if (c == ' ') return false;
return true;
}


Основной игровой цикл:
var sc = new java.util.Scanner(System.in);

while (true) {
print();
System.out.print("Игрок " + player + " (строка и столбец 1-3): ");
int r = sc.nextInt() - 1;
int c = sc.nextInt() - 1;


Проверяем корректность хода:
    if (r < 0 || r > 2 || c < 0 || c > 2 || b[r][c] != ' ') {
System.out.println("Некорректный ход!");
continue;
}


Делаем ход и проверяем состояние игры:
    b[r][c] = player;

if (win(player)) {
print();
System.out.println("Победил " + player + "!");
break;
}

if (draw()) {
print();
System.out.println("Ничья!");
break;
}


Меняем игрока:
    player = (player == 'X') ? 'O' : 'X';
}
sc.close();


В итоге получаем полноценную игру: ходы, проверка ошибок, победа и ничья всё работает как на бумаге.

👉 Java Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
👍125🔥5
This media is not supported in your browser
VIEW IN TELEGRAM
☕️ Baeldung — крутейший ресурс для изучения Java!

Это образовательный портал с понятными объяснениями. Здесь разобраны: синтаксис, коллекции, потоки, IO, а также полноценные гайды по Spring, Spring Boot и REST-разработке. Статьи короткие, с примерами, каждая тема разбивается на отдельные блоки.

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

👉 Java Ready | #сайт
Please open Telegram to view this post
VIEW IN TELEGRAM
👍138🔥7
👩‍💻 Locale — основа локализации и корректного отображения данных!

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

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


👉 Java Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍5🔥5🤝1
📂 Напоминалка по жизненному циклу запроса в Spring Boot!

Например, любой HTTP-запрос сначала попадает в центральный обработчик, затем система находит нужный контроллер и пропускает запрос через цепочку перехватчиков.

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

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

👉 Java Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍9🔥5
Игра “Угадай число”

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

Генерируем случайное число:
int target = (int) (Math.random() * 100) + 1;


Считываем число от игрока:
System.out.print("Ваш вариант: ");
int guess = sc.nextInt();


Основной игровой цикл:
while (guess != target) {


Если число меньше:
if (guess < target) {
System.out.println("Больше ↑");
}


Если число больше:
else {
System.out.println("Меньше ↓");
}


Запрашиваем новую попытку:
guess = sc.nextInt();
}


Победа:
System.out.println("Угадал! 🎉");


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

👉 Java Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍6🔥4
This media is not supported in your browser
VIEW IN TELEGRAM
🐱 Useful Java Links — огромная база библиотек и инструментов Java!

Это подборка всего, что используется в Java-разработке: фреймворки, библиотеки, инструменты, базы данных, networking, тестирование и многое другое. Cтруктурированный каталог, где можно быстро найти нужную технологию под любую задачу. Материалы разбиты по категориям: backend-разработка, работа с БД, интеграции, безопасность и даже машинное обучение.

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


👉 Java Ready | #репозиторий
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍9🔥7
Валидатор JSON — проверяем, корректный ли JSON!

Иногда приходит JSON от пользователя или API, и он может быть сломан. Важно уметь проверить его корректность до обработки.
Сделаем простой валидатор: пытаемся распарсить и ловим ошибку.

Добавляем зависимость Jackson:
implementation "com.fasterxml.jackson.core:jackson-databind:2.17.1"


Создаём объект для парсинга JSON:
var mapper = new com.fasterxml.jackson.databind.ObjectMapper();


Пишем функцию проверки JSON:
boolean isValid(String json) {
try {
mapper.readTree(json);
return true;
} catch (Exception e) {
return false;
}
}


Проверяем разные строки:
System.out.println(isValid("{\"name\":\"Alice\"}")); // true
System.out.println(isValid("{name: Alice}")); // false


Можно вывести сообщение об ошибке:
try {
mapper.readTree("{name: Alice}");
} catch (Exception e) {
System.out.println("Ошибка JSON: " + e.getMessage());
}


Теперь ты можешь проверять JSON перед обработкой и не ловить краши. Полезно для API, конфигов и пользовательского ввода.

👉 Java Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥54
This media is not supported in your browser
VIEW IN TELEGRAM
📂 Напоминалка по парадигмам программирования!

Например, Imperative Programming описывает программу как последовательность шагов, которые изменяют состояние, а Object-Oriented Programming строит код вокруг объектов и классов.

На картинке — 4 важные парадигмы программирования, которые используются в современных языках.

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

👉 Java Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
9🔥8👍6🤝1
👩‍💻 Потоки (Stream API) — это необходимость в современном Java-коде!

Хочешь фильтрацию, преобразование, группировку и сортировку за одну строчку?
Используй .stream(), .filter(), .map(), .collect() и другие мощные методы о которых мы рассказали в карточках.


👉 Java Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍84🤝1
OCR в Java через Tesseract!

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

Пример кода:
import net.sourceforge.tess4j.Tesseract;
Tesseract t = new Tesseract();

t.setDatapath("tessdata");
// папка с .traineddata

t.setLanguage("eng");
// язык модели

String text = t.doOCR(new
java.io.File("image.png"));
// входное изображение

System.out.println(text);
// вывод результата


🔥 Работает для сканов, чеков, экранок; при низком качестве помогает предобработка (ч/б, контраст, кроп по зоне текста).

👉 Java Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥104👍4
This media is not supported in your browser
VIEW IN TELEGRAM
✍️ Java 1000 — база из 1000+ задач и вопросов по Java!

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

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


👉 Java Ready | #репозиторий
Please open Telegram to view this post
VIEW IN TELEGRAM
13👍7🔥7
JavaEE — это база, но достаточно ли её в 2026-м?
Автор канала Go после Java: Записки Тимлида, архитектор с 18-летним стажем (из них 10 лет — лид 3-х команд в Госсекторе и Страховании), опубликовал свой квартальный отчет.
Это не просто текст, а разбор того, как выжить в энтерпрайзе сегодня:
🔹 Зачем джависту Go? Как он внедрил Go-task в реальный проект и почему системный программист теперь защищает это решение на аттестации.
🔹 AI-симбиоз: Как сократить время на системный анализ и декомпозицию легаси на 30% (тихие фишки архитектора).
🔹 Лаборатория: Зачем писать бота-секретаря на Go, если под рукой есть JVM.
«Я не призываю бросать Java. Я показываю, как построить гибридную экосистему, которая работает как часы».
Читай полный отчет здесь:
👉 https://t.me/java_go_way?erid=2W5zFHJ1uMT
2