Какие типы индексов использовали? Были ли негативные издержки от индексов?
Java
// 3 public class Variables { public static void main(String[] args) { A a = new A(); a.val = 1; inc(a); System.out.println(a.val); set(a); System.out.println(a.val); } public static class A { public int val; } public static void inc(A a) { a.val++; } public static void set(A a) { a = new A(); a.val = 10; } }
Что дальше после первого тикета? Как строить дальнейшее развитие джуна?
Какое назначение аннотации @Transactional в контексте управления транзакциями?
ArrayList vs LinkedList при итерации по миллиону элементов — что быстрее?
Что такое DDD (Domain-Driven Design)? Как он связан с агрегатом и ограниченным контекстом?
Какая проблема возникает при вызове @Transactional метода из другого метода того же класса?
/** * Интерфейс для взаимодействия с аппаратной частью банкомата. */ interface Hardware { /** * Возвращает массив с количеством купюр по номиналам 50, 100, 500, 1000, 5000. * Метод работает медленно и создает шум. * * @return массив, где каждый элемент соответствует количеству купюр определенного номинала. * Например, [10, 20, 30, 40, 50] означает: * - 10 купюр номиналом 50 рублей * - 20 купюр номиналом 100 рублей * - 30 купюр номиналом 500 рублей * - 40 купюр номиналом 1000 рублей * - 50 купюр номиналом 5000 рублей */ int[] getBillsCounts(); /** * Загружает в бокс выдачи указанные купюры. * * @param billsCounts массив с количеством купюр по номиналам [50, 100, 500, 1000, 5000]. * Например, [0, 1, 0, 2, 0] означает: * - 0 купюр номиналом 50 рублей * - 1 купюру номиналом 100 рублей * - 0 купюр номиналом 500 рублей * - 2 купюры номиналом 1000 рублей * - 0 купюр номиналом 5000 рублей */ void giveBills(int[] billsCounts); } /** * Класс для реализации логики работы банкомата. * Тут нужно писать код */ class MyATM { /** * Аппаратная часть банкомата. */ Hardware hardware; public boolean withdraw(int amount) { int[] counts = hardware.getBillsCounts(); int[] nom = {50, 100, 500, 1000, 5000}; int[] toGive = new int[5]; for (int i = 4; i >= 0; i--) { int needed = amount / nom[i]; int use = Math.min(needed, counts[i]); toGive[i] = use; amount -= use * nom[i]; } if (amount != 0) { return false; } hardware.giveBills(toGive); return true; } }
Какие проблемы могут возникнуть при высокой нагрузке (десятки миллионов запросов)? Как масштабировать решение?
Почему Spring Boot стал так популярен по сравнению с Java EE?
Почему вы решили кэшировать клиента именно в Redis?
Реализовать свой перечислимый тип (enum), как если бы до появления современного enum в Java 1.5. Нужно реализовать контракт современного Java-enum: • можно легко получать любое значение енумa • безопасное сравнение значений по ссылке (==) • каждое значение имеет строковое имя, совпадающее с названием значения • каждое значение имеет целочисленный идентификатор `ordinal`, который содержит номер значения в порядке его объявления в энуме • можно получить список всех значений енумa • можно получить значение по его `ordinal` • можно получить значение по его имени Для примера можно взять список валют. Важно, чтобы список был потенциально расширяемым, потому что качество кода будет определять, насколько беспроблемно в будущем пройдет добавление значений в енум. class Currency { // TODO } --- Дана табличка user_orders |ts|user_id|order_value| Для каждого пользователя вернуть сумму первой покупки.
Что не хватает в схеме с Redis? Как решить проблему привязки order_id к courier_id?
В чём проблема того, что вы вызываете REST прямо из Kafka consumer?
Как по-другому реализовать роутинг без привязки к имени класса?
[имя] спросил: В Совкомбанке вы работали непосредственно в самом Совкомбанке?
В чём отличие аннотации @Bean от @Component?
Почему Java Stream API сделан ленивым? Плюсы и минусы такого подхода.
Можете подробнее рассказать о проекте, на котором работали? Что нравилось, что не нравилось?
Как ускорить этот SQL-запрос на большой таблице? Какой индекс добавить и поможет ли индекс только по status?