#Вопросы_с_собеседования
❓Какие виды ссылок на методы вы знаете?
☕️ ссылки на статические методы;
☕️ ссылки на методы экземпляра;
☕️ ссылки на конструкторы;
☕️ ссылки на обобщенные (шаблонные) методы.
❓Какие виды ссылок на методы вы знаете?
☕️ ссылки на статические методы;
☕️ ссылки на методы экземпляра;
☕️ ссылки на конструкторы;
☕️ ссылки на обобщенные (шаблонные) методы.
👍29
#Вопросы_с_собеседования
❓Напишите программу на Java для вставки данного элемента в очередь с приоритетами
Ответ на картинке.
❓Напишите программу на Java для вставки данного элемента в очередь с приоритетами
Ответ на картинке.
👍21
#Вопросы_с_собеседования
❓Скомпилируется ли код с картинки?
Ответ:
Да. При цепочке исключений компилятор заботится только о первом в цепочке, и, поскольку он обнаруживает непроверяемое исключение, не нужно добавлять throws.
❓Скомпилируется ли код с картинки?
Ответ:
👍23
#Вопросы_с_собеседования
❓Как конвертировать массив в список?
Используется метод Arrays.asList(), который преобразует массив в список.
❓Как конвертировать массив в список?
Используется метод Arrays.asList(), который преобразует массив в список.
👍44🤔2❤1
Модификатор volatile
В Java модификатор volatile используется, чтобы позволить знать JVM, что поток доступа к переменной всегда должен объединять свою собственную копию переменной с главной копией в памяти.
Доступ к volatile переменной синхронизирует все кэшированные скопированные переменные в оперативной памяти. Ссылка на объект volatile может быть null.
Как правило, run() вызывается в одном потоке, а stop() вызывается из другого потока. Если в строке 1 используется кэшированное значение active, то цикл не может остановиться, пока вы не установите active = false в строке 2.
В Java модификатор volatile используется, чтобы позволить знать JVM, что поток доступа к переменной всегда должен объединять свою собственную копию переменной с главной копией в памяти.
Доступ к volatile переменной синхронизирует все кэшированные скопированные переменные в оперативной памяти. Ссылка на объект volatile может быть null.
Как правило, run() вызывается в одном потоке, а stop() вызывается из другого потока. Если в строке 1 используется кэшированное значение active, то цикл не может остановиться, пока вы не установите active = false в строке 2.
👍23👎2
#Вопросы_с_собеседования
❓В чем разница между & и &&?
& — это битовый оператор, а && — логический. & применим как к целым числам, так и к булевым типам, в то время как && — только к булевым. & применяется ко всем битам обеих сравниваемых переменных, а при использовании && второй аргумент может быть никак не задействован вовсе, если первый ложен.
❓В чем разница между & и &&?
& — это битовый оператор, а && — логический. & применим как к целым числам, так и к булевым типам, в то время как && — только к булевым. & применяется ко всем битам обеих сравниваемых переменных, а при использовании && второй аргумент может быть никак не задействован вовсе, если первый ложен.
👍41
#Вопросы_с_собеседования
❓В чем разница между проверяемыми и непроверяемыми исключениями?
Проверяемое исключение может быть обработано в блоке try-catch или объявлено в throws; тогда как непроверяемое исключение не требуется ни обрабатывать, ни объявлять.
Проверяемые и непроверяемые исключения также известны как исключения во время компиляции и во время выполнения соответственно.
❓В чем разница между проверяемыми и непроверяемыми исключениями?
Проверяемое исключение может быть обработано в блоке try-catch или объявлено в throws; тогда как непроверяемое исключение не требуется ни обрабатывать, ни объявлять.
Проверяемые и непроверяемые исключения также известны как исключения во время компиляции и во время выполнения соответственно.
👍27❤2👎2🔥1
#Вопросы_с_собеседования
❓Что такое стек и куча? Что хранится в каждой из этих структур памяти и как они взаимосвязаны?
Стек — это часть памяти, которая содержит информацию о вызовах вложенных методов вплоть до текущей позиции в программе. Он также содержит все локальные переменные и ссылки на объекты в куче, определенные в текущих выполняемых методах.
Эта структура позволяет среде выполнения возвращаться из метода, зная адрес, откуда он был вызван, а также очищать все локальные переменные после выхода из метода. Каждый поток имеет свой собственный стек.
Куча — это большой объем памяти, предназначенный для размещения объектов. Когда вы создаете объект с ключевым словом
❓Что такое стек и куча? Что хранится в каждой из этих структур памяти и как они взаимосвязаны?
Стек — это часть памяти, которая содержит информацию о вызовах вложенных методов вплоть до текущей позиции в программе. Он также содержит все локальные переменные и ссылки на объекты в куче, определенные в текущих выполняемых методах.
Эта структура позволяет среде выполнения возвращаться из метода, зная адрес, откуда он был вызван, а также очищать все локальные переменные после выхода из метода. Каждый поток имеет свой собственный стек.
Куча — это большой объем памяти, предназначенный для размещения объектов. Когда вы создаете объект с ключевым словом
new
, он размещается в куче. Однако ссылка на этот объект находится в стеке.👍36❤1
В каком случае использование TreeSet предпочтительнее использования HashSet?
Anonymous Quiz
11%
Когда необходимо часто осуществлять обращение к элементам из Set
12%
Когда необходимо часто вставлять в Set новые элементы или удалять их
64%
Когда нужно гарантировать сохранение порядка элементов коллекции
13%
Когда нужно модифицировать производительность итератора по коллекции
👍35👎4
Метод ensureCapacity
Увеличивает размер внутреннего массива, чтобы в него поместилось количество элементов, переданных в minCapacity. Если массив достаточно вместителен, никакие преобразования не производятся.
Этот метод полезен, когда возникает потребность вместить большое количество элементов в несколько итераций. Например, при создании списка емкость его внутреннего массива — 10. При загрузке данных по сети они обрабатываются асинхронно порциями и результаты помещаются в массив. Если ожидается доставка 10 000 элементов, может быть неэффективно просто добавлять эти данные каждый раз: достаточно будет в начале обработки вызвать метод ensureCapaciry(10000) и записывать туда данные по мере необходимости.
Увеличивает размер внутреннего массива, чтобы в него поместилось количество элементов, переданных в minCapacity. Если массив достаточно вместителен, никакие преобразования не производятся.
Этот метод полезен, когда возникает потребность вместить большое количество элементов в несколько итераций. Например, при создании списка емкость его внутреннего массива — 10. При загрузке данных по сети они обрабатываются асинхронно порциями и результаты помещаются в массив. Если ожидается доставка 10 000 элементов, может быть неэффективно просто добавлять эти данные каждый раз: достаточно будет в начале обработки вызвать метод ensureCapaciry(10000) и записывать туда данные по мере необходимости.
👍23
#Вопросы_с_собеседования
❓Почему строка является популярным ключом в HashMap в Java?
Поскольку строки неизменяемы, их хэш код вычисляется и кэшируется в момент создания, не требуя повторного пересчета при дальнейшем использовании. Поэтому в качестве ключа HashMap они будут обрабатываться быстрее.
❓Почему строка является популярным ключом в HashMap в Java?
Поскольку строки неизменяемы, их хэш код вычисляется и кэшируется в момент создания, не требуя повторного пересчета при дальнейшем использовании. Поэтому в качестве ключа HashMap они будут обрабатываться быстрее.
👍45❤1
#Вопросы_с_собеседования
❓Чем похожи класс и интерфейс?
☕️ Интерфейс может содержать любое количество методов;
☕️ Интерфейс записан в файле с расширением .java, и имя интерфейса совпадает с именем файла;
☕️ Байт-код интерфейса находится в .class файле;
☕️ Интерфейсы появляются в пакетах, и их соответствующий файл байт-кода должен быть в структуре каталогов, которая совпадает с именем пакета.
❓Чем похожи класс и интерфейс?
☕️ Интерфейс может содержать любое количество методов;
☕️ Интерфейс записан в файле с расширением .java, и имя интерфейса совпадает с именем файла;
☕️ Байт-код интерфейса находится в .class файле;
☕️ Интерфейсы появляются в пакетах, и их соответствующий файл байт-кода должен быть в структуре каталогов, которая совпадает с именем пакета.
👍29🔥2❤1👎1
Что выведет программа?
Anonymous Quiz
17%
%X%x%x%x%x%x%x10101010101010
36%
Aaaaaaa
15%
%X%x%x%x%x%x%x10101010101010
8%
%X%x%x%x%x%x%x
1%
%X%X%X%X%X%X%X
24%
Ничего
👍46❤3
Основы Java: выделяем 4 разных роли классов
Java – объектно-ориентированный язык, и если спросить, какую роль в нем играют классы, первым в голову приходит создание объектов. Выделим ещё три важных роли этой конструкции языка, помимо самой очевидной.
Читать далее
Java – объектно-ориентированный язык, и если спросить, какую роль в нем играют классы, первым в голову приходит создание объектов. Выделим ещё три важных роли этой конструкции языка, помимо самой очевидной.
Читать далее
Библиотека программиста
☕ Основы Java: выделяем 4 разных роли классов
Java – объектно-ориентированный язык, и если спросить, какую роль в нем играют классы, первым в голову приходит создание объектов. Выделим ещё три важных роли этой конструкции языка, помимо самой очевидной.
👍18🔥1
#Вопросы_с_собеседования
❓Что такое абстрактный метод в языке Java?
Абстрактный метод – это метод без тела. Вы просто объявляете метод, не определяя его, с использованием ключевого слова abstract в объявлении метода. Все объявленные внутри интерфейса в языке Java методы – по умолчанию абстрактные. Пример абстрактного метода в языке Java представлен на картинке.
Теперь, для реализации этого метода необходимо расширить абстрактный класс и этот метод переопределить.
❓Что такое абстрактный метод в языке Java?
Абстрактный метод – это метод без тела. Вы просто объявляете метод, не определяя его, с использованием ключевого слова abstract в объявлении метода. Все объявленные внутри интерфейса в языке Java методы – по умолчанию абстрактные. Пример абстрактного метода в языке Java представлен на картинке.
Теперь, для реализации этого метода необходимо расширить абстрактный класс и этот метод переопределить.
👍29❤2
#Вопросы_с_собеседования
❓В чем разница между перегрузкой и переопределением чего-либо?
Переопределение выполняется во время работы программы, а перегрузка — во время компиляции. Также переопределение и перегрузка выполняются по-разному: в Java перегружаемый метод должен иметь отличную от оригинального метода сигнатуру, а в случае с переопределением она может быть той же самой.
❓В чем разница между перегрузкой и переопределением чего-либо?
Переопределение выполняется во время работы программы, а перегрузка — во время компиляции. Также переопределение и перегрузка выполняются по-разному: в Java перегружаемый метод должен иметь отличную от оригинального метода сигнатуру, а в случае с переопределением она может быть той же самой.
👍20❤2