cookie

Мы используем файлы cookie для улучшения сервиса. Нажав кнопку «Принять все», вы соглашаетесь с использованием cookies.

avatar

Java | Вопросы собесов

Разбираем вопросы с собеседований на Java разработчика. Spring, Hibernate Сайт: easyoffer.ru/ Реклама: @easyoffer_adv

Больше
Рекламные посты
8 978
Подписчики
+1624 часа
+2817 дней
+1 66430 дней

Загрузка данных...

Прирост подписчиков

Загрузка данных...

🤔 Какой интерфейс не используется для работы с коллекциями в Java?Anonymous voting
  • List
  • Set
  • Map
  • Stream
0 votes
😁 18🤯 9🤔 5👾 3👀 1
Фото недоступноПоказать в Telegram
Переверни игру за день в офисе Финтеха и Фантеха Яндекса 🙃 Зовём бэкенд-разработчиков на вечеринку JavaKotDay, чтобы поменяться ролями и почувствовать себя яндексоидом ещё до того, как примешь оффер. Приходи к нам в гости 14 июля, чтобы порулить на встречах по планированию, поважничать в переговорке и приложить руку к сервисам, которыми пользуются миллионы! А между делом вкусно поедим, посплетничаем у кулера и обсудим планы с нашими CTO. Кто мы? 😜 Фантех — это Кинопоиск, Плюс, Музыка, Афиша и Букмейт. 🤑 Финтех — Пэй, Сплит, Сейвы, ID. Хочешь на JavaKotDay? Подтверди свои скиллы и реши задачку на сайте →
Показать все...
🤔 3🤯 1👾 1
Что такое партиционирование ? Спросят с вероятностью 12% Партиционирование в контексте баз данных и систем хранения данных — это процесс разделения таблиц, индексов или других структур данных на более мелкие, управляемые части, называемые партициями. Цель — улучшить производительность и облегчить управление данными за счёт сокращения объёма данных, обрабатываемых в одном запросе, и оптимизации хранения данных. Типы: 1️⃣ Партиционирование по диапазону (Range Partitioning): Данные разделяются на партиции в соответствии с диапазонами значений определённого столбца или столбцов. Например, таблицу заказов можно разделить на партиции по месяцам или годам. 2️⃣ Партиционирование по списку (List Partitioning): Данные разделяются на основе заранее определённого списка значений. Например, таблицу пользователей можно разделить на партиции по странам, где каждая партиция соответствует конкретной стране. 3️⃣ Партиционирование по хэшу (Hash Partitioning): Данные распределяются по партициям на основе хэш-функции от значения ключа партиционирования. Этот метод позволяет равномерно распределить данные по партициям, даже если распределение ключей не равномерно. 4️⃣ Композитное партиционирование (Composite Partitioning): Комбинация нескольких методов партиционирования. Например, сначала данные могут быть разделены по диапазону дат, а затем каждая партиция по дате может быть дополнительно разделена по хэшу идентификатора пользователя. Преимущества:Улучшение производительности: Запросы, обрабатывающие только данные из определённых партиций, могут выполняться быстрее благодаря уменьшению объёма обрабатываемых данных. ✅ Оптимизация обслуживания: Операции обслуживания, такие как резервное копирование и восстановление, могут быть выполнены на уровне отдельных партиций, что сокращает время простоя. ✅ Более эффективное распределение данных: Партиционирование позволяет размещать данные на различных физических устройствах в соответствии с их использованием, что может улучшить производительность и доступность данных. ✅ Управление данными: Партиционирование облегчает управление данными путём архивирования или удаления устаревших данных без воздействия на активную часть базы данных. Партиционирование является мощным инструментом для управления большими объёмами данных, позволяя улучшить производительность запросов и облегчить процессы обслуживания и управления данными. Однако, для достижения наилучших результатов, необходим тщательный подход к проектированию схемы партиционирования, учитывающий специфику данных и запросов к базе данных. 👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти К списку 1715 вопроса на Java разработчика. Ставь 👍 если нравится контент 🔐 База собесов | 🔐 База тестовых
Показать все...
👍 9
🤔 Что такое `transient` в Java?Anonymous voting
  • Тип данных
  • Потоковая переменная
  • Модификатор переменной
  • Параллельный процесс
