cookie

Ми використовуємо файли cookie для покращення вашого досвіду перегляду. Натиснувши «Прийняти все», ви погоджуєтеся на використання файлів cookie.

avatar

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

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

Більше
Рекламні дописи
8 971
Підписники
+224 години
+2757 днів
+1 67130 днів

Триває завантаження даних...

Приріст підписників

Триває завантаження даних...

🤔 Что такое `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 разработчика. Ставь 👍 если нравится контент 🔐 База собесов | 🔐 База тестовых
Показати все...
👍 15 1
Фото недоступнеДивитись в 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
🤔 Какой метод не является частью класса `java.lang.Object`?Anonymous voting
  • finalize()
  • equals(Object obj)
  • clone()
  • extend()
0 votes
5👍 3🎉 1👀 1👾 1
Какие есть уровни изоляции транзакций ? Спросят с вероятностью 12% Уровни изоляции транзакций определяют, в какой степени транзакция должна быть изолирована от изменений данных, производимых другими транзакциями. Он влияет на возможность возникновения таких проблем параллелизма, как грязное чтение, неповторяющееся чтение и фантомное чтение. Определены четыре уровня изоляции: 1️⃣ READ UNCOMMITTED (Чтение незафиксированных данных) На этом уровне транзакции могут читать данные, которые ещё не были зафиксированы (commit) другими транзакциями. Это означает, что возможно "грязное чтение", когда одна транзакция видит промежуточные результаты работы другой незавершённой транзакции, которые могут быть впоследствии откачены (rollback). 2️⃣ READ COMMITTED (Чтение зафиксированных данных) Транзакция на этом уровне изоляции видит только данные, зафиксированные к моменту начала операции чтения. Это предотвращает грязное чтение, но всё ещё допускает "неповторяющееся чтение", когда во время выполнения транзакции другие транзакции могут изменять данные, и повторный запрос к базе данных вернёт другой результат. 3️⃣ REPEATABLE READ (Повторяемое чтение) На этом уровне изоляции транзакция видит только данные, зафиксированные до её начала, и предотвращается изменение данных, которые она уже прочитала, другими транзакциями. Это устраняет проблему неповторяющегося чтения. Однако на этом уровне всё ещё возможно "фантомное чтение", когда в результате выполнения других транзакций изменяется набор строк, соответствующих условию запроса. 4️⃣ SERIALIZABLE (Сериализуемость) Самый строгий уровень изоляции, который полностью изолирует транзакцию от всех других. При таком уровне изоляции СУБД гарантирует, что параллельно выполняемые транзакции будут работать так, как если бы они выполнялись последовательно. Это устраняет все вышеупомянутые проблемы параллелизма, включая фантомное чтение, но может привести к снижению производительности и увеличению количества блокировок. Выбор уровня изоляции транзакции зависит от требований к консистентности данных и допустимого уровня параллелизма. Более высокий уровень изоляции увеличивает надёжность и консистентность данных, но может снижать производительность и масштабируемость системы из-за увеличения числа блокировок и ожидания. 👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти К списку 1715 вопроса на Java разработчика. Ставь 👍 если нравится контент 🔐 База собесов | 🔐 База тестовых
Показати все...
👍 19🔥 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
В чём различия String Builder и String Buffer ? Спросят с вероятностью 12% StringBuilder и StringBuffer предназначены для работы со строками в ситуациях, когда требуется изменять содержимое строки или динамически создавать строку через конкатенацию. Оба класса предоставляют похожий набор методов для манипулирования строками, но ключевое различие между ними заключается в синхронизации и производительности. StringBuffer Является потокобезопасным благодаря синхронизации всех своих методов. Это означает, что данный объект можно безопасно использовать в многопоточных средах, где один и тот же объект может быть изменен разными потоками одновременно. Однако потокобезопасность достигается за счет накладных расходов на синхронизацию, что может снижать производительность при использовании в однопоточных приложениях. StringBuilder Представляет собой не потокобезопасную альтернативу StringBuffer. Отсутствие синхронизации делает его более предпочтительным выбором в ситуациях, когда гарантировано, что объект будет использоваться только в одном потоке, поскольку это обеспечивает лучшую производительность по сравнению с StringBuffer. Сравнение производительности Из-за отсутствия синхронизации StringBuilder обычно работает быстрее StringBuffer в однопоточных приложениях. В многопоточных средах, где требуется потокобезопасность, использование StringBuffer обеспечивает безопасность за счет некоторого снижения производительности. Когда использовать что?StringBuilder: когда работа с объектом происходит в рамках одного потока и требуется высокая производительность. ✅StringBuffer: когда объектом необходимо управлять из разных потоков и требуется гарантия потокобезопасности. Использование StringBuilder
StringBuilder sb = new StringBuilder("Hello");
sb.append(" World");
System.out.println(sb.toString()); // Выводит "Hello World"

Использование StringBuffer
StringBuffer sb = new StringBuffer("Hello");
sb.append(" World");
System.out.println(sb.toString()); // Выводит "Hello World"
Оба примера показывают схожесть в использовании StringBuilder и StringBuffer, но выбор между ними должен основываться на требованиях к потокобезопасности и производительности в вашем конкретном случае. 👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти К списку 1715 вопроса на Java разработчика. Ставь 👍 если нравится контент 🔐 База собесов | 🔐 База тестовых
Показати все...
👍 19🔥 1
00:02
Відео недоступнеДивитись в Telegram
Как разработчику увеличить доход минимум в два раза? Освоить навыки по Kubernetes – самому востребованному направлению в 2024 году. Что это за зверь такой, с чем его едят и как быстро его понять, рассказывает SRE Lead в MTS Digital и преподаватель курсов Слёрма Кирилл Борисов в своём канале. Переходите и узнайте, как «кубы» могут пригодиться в работе, какие возможности открывают и прокачайте текущие скиллы. Для всех новых подписчиков подготовили гайд «Как работает etcd с Kubernetes и без него» Подписывайтесь, забирайте, изучайте и применяйте. Потом спасибо скажете 👉 @Kubernetes_Borisov Реклама. ИП Аердинов Никита Вадимович ИНН 638103515932 erid: LjN8K7zVy
Показати все...
@Kubernetes_Borisov.mp41.17 KB
👾 3
🤔 Какой метод `java.util.List` добавляет элемент по индексу?Anonymous voting
  • add()
  • insert()
  • put()
  • set()
0 votes
🤔 27 3👀 3👾 3🔥 1🎉 1
Оберіть інший тариф

На вашому тарифі доступна аналітика тільки для 5 каналів. Щоб отримати більше — оберіть інший тариф.