Media is too big
VIEW IN TELEGRAM
Собеседование Java Spring - Разбор вопросов с собеседований на Java Developer
Собрали самые интересные вопросы с собеседований на Java-разработчика. В видео две части. В первой рассказываем про Java: Коллекции, Hash Code & Equals Contract, Functional interfaces, Stream API, Garbage collector, устройство памяти, heap, concurrency.
Во второй — про Spring: Spring Beans, Spring Data Repository, Аннотации, Programmatic TM, Spring MVC
источник
👉👆
Собрали самые интересные вопросы с собеседований на Java-разработчика. В видео две части. В первой рассказываем про Java: Коллекции, Hash Code & Equals Contract, Functional interfaces, Stream API, Garbage collector, устройство памяти, heap, concurrency.
Во второй — про Spring: Spring Beans, Spring Data Repository, Аннотации, Programmatic TM, Spring MVC
источник
👉👆
This media is not supported in your browser
VIEW IN TELEGRAM
Джун после прочтения документации
Содержит множество проектов на Java, которые могут быть полезны при изучении языка
https://github.com/topics/java
👉👆
https://github.com/topics/java
👉👆
GitHub
GitHub is where people build software. More than 150 million people use GitHub to discover, fork, and contribute to over 420 million projects.
Типы кэшей
Если спросить разработчика, что такое кэш, он скорее всего ответит:
— Кэш — хранилище типа ключ-значение. Позволяет снизить количество запросов к БД, другому сервису или не выполнять повторно сложные вычисления
Это, безусловно, правда, но не вся. В этом посте кратко опишу, что ещё умеют делать кэши и какие они бывают.
1️⃣ Кэш внутри сервиса
Хранится только в оперативной памяти. При выключении сервиса кэш пропадает. При включении — заполняется. Популярны два варианта:
🔸 ConcurrentHashMap: полностью ручное управление. Разработчик пишет код по наполнению кэша, обновлению и удалению значений
🔸 Google Guava Cache: более продвинутый вариант. Очищает кэш, уведомляет об удалении, предоставляет статистику
2️⃣ Удалённый кэш
Не связан с конкретным сервисом и запущен в отдельном процессе
✅ Доступен для нескольких сервисов
✅ Хранит данные на нескольких уровнях — в оперативной памяти и на диске
3️⃣ Распределённый кэш
Данные хранятся в нескольких процессах. Один экземпляр обычно называют нодой
✅ Шардирование. Распределяем данные по разным нодам и в итоге храним больше данных
✅ Репликация. Дублируем данные на разные ноды и повышаем доступность
Уровни 2-3 это скорее ступени эволюции кэшей. Большинство реализаций находятся на уровне 4:
4️⃣ In-memory data grid (IMDG)
Распределённый кэш с дополнительными фичами. Например:
▫️ Атомарный апдейт (вместо чтения и перезаписи)
▫️ Подписка на изменения в кэше
▫️ Поддержка транзакций
▫️ SQL-like запросы
▫️ Средства синхронизации (распределённый lock, очередь)
▫️ Продвинутый мониторинг
▫️ Выполнение скриптов
У многих кэшей есть платная и бесплатная версии. Многие фичи из списка выше доступны только платно.
В вакансиях чаще всего встречается Redis, чуть отстаёт Hazelcast. Также видела в проектах Memcached, Ehcache, Aerospike, Ignite/GridGain, Coherence. В их описании нет слова "кэш", как минимум distributed real-time in-memory streaming data platform🙂
Рекомендую погулять по документации того же Redis или Hazelcast, может для вашего проекта найдётся что-то полезное.
Если спросить разработчика, что такое кэш, он скорее всего ответит:
— Кэш — хранилище типа ключ-значение. Позволяет снизить количество запросов к БД, другому сервису или не выполнять повторно сложные вычисления
Это, безусловно, правда, но не вся. В этом посте кратко опишу, что ещё умеют делать кэши и какие они бывают.
1️⃣ Кэш внутри сервиса
Хранится только в оперативной памяти. При выключении сервиса кэш пропадает. При включении — заполняется. Популярны два варианта:
🔸 ConcurrentHashMap: полностью ручное управление. Разработчик пишет код по наполнению кэша, обновлению и удалению значений
🔸 Google Guava Cache: более продвинутый вариант. Очищает кэш, уведомляет об удалении, предоставляет статистику
2️⃣ Удалённый кэш
Не связан с конкретным сервисом и запущен в отдельном процессе
✅ Доступен для нескольких сервисов
✅ Хранит данные на нескольких уровнях — в оперативной памяти и на диске
3️⃣ Распределённый кэш
Данные хранятся в нескольких процессах. Один экземпляр обычно называют нодой
✅ Шардирование. Распределяем данные по разным нодам и в итоге храним больше данных
✅ Репликация. Дублируем данные на разные ноды и повышаем доступность
Уровни 2-3 это скорее ступени эволюции кэшей. Большинство реализаций находятся на уровне 4:
4️⃣ In-memory data grid (IMDG)
Распределённый кэш с дополнительными фичами. Например:
▫️ Атомарный апдейт (вместо чтения и перезаписи)
▫️ Подписка на изменения в кэше
▫️ Поддержка транзакций
▫️ SQL-like запросы
▫️ Средства синхронизации (распределённый lock, очередь)
▫️ Продвинутый мониторинг
▫️ Выполнение скриптов
У многих кэшей есть платная и бесплатная версии. Многие фичи из списка выше доступны только платно.
В вакансиях чаще всего встречается Redis, чуть отстаёт Hazelcast. Также видела в проектах Memcached, Ehcache, Aerospike, Ignite/GridGain, Coherence. В их описании нет слова "кэш", как минимум distributed real-time in-memory streaming data platform🙂
Рекомендую погулять по документации того же Redis или Hazelcast, может для вашего проекта найдётся что-то полезное.
Media is too big
VIEW IN TELEGRAM
Java. Распараллеливаем вычисления на пуле потоков
Разбираемся, как можно по простому ускорить вычисления с помощью параллельного выполнения на пуле потоков.
Исходный код
источник
👉👆
Разбираемся, как можно по простому ускорить вычисления с помощью параллельного выполнения на пуле потоков.
Исходный код
источник
👉👆
Привет! На связи Podlodka Crew — организатор IT-конференций, родившихся из известного подкаста!
Что важно уметь для построения микросервисной архитектуры? Профайлить, держать код в порядке, придерживаться принципов DDD и SOLID, создавать грамотный API и не использовать антипаттернов.
Это и многое другое разберём во втором сезоне Podlodka Java Crew, который стартует 20 марта.
Вместе с экспертами из Yandex Cloud, Tinkoff, Точка, Альфа-банк, СберМаркет, Qiwi, Huawei и других компаний:
*️⃣ Узнаем, возможно ли построить чистую архитектуру и добиться порядка в коде, не построив распределённый монолит вместо микросервисной архитектуры;
*️⃣ Поучаствуем в круглом столе по монолитам, микросервисам, гибридной архитектуре;
*️⃣ Научимся проектировать микросервисную архитектуру, разберёмся, что такое eventual consistency и как сделать грамотный API;
*️⃣ Обсудим 10 популярных антипаттернов и узнаем, как их исправить.
Это не все темы: расписание уже на сайте: https://podlodka.io/javacrew! Поспеши забрать свой билет 😉
Что важно уметь для построения микросервисной архитектуры? Профайлить, держать код в порядке, придерживаться принципов DDD и SOLID, создавать грамотный API и не использовать антипаттернов.
Это и многое другое разберём во втором сезоне Podlodka Java Crew, который стартует 20 марта.
Вместе с экспертами из Yandex Cloud, Tinkoff, Точка, Альфа-банк, СберМаркет, Qiwi, Huawei и других компаний:
*️⃣ Узнаем, возможно ли построить чистую архитектуру и добиться порядка в коде, не построив распределённый монолит вместо микросервисной архитектуры;
*️⃣ Поучаствуем в круглом столе по монолитам, микросервисам, гибридной архитектуре;
*️⃣ Научимся проектировать микросервисную архитектуру, разберёмся, что такое eventual consistency и как сделать грамотный API;
*️⃣ Обсудим 10 популярных антипаттернов и узнаем, как их исправить.
Это не все темы: расписание уже на сайте: https://podlodka.io/javacrew! Поспеши забрать свой билет 😉