Java Developer
15.7K subscribers
1.94K photos
151 videos
8 files
2.22K links
Авторский канал действующего разработчика — интересные заметки, новые технологии, библиотеки и фреймворки

Сотрудничество: @bape_ads
Прайс: @bape_media

РКН: https://clck.ru/3GHfTK

Реклама на бирже: https://telega.in/c/java_tg
Download Telegram
Вопрос с собеседования

В чём разница между @Bean и @Component в Spring?

Ответ: @Bean используется в конфигурационных классах Spring. Он используется для непосредственного создания бина.

@Component используется со всеми классами, которыми должен управлять Spring. Когда Spring видит класс с @Component, Spring определяет этот класс как кандидата для создания bean.

tags: #собеседование

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
4🤣3
👩‍💻 100+ ресурсов по System Design

Репозиторий best-system-design-resources — это аккуратно собранная подборка ресурсов по системному дизайну: книги, статьи, видео, курсы и разборы архитектур.

Что внутри:
Основы: CAP-теорема, масштабирование, консистентность

Разбор ключевых компонентов: кэш, балансировка, шардирование, очереди

Примеры реальных систем: поисковики, видеохостинги, мессенджеры

Курсы и гайды: System Design Primer, Grokking, Gaurav Sen

Задачи и кейсы с интервью


Хорошая база, чтобы структурировать знания и увереннее разбираться в архитектуре крупных систем.

📱 Ссылка на GitHub

tags: #полезное

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍62
👩‍💻 Функциональные интерфейсы

Функциональный интерфейс — это интерфейс, который определяет только один абстрактный метод. Это позволяет передавать поведение как значение — например, в виде лямбды или ссылки на метод.

Рассмотрим простейший пример:
@FunctionalInterface
interface Greeting {
void say(String message);
}

Greeting g = msg -> System.out.println("Привет, " + msg);
g.say("мир!");

Аннотация @FunctionalInterface не обязательна, но рекомендуема — она защищает от случайного добавления лишнего абстрактного метода.


Интерфейс может содержать сколько угодно default- и static-методов и при этом оставаться функциональным, так как они не считаются абстрактными.

В Java предусмотрен набор стандартных функциональных интерфейсов — в пакете java.util.function. Вот наиболее часто используемые:
▶️ Predicate<T> — проверяет условие, возвращает true или false
▶️ Function<T, R> — преобразует один тип в другой
▶️ Consumer<T> — принимает значение, ничего не возвращает
▶️ Supplier<T> — возвращает значение, ничего не принимает
▶️ UnaryOperator<T> и BinaryOperator<T> — частные случаи Function, когда вход и выход одного типа


Пример использования Predicate:
Predicate<String> isLong = s -> s.length() > 5;
System.out.println(isLong.test("Java")); // false


Функциональные интерфейсы активно используются в Stream API, Optional, Comparator, CompletableFuture и других частях стандартной библиотеки. Это удобный способ описать поведение без лишнего кода.

— если было полезно

📱 Java Developer | #обучение
Please open Telegram to view this post
VIEW IN TELEGRAM
15
🖼️ Redis

Redis (Remote Dictionary Server) — это in-memory база данных, которая хранит данные в оперативной памяти. Благодаря этому она обеспечивает очень высокую производительность, особенно для операций чтения и записи.

Почему Redis?

Хранение данных в оперативной памяти
Redis хранит все данные в оперативной памяти (RAM), что делает операции чрезвычайно быстрыми. Операции чтения и записи происходят за миллисекунды, в отличие от традиционных баз данных, которые хранят данные на диске.


Разнообразие структур данных
Redis поддерживает не только строки, как большинство key-value хранилищ, но и сложные структуры данных:

— Строки (Strings)
— Списки (Lists)
— Множества (Sets)
— Отсортированные множества (Sorted Sets)
— Хэши (Hashes)
— Битовые операции (Bitmaps)
— Гео-данные (Geospatial data)
— Стек и очередь (с помощью списка)


Механизм постоянства данных
Хотя Redis хранит данные в оперативной памяти, он поддерживает два метода сохранения данных на диск для обеспечения постоянства: RDB (Redis Database Backup) — периодическое создание снапшотов данных, AOF (Append Only File) — запись всех операций в журнал, что позволяет восстанавливать состояние Redis при сбое.


