12 Aug 2026, 12:10 UTC378 views11 reactionsread 12 August 2026 Делаем простой TTL-кэш на Java!
Иногда значение нужно хранить не навсегда, а только короткое время: ответ API, результат вычисления или временную настройку.
Опишем запись кэша:
record Entry<T>(T value, long expiresAt) {}
Создадим хранилище:
Map<String, Entry<String>> cache = new HashMap<>();
Добавим значение с временем жизни:
void put(String key, String value, long ttlMs) {
cache.put(key, new Entry<>(
…
❤4👍3🔥3👎1
12 Aug 2026, 10:10 UTC512 views8 reactionsread 12 August 2026 Photo
Требуются парни и девушки в возрасте 19–40 лет, желающие работать в сфере IT.
Опыт в программировании не нужен.
Завтра запускаем бесплатный онлайн-интенсив по Frontend-разработке, где будем показывать, как разрабатывать сайты и веб-приложения используя ИИ.
За 7 дней обучения без опыта ты:
1. Сделаешь реальный сайт сервиса доставки с нуля;
2. Добавишь JavaScript-логику, расчёты и трекинг;
3. Подключишь карты и мар…
👎8
12 Aug 2026, 08:12 UTC578 views6 reactionsread 12 August 2026 Photo
Делаем простой rate limiter на Java!
Иногда нужно ограничить частоту действий: отправку кода подтверждения, вызов команды, обращение к endpoint или повторную отправку формы. Для базового варианта можно использовать очередь с временем последних успешных вызовов.
В этой задаче:
• храним timestamps действий;
• удаляем устаревшие записи;
• проверяем размер окна;
Такой вариант хорошо подходит для понимания идеи sliding…
❤3👍2🔥1
11 Aug 2026, 08:12 UTC934 views17 reactionsread 12 August 2026 Video
Dev.java — ресурс по современной Java!
На сайте собраны материалы от Java-команды: Getting Started, основы языка, Collections Framework, Stream API, Virtual Threads, JShell, инструменты сборки, IDE, новые возможности платформы и отдельные разделы для более глубокого изучения. Хорошо подходит не только новичкам, но и тем, кто хочет освежить современную Java без случайных устаревших примеров.
Оставляю ссылочку: dev.…
👍7❤5🔥5
10 Aug 2026, 08:12 UTC≈1,160 views8 reactionsread 12 August 2026 Photo
Отличная статья про создание собственного Spring Boot 3 starter’а на Java!
В этой статье:
• Как starter превращается в отдельный переиспользуемый блок конфигурации
• Как добавить автоконфигурацию, default-настройки и EnvironmentPostProcessor
• Как собрать стартер и подключить его к обычному Spring Boot-приложению
Продолжай читать на Habr!
👉 Java Ready | #статья
❤4👍2🔥2
7 Aug 2026, 08:12 UTC≈1,430 views13 reactionsread 12 August 2026 Photo
Photo, posted without a caption
❤7👍4🔥2
6 Aug 2026, 08:12 UTC≈1,410 views10 reactionsread 12 August 2026 Photo
Делаем дедупликацию событий на Java!
Если webhook, очередь или внешний сервис повторно присылает одно и то же событие, бизнес-логика не должна выполняться дважды. Соберём простой обработчик, который запоминает eventId и пропускает дубли.
В этой задаче:
• Храним обработанные id в Set;
• Используем add() как проверку на повтор;
• Выполняем действие только для новых событий.
Такой подход помогает избежать повторных с…
❤5👍3🔥2
5 Aug 2026, 17:00 UTC≈1,050 views9 reactionsread 12 August 2026 Photo
Как сортировать в Java, если в данных бывают null?
Обычная сортировка по полю выглядит просто:
users.sort(Comparator.comparing(User::name));
Но если name() у какого-то пользователя вернёт null, сортировка может упасть с NullPointerException.
Например:
record User(String name) {}
var users = new ArrayList<>(List.of(
new User("Bob"),
new User(null),
new User("Ann")
));
Для таких случаев в C…
❤5👍2🔥2
5 Aug 2026, 08:12 UTC895 views13 reactionsread 12 August 2026 Video
Java Code Geeks — огромная база туториалов и примеров по Java!
На сайте собраны материалы по Core Java, Java 8/9, concurrency, NIO, logging, design patterns, exceptions, JUnit, Mockito, Spring Boot, Spring MVC, Spring Security, Hibernate, JPA, JDBC, JavaFX и другим темам. Это не одностраничный справочник, а большая база статей и практических примеров: можно листать разделы, открывать конкретные технологии и быстро н…
❤5👍4🔥4
4 Aug 2026, 12:12 UTC861 views11 reactionsread 12 August 2026 Делаем простой retry для нестабильной операции в Java!
В реальных приложениях операции иногда падают временно: сеть моргнула, сервис ответил 503, база не успела принять соединение. В таких случаях полезно повторить действие несколько раз, а не сразу завершать сценарий ошибкой.
Опишем функциональный интерфейс для операции:
@FunctionalInterface
interface ThrowingSupplier<T> {
T get() throws Exception;
}
Теперь з…
❤6👍3🔥2
4 Aug 2026, 07:12 UTC963 views15 reactionsread 12 August 2026 Photo
Шпаргалка по Spring-аннотациям в Java!
Например, @RestController объединяет контроллер и @ResponseBody, а @Autowired связывает зависимости внутри Spring-компонента.
На картинке основные Spring Boot, Web и Framework-аннотации: @SpringBootApplication, @Controller, @RequestMapping, @PathVariable, @Configuration, @ComponentScan, @Service, @Bean, @Primary, @Profile и другие.
Сохрани, чтобы не потерять!
👉 Java Ready |…
❤6🔥5👍4
3 Aug 2026, 16:00 UTC≈1,030 views15 reactionsread 12 August 2026 Photo
Почему Stream.toList() может сломать старый код?
В Java часто собирают stream в список:
List<String> names = users.stream()
.map(User::name)
.toList();
Выглядит почти так же, как старый вариант через Collectors:
List<String> names = users.stream()
.map(User::name)
.collect(Collectors.toList());
Но есть важное отличие.
Stream.toList() возвращает неизменяемый список:
List<String> nam…
❤8👍4🔥3
Showing the 12 most recent of 17 posts we hold for @java_ready. View and reaction counts are the latest single reading for each post, not a live figure, and a recent post is still accumulating both. A view count marked ≈ was rounded by Telegram before we ever saw it — t.me prints views in full below 1,000 and to three significant figures above, so ≈1,200,000 means somewhere between 1,150,000 and 1,249,999. Unmarked counts are exact. Text is reproduced from the public post preview and truncated for length.