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

Автор: @energy_it

Реклама на бирже: https://telega.in/c/java_ready
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
🐱 Java Basics — хороший репозиторий для изучения основ Java!

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

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


👉 Java Ready | #репозиторий
Please open Telegram to view this post
VIEW IN TELEGRAM
11👍4🔥2
Почему Objects.requireNonNullElse() иногда лучше ручного if?

Когда значение может быть null, часто пишут так:
String name = user.name();

if (name == null) {
name = "Guest";
}


Код рабочий, но для простого fallback выглядит тяжеловато.

В Java можно записать короче:
String name = Objects.requireNonNullElse(
user.name(),
"Guest"
);


Если user.name() не null, вернётся оно.

Если там null, вернётся "Guest".

Есть ещё ленивый вариант:
String name = Objects.requireNonNullElseGet(
user.name(),
() -> loadDefaultName()
);


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

requireNonNullElse() это аккуратный способ задать fallback без лишнего if.

👉 Java Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
11👍4🔥3
Напоминалка по Spring REST-аннотациям!

Например, @RestController используют для REST API, @GetMapping и @PostMapping связывают методы с HTTP-запросами, а @RequestBody помогает получить JSON из тела запроса.

На картинке шпаргалка по аннотациям Spring REST: контроллеры, маршруты, параметры запроса, path variables, request body и response-логика.

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

👉 Java Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
👍85🔥3
Фильтруем ошибки из логов через Stream API!

Представим, что у нас есть список логов, и нужно быстро достать только сообщения с уровнем ERROR.

Создадим простую модель:
record LogEntry(String level, String message) {}
Подготовим данные:

List<LogEntry> logs = List.of(
new LogEntry("INFO", "User opened page"),
new LogEntry("ERROR", "Payment failed"),
new LogEntry("WARN", "Slow response"),
new LogEntry("ERROR", "Database timeout")
);


Можно пройтись обычным циклом:
List<String> result = new ArrayList<>();

for (LogEntry log : logs) {
if (log.level().equals("ERROR")) {
result.add(log.message());
}
}


Но через Stream API это читается компактнее:
List<String> result = logs.stream()
.filter(log -> log.level().equals("ERROR"))
.map(LogEntry::message)
.toList();


filter оставляет только ошибки.

map превращает объект лога в текст сообщения.

В результате получим:
[Payment failed, Database timeout]


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

👉 Java Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
👍83🔥3
📂 Шпаргалка для тех, кто изучает язык или хочет систематизировать знания!

Здесь собраны 20 основных направлений: от переменных, циклов и ООП до многопоточности, работы с БД, Spring Boot, JVM и современных возможностей Java.

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

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

👉 Java Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍3🔥2
Сидеть и работать в корпорации — страшно, жизнь-то мимо проходит. Уходить строить бизнес — страшно, а вдруг прогорит. Один из вариантов — разрабатывать свой пет-проект по вечерам. Многие успешные компании, например, Twitter, создавались именно так. Это не значит, что ваш проект обязательно заработает миллиарды, но заработать больше, чем в найме, и получить ценный опыт — вполне реально.

Перед началом разработки появляется множество вопросов, например:

• Как выбрать идею для пет-проекта?
• Что нужно знать про маркетинг
• Как запуститься и довести до первых продаж не имея бюджета на рекламу?

В телеграм-канале «Твой пет проект», Михаил Табунов делится своим опытом с разработчиками и менеджерами.

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

Подписывайтесь на «Твой пет проект», получайте пользу от практиков рынка!
https://t.me/+8Frwa03ciVlhNTky
Считаем частоту слов через Stream API!

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

Допустим, есть список слов:

List<String> words = List.of(
"java", "spring", "java", "api", "spring", "java"
);


Можно вручную создать Map и увеличивать счётчик:

Map<String, Long> result = new HashMap<>();

for (String word : words) {
result.put(word, result.getOrDefault(word, 0L) + 1);
}


Но через Stream API это можно записать короче:

Map<String, Long> result = words.stream()
.collect(Collectors.groupingBy(
Function.identity(),
Collectors.counting()
));


Function.identity() означает: группируем элементы по самому значению.

А Collectors.counting() считает, сколько элементов попало в каждую группу.

Результат будет таким:

{spring=2, java=3, api=1}


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

👉 Java Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍3🔥3
📂 Шпаргалка по операциям с массивами!

Выражение arr[i] используется для доступа к элементу массива по индексу. Запись arr[i] = value изменяет значение элемента по указанному индексу.

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

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

👉 Java Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥104👍2
Java-разработчики, устали возиться с email-доставкой?
Забудьте о проблемах с SMTP, спамом и «письмах в никуда».
С HaskiMail вы отправляете транзакционные письма быстро, надёжно и без лишнего кода.

Почему Java-команды выбирают HaskiMail:
✔️ Готовая официальная библиотека для Java - подключи за 2 минуты
✔️ Отправка письма всего в 3 строки кода
✔️ Высочайшая доставляемость даже без выделенного IP
✔️ Транзакционные и маркетинговые письма по разным каналам (никакого влияния на критические уведомления!)
✔️ Поддержка, которая понимает Java и отвечает по делу

Интегрируйтесь сегодня и сосредоточьтесь на продукте, а не на почтовых серверах.
👉 Попробовать бесплатно!
👎1
Почему isBlank() часто полезнее, чем isEmpty()?

В Java строки можно проверять по-разному.

Например, isEmpty() проверяет только длину строки:
"".isEmpty();      // true
" ".isEmpty(); // false


То есть строка из пробелов для isEmpty() уже не пустая.

А в пользовательском вводе такое встречается постоянно: имя, комментарий, email, заголовок, поле поиска.

Для таких случаев лучше подходит isBlank():
"".isBlank();      // true
" ".isBlank(); // true
"\n\t".isBlank(); // true


isBlank() считает строку пустой, если в ней нет видимых символов.

Поэтому проверка становится надёжнее:
if (name == null || name.isBlank()) {
name = "Guest";
}


Если проверяешь пользовательский текст, isBlank() часто безопаснее, чем isEmpty().

👉 Java Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍3🔥3
🔍 ТОП-5 ошибок на алгоритмической сессии

Привет, на связи Таня Коровкина из ШОРТКАТ. Ментор по алгоритмам и backend-разработчик

Каждый месяц тысячи разработчиков совершают одни и те же ошибки на алгоритмических интервью 🚩

И продолжают готовиться... не к тому.

6 июля(понедельник) в 19:00 (МСК) проведу вебинар и покажу, что на самом деле оценивает интервьюер и какие ошибки чаще всего приводят к отказу

• дам практические советы, которые можно использовать уже на следующем собеседовании
• расскажу про специфику российского BigTech

🤘 Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.

Переходи в нашего бота, чтобы получить ссылку на эфир →
@shortcut_sh_bot

Реклама.
О рекламодателе.
Please open Telegram to view this post
VIEW IN TELEGRAM
😎 Полезная статья про realtime push-уведомления на Java без WebSocket!

В этой статье:
• Чем SSE отличается от polling и WebSocket
• Как сделать подписку клиента через text/event-stream
• Зачем Redis нужен для хранения подписок пользователей


Продолжай читать на Habr!


👉 Java Ready | #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍3🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
Изоляция рунета произошла быстрее, чем ты думал

Loading

██████████████] 99%


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

Чтобы в одночасье не лишиться доступа к свободному Интернету, просто сохрани Only Hack.

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

Не жди момента «Х». Перестрахуйся подпиской.
👩‍💻 GraalVM Native Image — билдим Java в exe, который стартует за миллисекунды, ест в разы меньше памяти и не требует JVM на сервере!

Идеально для CLI, serverless и микросервисов.
Используй native-image, настраивай reflection-config.json и удивляйся, как твой код запускается быстрее Python-скрипта.


👉 Java Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥62👍2