Java Learning
19.1K subscribers
1.6K photos
1 video
3 files
974 links
№ 5079899194

Обучающий канал по Java

Ссылка для друга - https://t.iss.one/+ZEYYht6-46w5MDM6

По всем вопросам @mascarov_valentin

Реклама на бирже - https://telega.in/c/Java_per_month
Download Telegram
#Вопросы_с_собеседования

В чем разница между проверяемыми и непроверяемыми исключениями?

Проверяемое исключение может быть обработано в блоке try-catch или объявлено в throws; тогда как непроверяемое исключение не требуется ни обрабатывать, ни объявлять.

Проверяемые и непроверяемые исключения также известны как исключения во время компиляции и во время выполнения соответственно.
👍272👎2🔥1
#Вопросы_с_собеседования

Что такое стек и куча? Что хранится в каждой из этих структур памяти и как они взаимосвязаны?

Стек — это часть памяти, которая содержит информацию о вызовах вложенных методов вплоть до текущей позиции в программе. Он также содержит все локальные переменные и ссылки на объекты в куче, определенные в текущих выполняемых методах.

Эта структура позволяет среде выполнения возвращаться из метода, зная адрес, откуда он был вызван, а также очищать все локальные переменные после выхода из метода. Каждый поток имеет свой собственный стек.

Куча — это большой объем памяти, предназначенный для размещения объектов. Когда вы создаете объект с ключевым словом new, он размещается в куче. Однако ссылка на этот объект находится в стеке.
👍361
Поиск позиции для вставки числового элемента в массив

Есть небольшой интересный прием, позволяющий найти позицию, в которую запрошенный элемент может быть вставлен в отсортированный массив.
👍28
Метод ensureCapacity

Увеличивает размер внутреннего массива, чтобы в него поместилось количество элементов, переданных в minCapacity. Если массив достаточно вместителен, никакие преобразования не производятся.

Этот метод полезен, когда возникает потребность вместить большое количество элементов в несколько итераций. Например, при создании списка емкость его внутреннего массива — 10. При загрузке данных по сети они обрабатываются асинхронно порциями и результаты помещаются в массив. Если ожидается доставка 10 000 элементов, может быть неэффективно просто добавлять эти данные каждый раз: достаточно будет в начале обработки вызвать метод ensureCapaciry(10000) и записывать туда данные по мере необходимости.
👍23
#Вопросы_с_собеседования

Почему строка является популярным ключом в HashMap в Java?

Поскольку строки неизменяемы, их хэш код вычисляется и кэшируется в момент создания, не требуя повторного пересчета при дальнейшем использовании. Поэтому в качестве ключа HashMap они будут обрабатываться быстрее.
👍451
#Вопросы_с_собеседования

Чем похожи класс и интерфейс?

☕️ Интерфейс может содержать любое количество методов;
☕️ Интерфейс записан в файле с расширением .java, и имя интерфейса совпадает с именем файла;
☕️ Байт-код интерфейса находится в .class файле;
☕️ Интерфейсы появляются в пакетах, и их соответствующий файл байт-кода должен быть в структуре каталогов, которая совпадает с именем пакета.
👍29🔥21👎1
👍2
Основы Java: выделяем 4 разных роли классов

Java – объектно-ориентированный язык, и если спросить, какую роль в нем играют классы, первым в голову приходит создание объектов. Выделим ещё три важных роли этой конструкции языка, помимо самой очевидной.

Читать далее
👍18🔥1
#Вопросы_с_собеседования

Что такое абстрактный метод в языке Java?

Абстрактный метод – это метод без тела. Вы просто объявляете метод, не определяя его, с использованием ключевого слова abstract в объявлении метода. Все объявленные внутри интерфейса в языке Java методы – по умолчанию абстрактные. Пример абстрактного метода в языке Java представлен на картинке.

Теперь, для реализации этого метода необходимо расширить абстрактный класс и этот метод переопределить.
👍292
#Вопросы_с_собеседования

В чем разница между перегрузкой и переопределением чего-либо?

Переопределение выполняется во время работы программы, а перегрузка — во время компиляции. Также переопределение и перегрузка выполняются по-разному: в Java перегружаемый метод должен иметь отличную от оригинального метода сигнатуру, а в случае с переопределением она может быть той же самой.
👍202
👍18👎10
Что выведет код сверху?
Anonymous Quiz
21%
10
42%
15
5%
20
32%
Error
👍45😱12👎5🔥1
#Вопросы_с_собеседования

Что такое «блокирующий метод»?

Блокирующий метод – метод, который блокируется, до тех пор, пока задание не выполнится, например метод accept() у ServerSocket блокируется в ожидании подключения клиента. Здесь блокирование означает, что контроль не вернётся к вызывающему методу до тех пор, пока не выполнится задание. Так же существуют асинхронные или неблокирующиеся методы, которые могут завершится до выполнения задачи.
👍17
#Вопросы_с_собеседования

Какие типы ключевых слов используются в обработке исключений Java?

try
catch
finally
throw
throws
👍45
#Вопросы_с_собеседования

В чем разница между абстрактными классами и интерфейсами?

Ответ на картинке.
👍39👎20🔥1
#Вопросы_с_собеседования

Дайте краткую характеристику Enum в Java

Enum — перечисление, набор строковых констант, объединенных общим типом. Объявляется через ключевое слово — enum.

Вот пример с enum — допустимые роли в некоторой школе(см картинку).

Слова, написанные большими буквами, и есть те самые константы перечисления, которые объявляются упрощенно, без использования оператора new.

Использование перечислений заметно упрощает жизнь, так как они помогают избежать ошибок и путаницы в наименованиях (так как может быть только определенный перечень значений).
👍18
NullPointer Exception

Исключение нулевого указателя возникает в Java довольно часто при попытке вызова метода несуществующего объекта.

Рассмотрим строчку кода из примера 1 на картинке. Если объект school окажется равен null или его метод listStudents вернет null, вы получите исключение NullPointerException.

Хорошей практикой разработки на Java является предварительная проверка на null в методах (как в примере 2).
👍24👎4