Telegram Web Link
Ответ на "Почему нельзя объявить метод интерфейса с модификатором final или static?"

Причина, по которой в интерфейсах нельзя объявлять методы с модификаторами final или static заключается в следующем:

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

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

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

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

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

При помощи:
    Collections.unmodifiableList(list);
Collections.unmodifiableSet(set);
Collections.unmodifiableMap(map).


Эти методы принимают коллекцию в качестве параметра и возвращают коллекцию только для чтения с теми же элементами внутри.

#вопросы_с_собеседований
Если оператор return содержится и в блоке catch и в finally, какой из них «главнее»?

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

#вопросы_с_собеседований
Ответ на "Если оператор return содержится и в блоке catch и в finally, какой из них «главнее»?"

Если оператор return встречается как в блоке catch, так и в блоке finally, то return в блоке finally имеет больший приоритет и будет выполнен в любом случае.

Порядок выполнения такой конструкции будет следующий:
— Выполняется код в теле try.
— Если возникает исключение, управление передается в блок catch.
— В блоке catch может выполниться return, возвращающий значение из метода.
— Далее обязательно выполнится блок finally, даже если в catch уже был return.
— Если в finally есть оператор return, он перезапишет любое значение, возвращаемое ранее.
— Метод вернет значение, указанное в return блока finally.

#вопросы_с_собеседований
Как перейти на Scala: основы и особенности

Расскажет опытный эксперт — Алексей Воронец. На уроке вы:

- обсудите синтаксические особенности языка;
- узнаете, какие возможности языка позволяют комфортно использовать подходы функционального программирования;
- попрактикуетесь в написании функций и методов, создании иммутабельных конструкций;
- получите представление о возможностях композиции.

Занятие пройдёт 10 апреля в 20:00 мск в рамках курса «Scala-разработчик». Доступна рассрочка на обучение!

Регистрируйтесь прямо сейчас, чтобы посетить бесплатный урок и получить запись: https://vk.cc/cw4Ie4

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Могли бы вы придумать ситуацию, когда блок finally не будет выполнен?

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

#вопросы_с_собеседований
Ответ на "Могли бы вы придумать ситуацию, когда блок finally не будет выполнен?"

— Если в блоке try вызвать метод System.exit(). Это приведет к немедленному завершению приложения, и блок finally пропускается.

— Если произойдет аварийное завершение JVM, например OutOfMemoryError. В этом случае JVM останавливается без выполнения finally.

— Если в блоке try выбрасывается исключение Error или его подклассы (например, StackOverflowError). Такие исключения обычно означают серьезную проблему, поэтому JVM не гарантирует выполнение finally.

— Если при выполнении кода в блоке try произошел deadlock. В этом случае поток зависает, и блок finally не выполняется.

— Если программа была принудительно остановлена, например, по kill -9 в Linux.

#вопросы_с_собеседований
👩‍💻Как писать более чистый код на Java с помощью перегрузки методов?

Перегрузка — очень мощная техника для случаев, когда нужно одинаковое имя метода с разными параметрами. Вместо того, чтобы дублировать имя метода и добавлять беспорядок в ваш код, вы можете просто перегрузить его. Это позволяет сохранять код чистым, а также снижает риск того, что дублирующие методы сломают часть системы.

Как это провернуть? Расскажет опытный эксперт на открытом практическом уроке от OTUS! Встречаемся 26 апреля в 20:00 мск в преддверии старта курса «Углубленное изучение языка Java».
Все участники вебинара получат специальную цену на обучение и персональную консультацию от менеджеров OTUS!

➡️ Регистрируйтесь прямо сейчас, чтобы не пропустить бесплатный урок: https://vk.cc/cwlJmq

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
Какова иерархия коллекций?

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

#вопросы_с_собеседований
Ответ на "Какова иерархия коллекций?"

В Java есть два основных интерфейса для коллекций — Collection и Map.

Interface Collection находится на верху иерархии и определяет общие методы для работы с коллекциями, такие как add(), remove(), size() и другие. От него наследуются конкретные реализации коллекций.

Наиболее часто используемые реализации Collection — это List, Set и Queue.

Map интерфейс реализует отдельную структуру данных. Он представляет отображение ключ-значение. Основные реализации — HashMap и TreeMap.

#вопросы_с_собеседований
Углубленному изучению Java – быть!

Как грамотно использовать конструкторы и блоки инициализации? — расскажем на открытом практическом уроке от OTUS, где мы:

- Разберём конструктор на запчасти;
- Определим финалистов (финальные переменные);
- Наведём порядок (инициализации);

Встречаемся 21 мая в 19:00 мск в преддверии старта курса «Углубленное изучения языка Java».
Кур построен на базе подготовки к сертификации OCAJP. Ваш билет в мир международных IT-проектов!

Регистрируйтесь прямо сейчас, чтобы не пропустить бесплатный урок: https://vk.cc/cx0yEP
Как влияет модификатор static на класс/метод/поле?

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

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

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

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

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

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

#вопросы_с_собеседований
Почему интерактивная разработка на Clojure — это круто?

В Clojure ты можешь запустить программу всего один раз и взаимодействовать с ней на протяжении всего процесса разработки в реальном времени. Хочешь разобраться? Тогда ждем тебя на открытом практическом уроке от OTUS, где мы разберем:

▫️как добавлять новые функции или менять состояние программы;
▫️как «прощупывать» любые данные и пошагово отлаживать код;
▫️как запускать тесты и подключаться к внешним системам.

И всё это не выходя из интерактивной среды разработки REPL!

Встречаемся 30 мая в 20:00 мск в рамках курса «Clojure Developer». Все участники вебинара получат специальную цену на обучение!

➡️ Регистрируйся прямо сейчас, чтобы не пропустить бесплатный урок: https://vk.cc/cx1XwM

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
Какие реализации SortedSet вы знаете и в чем их особенность?

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

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

В Java есть несколько реализаций интерфейса SortedSet:

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

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

— EnumSet — высокопроизводительная реализация для элементов-перечислений.
Использует внутри битовые вектора для хранения.

— LinkedHashSet — реализация на основе хеш-таблицы и связанного списка.
Сохраняет порядок вставки элементов.

#вопросы_с_собеседований
В чем отличия между TreeSet и HashSet?

Основное отличие между TreeSet и HashSet заключается в том, что TreeSet хранит элементы в отсортированном порядке, в то время как порядок хранения элементов в HashSet не определен. TreeSet также обеспечивает быстрый поиск и извлечение элементов в отсортированном порядке.

#вопросы_с_собеседований
👉 Хочешь освоить Stream API и функциональные интерфейсы в Java?

Приходи на открытый урок, где опытный эксперт разберет обработку элементов коллекций с помощью Stream API и обработку функциональных интерфейсов при написании автотестов.

Спикер Павел Балахонов — ведущий инженер по автоматизированному тестированию на проекте VK Private Cloud Solutions, опытный ментор и преподаватель.

👉 Встречаемся 20 августа в 20:00 мск. Всем участникам дадим скидку на большое обучение.

Регистрация открыта

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Какие подклассы класса Reader вы знаете, для чего они предназначены?

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

#вопросы_с_собеседований
2025/04/05 20:53:49
Back to Top
HTML Embed Code: