Разработчик

Java

14 464 вопроса · 265 задач

14 464 вопроса

ВопросSeniorUmbrella IT

Есть два файла, каждый содержит целочисленные значения построчно. Какими алгоритмами можно найти пересечение этих двух множеств?

26 просмотров
ВопросSeniorМТС

Как бы вы реализовали свой IoC-контейнер? Как устроен ApplicationContext?

26 просмотров
ВопросSeniorМТС

Опишите алгоритм добавления элемента в HashMap

26 просмотров
ВопросSeniorЯндекс

Напишите тесты к системе фильтрации уведомлений с использованием JUnit 5 и Mockito, покрывающие основные сценарии: null/пустой ввод, валидное уведомление, блокировка отправителя, фильтрация по каналу, дедупликация.

26 просмотров
ВопросSeniorАльфа-Банк

Какие плюсы дают неизменяемые объекты?

26 просмотров
ВопросSeniorАльфа-Банк

Какой уровень изоляции использовали в вашем проекте?

26 просмотров
ВопросSeniorOcto

Что такое volatile?

26 просмотров
ВопросSeniorOcto

Как связать сервисы из двух разных docker-compose файлов?

26 просмотров
ВопросSeniorIT One

Какие бывают виды JOIN?

26 просмотров
ВопросSeniorIT One

public class Accumulator { private Map<String, Object> data = new HashMap<>(); // текущий набор данных private List<Map<String, Object>> dataList = new ArrayList<>(); // пачка с данными private Map<Instant, String> responses = new HashMap<>(); // ответы сервера, принимающего данные private int dataId; /** * Добавляет поле field со значением value в набор */ public void add(String field, String value) { data.put(field, value); } /** * Возвращает значение по названию поля field */ public <T> T get(String field) { return (T) data.get(field); } /** * Возвращает ответы сервера принимающего данные */ public String getResponses() { String out = ""; for (String resp : responses.values()) { out += "; " + resp; } return out; } /** * Завершает сборку текущего набора данных и отправляет его в пачку */ public synchronized void push() { dataList.add(data); if (dataList.size() == 100) { send(); dataList.clear(); } data = new HashMap<>(); data.put("id", dataId++); } /** * Отправляет пачку на сервер принимающий данные */ private void send() { RestTemplate restTemplate = new RestTemplate(); HttpEntity<List<Map<String, Object>>> request = new HttpEntity<>(dataList); String url = "localhost:20808/msg/incoming"; ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.GET, request, String.class); responses.put(Instant.now(), response.getBody()); } }

26 просмотров
ВопросSeniorIT One

Что такое утечка памяти (Memory Leak)?

26 просмотров
ВопросSeniorIT One

В чем разница между WHERE и HAVING?

26 просмотров
ВопросSeniorСеверсталь

Опишите, как вы реализовывали мониторинг и трассировку (observability) для распределённых backend-сервисов, и какие инструменты считаете наиболее эффективными для обнаружения и устранения проблем в продакшн-среде?

26 просмотров
ВопросSeniorОТП Банк

Реализовать перевод средств между двумя счетами. Учитываем, что это production решение Входные параметры: @param fromAccountId уникальный идентификатор пользователя который переводит средства @param toAccountId уникальный идентификатор пользователя кому переводят средства @param amount сумма перевода. Положительное число public void transferMoney(Long fromAccountId, Long toAccountId, BigDecimal amount) { if (amount.compareTo(BigDecimal.ZERO) <= 0) { throw new RuntimeException("Amount must be > 0"); } if (fromAccountId.equals(toAccountId)) { throw new RuntimeException("Account can't be the same"); } Long firstId = Math.min(fromAccountId, toAccountId); Long secondId = Math.max(fromAccountId, toAccountId); Account first = accountRepository.findByIdForUpdate(firstId) .orElseThrow(() -> new RuntimeException("Account not found")); Account second = accountRepository.findByIdForUpdate(secondId) .orElseThrow(() -> new RuntimeException("Account not found")); Account from = fromAccountId.equals(firstId) ? first : second; Account to = fromAccountId.equals(firstId) ? second : first; if (from.getBalance().compareTo(amount) < 0) { throw new RuntimeException("Balance is Less 0"); } from.setBalance(from.getBalance().subtract(amount)); to.setBalance(from.getBalance().add(amount)); accountRepository.save(to); accountRepository.save(from); }

26 просмотров
ВопросSeniorСБЕР

В резюме написано, что ты оптимизировал Garbage Collector, делал JVM tuning — что именно делал?

26 просмотров
ВопросSeniorСБЕР

Что такое LLM, как она работает? Как повлиять на вариативность ответов?

26 просмотров
ВопросSeniorСБЕР

-- Есть таблицы со структурой Employee id (PK) name salary dep_id(FK department.id) Department id (PK) name -- написать запрос, который вернет список наименований всех отделов с максимальной зарплатой в каждом отделе select d.name, COALESCE(MAX(e.salary), 0) from Department d left join Employee e on e.dep_id = d.id group by d.name

26 просмотров
ВопросSeniorСБЕР

-- Есть таблицы со структурой Employee id (PK) name salary dep_id(FK department.id) Department id (PK) name -- написать запрос, который вернет список наименований всех отделов с максимальной зарплатой в каждом отделе select d.name, MAX(e.salary) from Employee e join Department d on e.dep_id = d.id group by d.name

26 просмотров
ВопросSenior01.tech

Сколько паттернов/правил было в системе рекомендаций — единицы, десятки, сотни?

26 просмотров
ВопросSenior01.tech

Есть база данных с большим количеством данных, растёт число потребителей и объём данных — какие решения предложите?

26 просмотров