Sobes.tech

Что такое effectively final в Java и где он используется?

Senior
Альфа-БанкАльфа-Банк
9

Вопрос 9. Написать запрос, который вернет сотрудников, обладающих максимальной зарплатой в своей должности. Перейти на onecompiler.com/postgresql Скрипт для инициализации: CREATE TABLE users ( fio TEXT NOT NULL, position TEXT, salary BIGINT NOT NULL ); INSERT INTO users(fio, position, salary) VALUES ('Иванов', 'Тестировщик', 100000), ('Горохов', 'Тестировщик', 120000), ('Петров', 'Тестировщик', 140000), ('Сидоров', 'Тестировщик', 100000), ('Кузнецов', 'Тестировщик', 120000), ('Михайлов', 'Тестировщик', 150000), ('Антонов', 'Разработчик', 200000), ('Сухой', 'Разработчик', 100000), ('Микоян', 'Разработчик', 100000), ('Капустин', 'Директор', 300000), ('Астахов', 'ИБ', 200000); Пример результата: Михайлов Тестировщик 150000 Антонов Разработчик 200000 Капустин Директор 300000 Астахов ИБ 200000 Время на выполнение 10 минут. Скрипт запроса вписать в поле:

Senior
Альфа-БанкАльфа-Банк
9

В чём основная проблема выбранной структуры решения - Жесткая инициализация финал-полей - Структура не гарантирует уникальности сервисов в кеше - Поиск сервисов усложняет тестирование - Нет шаблона использования. Стратегия гибкости. - Сервис-локатор затрудняет отладку Код: public class CarMaintenanceReminder { private final ServiceLocator serviceLocator; private final ReminderCache reminderCache; public CarMaintenanceReminder() { this.serviceLocator = new ServiceLocator(); this.reminderCache = new ReminderCache(); } public Reminder getOilChangeReminder(String carId) { Reminder reminder = reminderCache.getReminder(carId); if (reminder == null) { reminder = serviceLocator.getService(ReminderService.class).createOilChangeReminder(carId); reminderCache.addReminder(reminder); } return reminder; } } class ServiceLocator { public <T> T getService(Class<T> serviceClass) { return serviceClass.cast(generateService(serviceClass)); } private Object generateService(Class<?> serviceClass) { if (serviceClass == ReminderService.class) { return new ReminderService(); } return null; } } class Reminder { private final String carId; public Reminder(String carId) { this.carId = carId; } } class ReminderService { public Reminder createOilChangeReminder(String carId) { return new Reminder(carId); } } class ReminderCache { private final Map<String, Reminder> cache; public ReminderCache() { this.cache = new HashMap<>(); } public Reminder getReminder(String carId) { return cache.get(carId); } public void addReminder(Reminder reminder) { cache.put(reminder.getCarId(), reminder); } }

Senior
СБК ПАРУС
9

Как заставить все экземпляры читать одни и те же сообщения?

Senior
Позитив Технолоджис
9

Что такое ZooKeeper и KRaft в контексте Kafka? В чём разница?

Senior
EXPERA
9

Как использовалась оптимистичная блокировка на ваших проектах? Как разруливали StaleStateException?

Senior
BSS
9

Переменная type на строке 19 — что это такое?

Senior
СБЕРСБЕР
9

Какие минусы у TreeMap?

Senior
ИП Ганус Александр Андреевич
9

Что происходит с удаленными строками в PostgreSQL?

Senior
Альфа-БанкАльфа-Банк
9

Расскажи про уровни изоляции транзакций в PostgreSQL

Senior
Salmon
9

Какая задача понравилась больше всего (драйв) и какая была антиподом (не моё)?

Senior
01.tech
9

Расскажите про текущий проект

Senior
OZONOZON
9

Как можно идентифицировать загруженный класс в JVM? По каким атрибутам?

Senior
Сбер Отдел 911
9

В каких случаях нужно указывать throws в сигнатуре метода, для каких исключений?

Senior
Азиатско-Тихоокеанский банк
9

Зачем нужны Stream API? Какие плюсы они добавили?

Middle+
луция
9

Какие интересные задачи были на проекте?

Senior
РайффайзенРайффайзен
9

Почему сейчас рассматриваешь другие варианты / почему ушёл с предыдущего места?

Senior
ТБанк
9

Какие отношения между сущностями в Hibernate по умолчанию жадные (EAGER), какие ленивые (LAZY)?

Senior
Позитив Технолоджис
9

Как перевести hashCode (int, возможно отрицательный) в индекс массива бакетов?

Senior
01.tech
9

С высоконагруженными системами работал? Какие показатели нагрузки?

Senior
SSP Soft
9
/713