Поддержка Pub/Sub
Redis предоставляет возможности для реализации системы обмена сообщениями в реальном времени с помощью механизма публикации/подписки (Pub/Sub). Это позволяет приложениям общаться друг с другом через каналы.


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


❗️Пример использования Redis
Представим, что у нас есть своя социальная сеть, в которой зарегистрирован Месси. Каждый день страничку Месси посещают сотни тысяч пользователей.

Что происходит в таком случае под капотом? Наше приложение постоянно запрашивает одни и те же данные (профиль Месси) из БД, например, MySQL, что занимает десятки миллисекунд. Это очень ресурсоемкий процесс, учитывая количество пользователей, посещающих страницу Месси.

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

Если данные найдены в Redis (cache hit), они возвращаются мгновенно (в пределах миллисекунды). Если данных нет (cache miss), запрос делается в основную БД, а результат сохраняется в Redis для будущих обращений.


Отправляй ⭐️, если было полезно

📱 Java Developer | #полезное
Please open Telegram to view this post
VIEW IN TELEGRAM
14👍2
Вопрос с собеседования

Что такое Redis и зачем он используется?

Ответ: Redis — это хранилище данных в оперативной памяти, предназначенное для быстрого доступа к информации. Он поддерживает разные структуры данных — строки, списки, множества, словари — и применяется там, где важна скорость: кэширование, хранение сессий, подсчёт событий, временные блокировки и очереди. Благодаря работе в памяти, Redis обеспечивает отклик за миллисекунды и часто используется в высоконагруженных системах и микросервисной архитектуре.

tags: #собеседование

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍1
This media is not supported in your browser
VIEW IN TELEGRAM
👩‍💻 Сборник идей для пет-проектов

Это культовый репозиторий с сотней пет-проектов для реализации: от простых CLI-инструментов до полноценных веб-приложений

Вместо теории — конкретные задачи, пошаговые туториалы и репозитории, которые помогают прокачивать навыки через практику.

Отличный ресурс, чтобы собрать портфолио — забираем тут.

tags: #полезное

📱 Java Developer | 📲 MAX
Please open Telegram to view this post
VIEW IN TELEGRAM
👍41🔥1
1🔥1
Что выведет код сверху?
Anonymous Quiz
17%
D
14%
CD
36%
DE
3%
CDE
31%
abcde
🔥7😁6
This media is not supported in your browser
VIEW IN TELEGRAM
👩‍💻 Шпаргалка по алгоритмам, деревьям и графам

AlgoTree платформа, которая помогает анализировать структуры данных: деревья, графы, обходы и другое.

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

tags: #полезное #алгоритмы

📱 Java Developer | 📲 MAX
Please open Telegram to view this post
VIEW IN TELEGRAM
5🔥2
👩‍💻 ExamPro — курсы и тренажёры по DevOps

На этом сайте собраны материалы по AWS, Kubernetes и Terraform, которые помогут прокачать практические навыки и глубже погрузиться в DevOps.

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

Ссылка на сайт

tags: #полезное

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4👍1
⚡️ GPT 5.4 теперь в Telegram!

А кроме неё ещё и Nano Banana 2, Gemini 3.1, Sora 2 и куча других новейших моделей.

Попробуй сам: @visionai
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Циклические зависимости в Spring: как находить и устранять

Если в вашем проекте внезапно Spring ругается на circular dependency, вы не одиноки — такие ошибки возникают даже в продуманных архитектурах.

В статье разобраны причины появления циклических зависимостей, показано, как их отследить с помощью Bean Navigation, и даны рабочие способы решения проблемы.

Читать статью

tags: #статья

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
👩‍💻 Нашли отличный онлайн-учебник по Java — внутри понятное руководство с примерами и разбором ключевых тем

Здесь собраны основы языка, типы данных, переменные, операторы, коллекции, строки, работа с датой и временем, обработка исключений и интерфейсы — всё объясняется просто и наглядно.

Ссылка на учебник

tags: #полезное

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍2
Вопрос с собеседования

Можно ли создать экземпляр абстрактного класса с помощью анонимного класса?

