Java Learning
19.3K subscribers
1.59K photos
1 video
3 files
963 links
№ 5079899194

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

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

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

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

Какие виды ссылок на методы вы знаете?

☕️ ссылки на статические методы;
☕️ ссылки на методы экземпляра;
☕️ ссылки на конструкторы;
☕️ ссылки на обобщенные (шаблонные) методы.
👍29
#Вопросы_с_собеседования

Напишите программу на Java для вставки данного элемента в очередь с приоритетами

Ответ на картинке.
👍21
#Вопросы_с_собеседования

Скомпилируется ли код с картинки?

Ответ:
Да. При цепочке исключений компилятор заботится только о первом в цепочке, и, поскольку он обнаруживает непроверяемое исключение, не нужно добавлять throws.
👍23
#Вопросы_с_собеседования

Как конвертировать массив в список?

Используется метод Arrays.asList(), который преобразует массив в список.
👍44🤔21
Модификатор volatile

В Java модификатор volatile используется, чтобы позволить знать JVM, что поток доступа к переменной всегда должен объединять свою собственную копию переменной с главной копией в памяти.

Доступ к volatile переменной синхронизирует все кэшированные скопированные переменные в оперативной памяти. Ссылка на объект volatile может быть null.

Как правило, run() вызывается в одном потоке, а stop() вызывается из другого потока. Если в строке 1 используется кэшированное значение active, то цикл не может остановиться, пока вы не установите active = false в строке 2.
👍23👎2
#Вопросы_с_собеседования

В чем разница между & и &&?

&
— это битовый оператор, а && — логический. & применим как к целым числам, так и к булевым типам, в то время как && — только к булевым. & применяется ко всем битам обеих сравниваемых переменных, а при использовании && второй аргумент может быть никак не задействован вовсе, если первый ложен.
👍41
#Вопросы_с_собеседования

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

Проверяемое исключение может быть обработано в блоке 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