False sharing возникает, когда
Несмотря на отсутствие логической связи, процессор вынужден постоянно инвалидировать кэш, создавая задержки.
Последствия:
Как избежать:
•
•
•
#concurrency
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍4🔥1
❌
Потому что StringBuilder — это String для продакшена, а String — только для учебы!
Основные причины:
#core
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6😁4🔥1
Напишите потокобезопасный кеш с TTL и размером 👇
📦 Задание
Реализуйте ExpiringCache<K, V> — thread-safe кеш с автоматическим удалением устаревших записей.
public class ExpiringCache<K, V> {
public void put(K key, V value, Duration ttl) { }
public Optional<V> get(K key) { }
public void remove(K key) { }
public int size() { }
}📋 Требования
1. Функциональность
put() — добавить элемент с TTL (time-to-live)
get() — получить элемент, вернуть Optional.empty() если истёк
remove() — удалить элемент
size() — количество валидных (не истёкших) элементов
2. Потокобезопасность
→ Все операции должны быть thread-safe
→ Минимизировать блокировки (не использовать synchronized на весь объект)
→ Одновременное чтение не должно блокироваться
— Производительность
→ get() должен быть O(1) в среднем случае
→ Автоматическая очистка истёкших записей (passive + active eviction)
→ Не создавать отдельный поток для каждого элемента
3. Ограничения
→ Максимальный размер кеша — 1000 элементов
→ При превышении удалять самые старые записи (LRU)
→ Graceful shutdown при закрытии кеша
Бонус: Добавить метрики (cache hits/misses)
Ставьте → 🔥, если нравится формат. Если нет → 🤔
#practise
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍2❤1
Добавили немного юмора к постам. Мнение:
😁 — Забавно, пусть будет
👍🏼 — Нейтрально
🤔 — Неудобно, только отвлекает от сути
Please open Telegram to view this post
VIEW IN TELEGRAM
😁25🤔9👍7
Spring — это не вся Java
На собеседованиях любят гонять по «кишкам» языка, конкурентности и алгоритмам. Если ты знаешь только фреймворк, шаг влево-вправо грозит провалом.
Новогодняя акция 1 + 2:
Покупаешь один курс, получаешь три. Оплачивается только позиция с максимальным чеком.
Java-набор:
— Алгоритмы и структуры данных (база Enterprise);
— Архитектуры и шаблоны проектирования.
Подготовиться к офферу
Актуально до 31 декабря.
Нужен совет? @manager_proglib
На собеседованиях любят гонять по «кишкам» языка, конкурентности и алгоритмам. Если ты знаешь только фреймворк, шаг влево-вправо грозит провалом.
Новогодняя акция 1 + 2:
Покупаешь один курс, получаешь три. Оплачивается только позиция с максимальным чеком.
Java-набор:
— Алгоритмы и структуры данных (база Enterprise);
— Архитектуры и шаблоны проектирования.
Подготовиться к офферу
Актуально до 31 декабря.
Нужен совет? @manager_proglib
HashMap нужна исключительно для того, чтобы было что спросить на собеседовании. Без неё интервьюеры бы не знали, как отсеивать кандидатов.
HashMap — это реализация структуры данных
Основные сценарии использования:
#core
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8😁3🔥1🥱1
Потому что LocalDateTime — это местное время, а в распределенных системах все серверы находятся в разных городах! Если один сервер в Москве показывает 15:00, а другой в Владивостоке — 22:00, то база данных не знает, как решить противоречия.
LocalDateTime
#core
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤1🔥1🤔1
Fail-fast итераторы — это те, которые быстро падают при первой же ошибке, потому что написаны на скорострельном C++. А fail-safe итераторы работают медленно, зато безопасно, потому что каждый элемент проверяется антивирусом перед возвратом.
🔹 Fail-fast итераторы:
→
→
→
→
🔹 Fail-safe итераторы:
→
→
→
→
#core
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥3😁2