Ответ: Да. Хотя напрямую создать объект абстрактного класса нельзя, Java позволяет создать анонимный подкласс, реализовать в нём абстрактные методы и сразу же создать его экземпляр.

tags: #собеседование

📱 Java Developer  | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍21
⌨️ Как получить наиболее распространенный элемент в списке?

Здесь используется Java Stream API для подсчета наиболее часто встречающегося элемента в списке.

▶️ Сначала создается поток чисел. Затем метод groupingBy группирует элементы по их значению (Function.identity()). После группировки вызывается метод counting() для подсчета количества элементов в каждой группе;

▶️ entrySet() преобразует полученную мапу в набор записей (ключ-значение);

▶️ Затем записи сортируются по значению в порядке убывания с помощью max(Map.Entry.comparingByValue());

▶️ Наконец, если есть максимальное значение, оно выводится с помощью метода ifPresent(System.out::println).

tags: #обучение

📱 Java Developer  | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍2
👩‍💻 Основные паттерны микросервисной архитектуры

В статье рассматриваются популярные паттерны микросервисной архитектуры — Strangler Fig, API Gateway, Service Mesh, Sidecar, CQRS и другие.

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

Читать статью

tags:
#статья

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4
👩‍💻 Использование метода Files.walk() для обхода файловой системы

Метод Files.walk() позволяет рекурсивно обходить файловую систему, начиная с указанной директории.

Этот метод возвращает поток объектов типа Path, что позволяет удобно работать с файлами и папками. Его можно использовать для поиска, фильтрации или обработки файлов.

❤️ — если было полезно
💯 — если уже знал

📱 Java Developer | #обучение
Please open Telegram to view this post
VIEW IN TELEGRAM
15💯5👍2🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
👩‍💻 Огромная база по Java в одном репозитории

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

Удобно, что это не узкая подборка на одну тему, а именно большая база: можно и теорию подтянуть, и практические примеры посмотреть, и по смежным направлениям пройтись — включая Android и базовые ML-темы.

Ссылка на GitHub

tags:
#github #полезное

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥21
Media is too big
VIEW IN TELEGRAM
🎓 Onboarding в Veai - это Cursor для JetBrains IDE: как быстрее прокачаться с AI‑ассистентами и код‑агентами

Для быстрого погружения и возможности сразу начать работать запущен Onboarding — встроенная система коротких уроков, они помогают шаг за шагом освоить плагин прямо в вашей IDE.

☝️ Каждый урок — это небольшой сценарий по конкретной фиче Veai: вы учитесь прямо на реальных действиях, а не в абстрактных туториалах.
☝️ Список уроков будет регулярно пополняться — онбординг развивается вместе с продуктом и новыми возможностями Veai.
☝️ В настройках плагина можно управлять прогрессом: перепроходить отдельные уроки или сбрасывать все и начать заново.

📚 Подробнее со всеми изменениями можно ознакомиться в релизной статье.

Скачать новую версию | Все возможности Veai | Чат поддержки
На наших каналах
— разбор технических новинок и лайфхаков, не забывайте подписываться: ☝️RuTube 📱https://t.iss.one/veai_devs


#Veai #УправляемыйAI #AIразработка #SDLC #ИИкод #КачествоКода #AIгенерациякода #AIagents #ИИагент #LLM

Реклама.
О рекламодателе.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Это прекрасное чувство, когда твой код работает, но никто не понимает как

📱 Java Developer | #memes
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣13🔥2🤩1
JVM-инженеры, общий сбор: 28 марта Яндекс проведет Я.Субботник по JVM-языкам

Это митап для разработчиков, которые работают с языками Java Virtual Machine. Встреча пройдет в московском офисе Яндекса и в онлайн. Будем обсуждать новые подходы, делиться практическим опытом и нетворкать в неформальной обстановке.

В программе — доклады про ускорение Java-фреймворков на примере Quarkus, устройство трассирующего профайлера (Qubership Profiler), реальные подводные камни java.time и оптимизация GraphQL API на базе GraphQL Java и Spring Framework. А еще круглые столы, активность от Яндекс Вертикалей и афтерпати.

Подать заявку на митап можно здесь.
4