0 votes
В чем взаимосвязь контракта equals и hashCode ? Спросят с вероятностью 12% В Java взаимосвязь контракта equals() и hashCode() имеет ключевое значение для корректной работы коллекций, особенно для тех, которые используют хеширование, таких как HashSet, HashMap, Hashtable и другие. Эти методы определены в классе Object, и их поведение можно переопределить в пользовательских классах для достижения необходимой логики сравнения и хеширования объектов. Контракт equals() Определяет, эквивалентны ли два объекта. По умолчанию, он сравнивает ссылки на объекты, то есть проверяет, указывают ли две ссылки на один и тот же объект в памяти. Однако, этот метод часто переопределяется для реализации сравнения по значению, когда два разных объекта считаются равными, если их внутреннее состояние (значения их полей) одинаково. Контракт hashCode() Возвращает целочисленное значение, хеш-код объекта, используемый хеш-таблицами для определения местоположения объекта. Хеш-код представляет собой компактное представление информации об объекте и используется для оптимизации поиска объекта в структурах данных, основанных на хешировании. Взаимосвязь контрактов Основная взаимосвязь между equals() и hashCode() заключается в следующих правилах: 1️⃣Если два объекта равны по методу equals(Object obj), то их хеш-коды, возвращаемые методом hashCode ? Сп также должны быть равны. Это необходимо для корректной работы хеш-таблиц, так как обеспечивает, что равные объекты будут находиться в одной и той же "корзине" или иметь одинаковый индекс хеширования. 2️⃣Если хеш-коды двух объектов различны, объекты точно не равны. Это следует из того, что разные хеш-коды указывают на различие объектов. Однако, обратное не всегда верно: два объекта могут иметь одинаковый хеш-код и при этом не быть равными по equals(), что называется коллизией хеш-кодов. Пример: В классе, где переопределяется метод equals(), должен быть переопределен и метод hashCode(), чтобы поддерживать описанный контракт:
public class Person {
    private String name;
    private int age;

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Person person = (Person) o;
        return age == person.age && Objects.equals(name, person.name);
    }

    @Override
    public int hashCode() {
        return Objects.hash(name, age);
    }
}
Правильное соблюдение контрактов equals() и hashCode() обеспечивает эффективное и корректное функционирование хеш-таблиц и других коллекций, использующих хеширование, позволяя избегать несогласованности данных и оптимизировать производительность операций поиска и сравнения объектов. 👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти К списку 1715 вопроса на Java разработчика. Ставь 👍 если нравится контент 🔐 База собесов | 🔐 База тестовых
Показать все...
👍 19 2
Фото недоступноПоказать в Telegram
⚡️В сети начали находить курсы и книги известных онлайн школ в открытом доступе Вот отсортированная база с тонной материала(постепенно пополняется): 🔗 БАЗА (3385 видео): (343 видео, 87 книги) — Java (176 видео, 32 книги) — Git (293 видео, 63 книги) — C# (352 видео, 89 книги) — С++ (167 видео, 53 книги) — PHP (227 видео, 83 книги) — SQL (163 видео, 29 книги) — Linux (363 видео, 122 книги) — Python (415 видео, 168 книги) — Frontend (143 видео, 33 книги) — Flask (167 видео, 43 книги) — Django (197 видео, 49 книги) — Разработка ботов (137 видео, 93 книги) — Data Science (113 видео, 82 книги) — GameDev (129 видео, 73 книги) — QA Скачивать ничего не нужно — все выложили в Telegram и на YouTube с доступом по ссылке
Показать все...
👍 5😁 2👾 2 1🤔 1
🤔 Какой метод не является частью класса `java.lang.Object`?Anonymous voting
  • finalize()
  • equals(Object obj)
  • clone()
  • extend()
