Технически
▪️ Проблемы
—
—
—
#core
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12⚡2🔥2
Type Erasure — это механизм
List<String> strings = new ArrayList<>();
List<Integer> integers = new ArrayList<>();
// В runtime оба имеют тип List
strings.getClass() == integers.getClass(); // true
🔹 Последствия:
—
—
—
#core
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥4👏2
@Qualifier используется для
Без @Qualifier Spring не знает,
@Bean
@Qualifier("primary")
public DataSource primaryDB() { ... }
@Bean
@Qualifier("secondary")
public DataSource secondaryDB() { ... }
@Autowired
@Qualifier("primary")
private DataSource dataSource;
Альтернатива — использовать
#spring
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥4👏2
Ваш текущий грейд:
🔥 — Senior
👍🏼 — Middle
❤️ — Junior
😁 — Ещё учусь
Please open Telegram to view this post
VIEW IN TELEGRAM
👍43❤34😁32🔥28🌚1
readOnly = true — это
Что происходит:
—
—
—
Важно: это
#spring
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥2❤1👏1
WeakReference — это
Если на объект есть только weak references, GC может
WeakReference<Data> weak = new WeakReference<>(data);
data = null;
// GC может удалить объект
Data retrieved = weak.get(); // может вернуть null
Используется в
#jvm
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥2👏2❤1
Propagation определяет, как транзакция
Основные типы
— REQUIRED (default):
— REQUIRES_NEW:
— MANDATORY:
— NEVER:
— SUPPORTS:
#spring
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥1👏1
Double.NaN == Double.NaN возвращает
NaN (Not a Number) представляет недопустимый или неопределённый результат вычислений. По определению,
#core
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥3🤔1
Lambda — это
Синтаксис:
Под капотом компилятор создаёт
#core
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15👏2🔥1
Selector позволяет
Selector selector = Selector.open();
channel.register(selector, SelectionKey.OP_READ);
while (true) {
selector.select(); // блокируется до события
Set<SelectionKey> keys = selector.selectedKeys();
for (SelectionKey key : keys) {
if (key.isReadable()) {
// обработка чтения
}
}
}
Один поток может
#core
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥3👏1
Задача из реального интервью в Google 👇
📦 Задание
Вы аналитик Google Ads. Нужно найти все объявления, которые:
— Имеют статус 'active'
— Показов больше 500,000
— Обновлены в 2024 году
Таблица google_ads на картинке. Напишите SQL-запрос для фильтрации.
Ставьте → 🔥, если нравится формат. Если нет → 🤔
#practise
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥19👍2👏1
Какие вопросы публиковать больше?
👍🏼 — Классика с собесов, чтобы точно набить руку на ближайший
🤔 — Вопросы, которые не встречаются в каждой статье вида "N вопросов для собеса"
🔥 — Больше практики, а то одна теория
Please open Telegram to view this post
VIEW IN TELEGRAM
👍44🤔22🔥11
@RestController — это
Без @RestController пришлось бы
#spring
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤1🔥1👏1
@Autowired — это аннотация Spring Framework для автоматического внедрения зависимостей. Она может применяться к конструкторам, сеттерам, полям и методам.
Начиная с Spring 4.3, если у класса один конструктор, @Autowired можно
Порядок разрешения зависимостей:
#spring
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤1🔥1👏1
@Cacheable
Требует
#spring
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥2👏1
Autoboxing —
Unboxing —
Удобно, но есть подводные камни
—
—
—
#core
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤1🔥1👏1
Fail-Safe итератор работает с к
Примеры:
Особенности:
—
—
—
#core
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🤔3🔥1
Напишите production-ready Spring компонент 👇
📦 Задание
Реализуйте кастомную аннотацию @RateLimit, которая ограничивает количество вызовов метода с использованием Spring AOP.
🔹 Требования
— Использовать Spring AOP
— Потокобезопасность
— Кэш лимитов
— Учитывать имя метода + параметры
— Custom exception при превышении
Ставьте → 🔥, если нравится формат. Если нет → 🤔
#practise
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16👏2❤1👍1
Actuator предоставляет production-ready функции для
Эндпоинты:
→
→
→
→
Можно создавать кастомные эндпоинты. Важно: закрывайте чувствительные эндпоинты в production через Spring Security.
#spring
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10👏2❤1🔥1
Spring Data JPA — это
Вместо написания DAO вручную, создаёте интерфейс, и Spring генерирует реализацию.
Поддерживает:
—
—
—
—
#spring
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12👏2❤🔥1❤1🔥1
Unit-тесты проверяют
Интеграционные тесты проверяют
#tests
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥1👏1