Javazavr. Обучение Java.
4.16K subscribers
36 photos
55 links
Главный канал по Java.

Контент на любой вкус.
1. Туториалы
2. Видео
3. Задачи
4. Тесты
И многое другое.

Реклама: @anothertechrock
Download Telegram
Чем stub отличается от mock?

Пишите в комментариях ваш вариант. Ответ будет у нас в канале.

#вопросы_с_собеседований
😁2
Ответ на "Чем stub отличается от mock?"

stub используется как заглушка сервисов, методов, классов и т.д. с заранее запрограммированным ответом на вызовы.

mock использует подмену результатов вызова, проверяет сам факт взаимодействия, протоколирует и контролирует его.

#вопросы_с_собеседований
Можно ли объявить метод абстрактным и статическим одновременно?

Пишите в комментариях ваш вариант. Ответ будет у нас в канале.

#вопросы_с_собеседований
👍2
Ответ на "Можно ли объявить метод абстрактным и статическим одновременно?"

Нет. В таком случае компилятор выдаст ошибку: "Illegal combination of modifiers: ‘abstract’ and ‘static’". Модификатор abstract говорит, что метод будет реализован в другом классе, а static наоборот указывает, что этот метод будет доступен по имени класса.

#вопросы_с_собеседований
😢2🎉2👍1
В чем разница между HashMap и WeakHashMap? Для чего используется WeakHashMap?

Пишите в комментариях ваш вариант. Ответ будет у нас в канале.

#вопросы_с_собеседований
👍1
Ответ на "В чем разница между HashMap и WeakHashMap? Для чего используется WeakHashMap?"

В Java существует 4 типа ссылок: сильные (strong reference), мягкие (SoftReference), слабые (WeakReference) и фантомные (PhantomReference). Особенности каждого типа ссылок связаны с работой Garbage Collector. Если объект можно достичь только с помощью цепочки WeakReference (то есть на него отсутствуют сильные и мягкие ссылки), то данный объект будет помечен на удаление.

WeakHashMap - это структура данных, реализующая интерфейс Map и основанная на использовании WeakReference для хранения ключей. Таким образом, пара «ключ-значение» будет удалена из WeakHashMap, если на объект-ключ более не имеется сильных ссылок.

В качестве примера использования такой структуры данных можно привести следующую ситуацию: допустим имеются объекты, которые необходимо расширить дополнительной информацией, при этом изменение класса этих объектов нежелательно либо невозможно. В этом случае добавляем каждый объект в WeakHashMap в качестве ключа, а в качестве значения - нужную информацию. Таким образом, пока на объект имеется сильная ссылка (либо мягкая), можно проверять хэш-таблицу и извлекать информацию. Как только объект будет удален, то WeakReference для этого ключа будет помещен в ReferenceQueue и затем соответствующая запись для этой слабой ссылки будет удалена из WeakHashMap.

#вопросы_с_собеседований
👍31
Почему Map не наследуется от Collection?

Пишите в комментариях ваш вариант. Ответ будет у нас в канале.

#вопросы_с_собеседований
👍2
Ответ на "Почему Map не наследуется от Collection?"

Это связано с тем, что Map представляет отображение ключ-значение, в то время как Collection представляет коллекцию объектов.

Коллекции работают с объектами на основе их позиции в коллекции, тогда как в Map объекты доступны по ключу. Поэтому операции, определенные в Collection, такие как добавление, получение по индексу и итерация, не имеют смысла для Map.

Вместо этого в Map определены операции для работы с парами ключ-значение, такие как put(), get(), containsKey() и другие. Наследование Map от Collection привело бы к наследованию неподходящих методов.

#вопросы_с_собеседований
3
#вопросы_с_собеседований

Что такое «фикстуры»?

Фикстуры (fixtures) - состояние среды тестирования, которое требуется для успешного выполнения теста. Основная задача фикстур заключается в подготовке тестового окружения с заранее фиксированным/известным состоянием, чтобы гарантировать повторяемость процесса тестирования.
Как влияет модификатор static на класс/метод/поле?

Пишите в комментариях ваш вариант. Ответ будет у нас в канале.

#вопросы_с_собеседований
Ответ на "Как влияет модификатор static на класс/метод/поле?"

Для класса — позволяет создать static-класс, экземпляры которого создавать нельзя. Используется для создания утилитных классов.

Для метода — делает метод статическим, то есть он может быть вызван без создания экземпляра класса.

Для поля — создает поле, общее для всех экземпляров класса. Статическое поле существует в единственном экземпляре для класса.

Если кратко, static позволяет создавать классы/методы/поля, связанные с классом, а не с экземпляром.
Это удобно, когда нужно реализовать утилитные классы или объекты, общие для всех экземпляров.

#вопросы_с_собеседований
🔥4
Где и как вы можете использовать приватный конструктор?

Пишите в комментариях ваш вариант. Ответ будет у нас в канале.

#вопросы_с_собеседований
Ответ на "Где и как вы можете использовать приватный конструктор?"

Приватный (помеченный ключевым словом private, скрытый) конструктор может использоваться публичным статическим методом генерации объектов данного класса. Также доступ к нему разрешён вложенным классам и может использоваться для их нужд.

#вопросы_с_собеседований
👍6