0 votes
6👍 4🎉 1👀 1👾 1
Какие есть уровни изоляции транзакций ? Спросят с вероятностью 12% Уровни изоляции транзакций определяют, в какой степени транзакция должна быть изолирована от изменений данных, производимых другими транзакциями. Он влияет на возможность возникновения таких проблем параллелизма, как грязное чтение, неповторяющееся чтение и фантомное чтение. Определены четыре уровня изоляции: 1️⃣ READ UNCOMMITTED (Чтение незафиксированных данных) На этом уровне транзакции могут читать данные, которые ещё не были зафиксированы (commit) другими транзакциями. Это означает, что возможно "грязное чтение", когда одна транзакция видит промежуточные результаты работы другой незавершённой транзакции, которые могут быть впоследствии откачены (rollback). 2️⃣ READ COMMITTED (Чтение зафиксированных данных) Транзакция на этом уровне изоляции видит только данные, зафиксированные к моменту начала операции чтения. Это предотвращает грязное чтение, но всё ещё допускает "неповторяющееся чтение", когда во время выполнения транзакции другие транзакции могут изменять данные, и повторный запрос к базе данных вернёт другой результат. 3️⃣ REPEATABLE READ (Повторяемое чтение) На этом уровне изоляции транзакция видит только данные, зафиксированные до её начала, и предотвращается изменение данных, которые она уже прочитала, другими транзакциями. Это устраняет проблему неповторяющегося чтения. Однако на этом уровне всё ещё возможно "фантомное чтение", когда в результате выполнения других транзакций изменяется набор строк, соответствующих условию запроса. 4️⃣ SERIALIZABLE (Сериализуемость) Самый строгий уровень изоляции, который полностью изолирует транзакцию от всех других. При таком уровне изоляции СУБД гарантирует, что параллельно выполняемые транзакции будут работать так, как если бы они выполнялись последовательно. Это устраняет все вышеупомянутые проблемы параллелизма, включая фантомное чтение, но может привести к снижению производительности и увеличению количества блокировок. Выбор уровня изоляции транзакции зависит от требований к консистентности данных и допустимого уровня параллелизма. Более высокий уровень изоляции увеличивает надёжность и консистентность данных, но может снижать производительность и масштабируемость системы из-за увеличения числа блокировок и ожидания. 👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти К списку 1715 вопроса на Java разработчика. Ставь 👍 если нравится контент 🔐 База собесов | 🔐 База тестовых
Показать все...
👍 20🔥 2
Фото недоступноПоказать в Telegram
👩‍💻 Интеграционные тесты с контекстом. Тестирование слоя репозиториев и сервисов. Ждём вас на втором занятии серии открытых практических уроков по тестированию Spring-приложений от OTUS: https://otus.pw/ylg7/ На вебинаре мы: - обсудим особенности тестирования компонентов Spring-приложения с подъемом тестового контекста;- рассмотрим, как можно протестировать слой репозиториев на базе JDBC и JPA, а также работу с транзакциями на сервисном слое;- ответим на все возникающие вопросы.  Спикер — Senior Software Engineer и опытный преподаватель.  Встречаемся 1 июля в 20:00 мск в преддверии старта курса «Разработчик на Spring Framework». Все участники вебинара получат специальную цену на обучение!  ➡️ Регистрируйтесь прямо сейчас, чтобы не пропустить бесплатный урок и получить запись предыдущего вебинара серии.
Показать все...
1
🤔 Что делает ключевое слово `transient` в Java?Anonymous voting
  • Оптимизирует память
  • Пропускает сериализацию
  • Ускоряет доступ к переменной
  • Объявляет потокобезопасную переменную
0 votes
👍 5
Выберите другой тариф

Ваш текущий тарифный план позволяет посмотреть аналитику только 5 каналов. Чтобы получить больше, выберите другой план.