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

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

Реклама: @anothertechrock
Download Telegram
Ответ на "В реализации класса ArrayList есть следующие поля: Object[] elementData, int size. Объясните, зачем хранить отдельно size, если всегда можно взять elementData.length?"

Размер массива elementData представляет собой вместимость (capacity) ArrayList, которая всегда больше переменной size - реального количества хранимых элементов. При необходимости вместимость автоматически возрастает.

#вопросы_с_собеседований
👍5
LinkedList — это односвязный, двусвязный или четырехсвязный список?

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

#вопросы_с_собеседований
👍1
Ответ на "LinkedList — это односвязный, двусвязный или четырехсвязный список?"

Двусвязный
: каждый элемент LinkedList хранит ссылку на предыдущий и следующий элементы.

#вопросы_с_собеседований
👍5
Как перебрать элементы LinkedList в обратном порядке, не используя медленный get(index)?

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

#вопросы_с_собеседований
Ответ на "Как перебрать элементы LinkedList в обратном порядке, не используя медленный get(index)?"

Для этого в LinkedList есть обратный итератор, который можно получить вызва метод descendingIterator().

#вопросы_с_собеседований
😱4
Stack считается «устаревшим». Чем его рекомендуют заменять? Почему?

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

#вопросы_с_собеседований
Ответ на "Stack считается «устаревшим». Чем его рекомендуют заменять? Почему?"

Stack был добавлен в Java 1.0 как реализация стека LIFO (last-in-first-out) и является расширением коллекции Vector, хотя это несколько нарушает понятие стека (например, класс Vector предоставляет возможность обращаться к любому элементу по индексу). Является частично синхронизированной коллекцией (кроме метода добавления push()) с вытекающими отсюда последствиями в виде негативного воздействия на производительность. После добавления в Java 1.6 интерфейса Deque, рекомендуется использовать реализации именно этого интерфейса, например, ArrayDeque.

#вопросы_с_собеседований
👍3👏1
Зачем нужен HashMap, если есть Hashtable?

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

#вопросы_с_собеседований
Ответ на "Зачем нужен HashMap, если есть Hashtable?"

• Методы класса Hashtable синхронизированы, что приводит к снижению производительности, а HashMap - нет;
HashTable не может содержать элементы null, тогда как HashMap может содержать один ключ null и любое количество значений null;
Iterator у HashMap, в отличие от Enumeration у HashTable, работает по принципу «fail-fast» (выдает исключение при любой несогласованности данных).

Hashtable это устаревший класс и его использование не рекомендовано.

#вопросы_с_собеседований
👍7
Что такое «денормализация»? Для чего она применяется?

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

#вопросы_с_собеседований
Ответ на "Что такое «денормализация»? Для чего она применяется?"

Денормализация базы данных — это процесс осознанного приведения базы данных к виду, в котором она не будет соответствовать правилам нормализации. Обычно это необходимо для повышения производительности и скорости извлечения данных, за счет увеличения избыточности данных.

#вопросы_с_собеседований
👍2
Как получить доступ к переопределенным методам родительского класса?

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

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

С помощью ключевого слова super мы можем обратиться к любому члену родительского класса - методу или полю, если они не определены с модификатором private.

super.method();

#вопросы_с_собеседований
👍41
#вопросы_с_собеседований
В чем разница между композицией и агрегацией?

Ассоциация
обозначает связь между объектами. Композиция и агрегация — частные случаи ассоциации «часть-целое».

Агрегация предполагает, что объекты связаны взаимоотношением «part-of» (часть). Композиция более строгий вариант агрегации. Дополнительно к требованию «part-of» накладывается условие, что экземпляр «части» может входить только в одно целое (или никуда не входить), в то время как в случае агрегации экземпляр «части» может входить в несколько целых.

Например, книга состоит из страниц, и мы не можем вырвать страницу из книги и вложить в другую книгу. Страницы четко привязаны к конкретной книге, поэтому это композиция. В тоже время мы можем взять и перенести книгу из одной библиотеки в другую - это уже агрегация.
👍3
Что вы знаете о функции main()?

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

#вопросы_с_собеседований
👍2
Ответ на "Что вы знаете о функции main()?"

Метод main() — точка входа в программу. В приложении может быть несколько таких методов. Если метод отсутствует, то компиляция возможна, но при запуске будет получена ошибка `Error: Main method not found`.

#вопросы_с_собеседований
👍1
Что такое «фикстуры»?

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

#вопросы_с_собеседований
Ответ на "Что такое «фикстуры»?"

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

#вопросы_с_собеседований
#вопросы_с_собеседований
Как получить IP адрес клиента на сервере?

IP адрес клиента можно получить вызвав request.getRemoteAddr().
👍2
#вопросы_с_собеседований
Какие классы позволяют преобразовать байтовые потоки в символьные и обратно?

• OutputStreamWriter — «мост» между классом OutputStream и классом Writer. Символы, записанные в поток, преобразовываются в байты.
• InputStreamReader — аналог для чтения. При помощи методов класса Reader читаются байты из потока InputStream и далее преобразуются в символы.
👍3