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

Как рассказать о текущем проекте

Обычно собеседование начинается с вопроса «Расскажите о себе». Если вы не уверены в заказе, сообщите мне об этом, и я могу подсказать, как представиться.

Чтобы увеличить ваши шансы на получение одобрения, важно тщательно подготовить свой проект. Вы можете следовать этим пунктам в качестве руководства:

  1. Обзор текущего проекта. Предоставьте краткий обзор проекта, над которым вы сейчас работаете.
  2. Определение проблемы. Объясните проблему, которую этот проект призван решить, подробно обсудив формулировку проблемы.
  3. Решение. Расскажите о решении, которое было реализовано для выявленной проблемы.
  4. Ваш вклад. Поделитесь информацией о своем конкретном вкладе в проект и подчеркните, что вы сделали.

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

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

и тогда настоящие вопросы и ответы начинают проверять знания кандидата.

Какое использование Java Generics в Java?

Это способ создания повторно используемого кода и повышения безопасности типов в программах Java. Использование Java Generics позволяет вам писать общие классы, интерфейсы и методы, которые могут работать с различными типами данных, сохраняя при этом безопасность типов во время компиляции.

Можем ли мы переопределить частные и статические методы в Java?

Невозможно переопределить частные или статические методы.

  1. Закрытые методы. Закрытые методы — это методы, которые доступны только внутри класса, в котором они определены. Ни один подкласс не может получить к ним доступ или переопределить их. Частные методы предназначены для внутренних деталей реализации и не являются частью общедоступного API класса. Подклассы не могут видеть или получать доступ к закрытым методам, поэтому не существует концепции их переопределения.
  2. Статические методы. Статические методы принадлежат самому классу, а не какому-либо конкретному экземпляру класса. Их можно вызывать по имени класса, и они не зависят ни от какого состояния объекта. Статические методы не наследуются подклассами и не могут быть переопределены. Когда подкласс определяет статический метод с той же сигнатурой, что и статический метод в родительском классе, это называется сокрытием метода, а не переопределением метода. Метод подкласса не переопределяет метод родительского класса, а создает новый метод, специфичный для подкласса.

Для чего используются методы по умолчанию в Java?

  1. Эволюция интерфейса: они позволяют добавлять новые методы в интерфейсы, не нарушая существующие реализации.
  2. Обратная совместимость: методы по умолчанию позволяют улучшать интерфейсы без нарушения существующего кода.
  3. Методы расширения интерфейса: они предоставляют способ определения служебных методов или общего поведения в интерфейсе.
  4. Множественное наследование поведения: методы по умолчанию позволяют интерфейсу наследовать поведение от нескольких интерфейсов.

Для чего используются статические методы в Java?

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

Можем ли мы вызвать нестатический метод из статического метода и почему бы и нет?

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

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

public class MyClass {
    public void nonStaticMethod() {
        // Method implementation
    }

    public static void staticMethod() {
        MyClass myObject = new MyClass(); // Create an instance of the class
        myObject.nonStaticMethod(); // Call the non-static method using the instance
    }
}

Может ли абстрактный класс иметь методы final?

Нет, в абстрактном классе не может быть методов final. Ключевое слово final используется для указания того, что метод или класс нельзя переопределить или расширить соответственно. Поскольку абстрактный класс предназначен для создания подклассов и расширения, объявление метода как final противоречило бы цели абстрактного класса.

Если два интерфейса имеют два одинаковых метода по умолчанию, что произойдет и как это решить?

Если два интерфейса определяют один и тот же метод по умолчанию с одной и той же сигнатурой метода, это вызовет ошибку компиляции. Эта ситуация известна как "алмазная проблема".

Чтобы решить проблему алмазов в интерфейсах Java 8, у вас есть несколько вариантов:

  1. Переопределить метод по умолчанию: в классе, реализующем оба интерфейса, вы можете переопределить конфликтующий метод по умолчанию и предоставить собственную реализацию. Это устраняет неоднозначность, явно указывая, какую реализацию использовать.
  2. Явно укажите желаемый метод по умолчанию: вы можете использовать имя интерфейса, за которым следует имя метода, чтобы явно вызвать метод по умолчанию, который вы хотите использовать. Например, если два интерфейса, A и B, имеют метод по умолчанию с именем doSomething(), вы можете вызвать A.super.doSomething() или B.super.doSomething(), чтобы указать, какую реализацию метода по умолчанию вызывать.

Что такое ковариантный тип возврата в Java?

Ковариантный возвращаемый тип относится к концепции объектно-ориентированного программирования, где подкласс (производный класс) может иметь метод, который возвращает более конкретный тип, чем тип, возвращаемый тем же методом в суперклассе (базовом классе). Это обеспечивает большую гибкость и специализацию в иерархии наследования.

Что такое LinkedHashmap? как он поддерживает порядок вставки, если мы добавим один и тот же ключ дважды, что произойдет, будет ли он поддерживать тот же порядок?

Класс Java LinkedHashMap представляет собой реализацию Hashtable и связанного списка интерфейса Map с предсказуемым порядком итерации. Он наследует класс HashMap и реализует интерфейс Map.

Этот класс расширяет HashMap и поддерживает связанный список записей на карте в том порядке, в котором они были вставлены.

public class Test{
    public static void main(String[] args) {

        Map<String, Integer> lmap = new LinkedHashMap<>();
        lmap.put("key1", 1);
        lmap.put("key2", 2);
        lmap.put("key3", 3);
        lmap.put("key1", 4);
        System.out.println(lmap);
    }
}
Output : {key1=4, key2=2, key3=3}

Таким образом, ответ: Да, даже если мы вставим дубликат ключа, он переопределит значение и сохранит порядок в соответствии с приведенным выше выводом программы.

Дайте мне знать, если эти вопросы помогают вам.

На данный момент я опубликовал 17 статей об интервью с разработчиком Java. Вопросы, я уверен, что если вы прошли через это, это поможет вам очистить роль бэкэнда Java.

Серия вопросов для интервью с разработчиком Java:

Вопросы для интервью со старшим разработчиком Java, серия 1 (Core Java)

Серия вопросов для интервью с ведущими Java-разработчиками-2

Серия вопросов для интервью с разработчиком Core-Java-3

Откройте свое интервью с разработчиком Java + Microservice с помощью этих реальных вопросов и ответов Series-4 (конкретно для финтех-компании, Microservice/SQL)

Вопросы для интервью с ведущими Java-разработчиками, серия 5 (ООП, Core Java 8, Spring, Coding, подготовительные материалы)

13 новых вопросов для интервью с разработчиками Java, серия 6 (микросервисы и Java-кодирование)

Вопросы на собеседовании по программированию для опытных разработчиков Java, серия-7

Вопросы и ответы на интервью с ведущими Java-разработчиками-8 (вопросы по программированию, Core java, Spring, Microservices)

Самые важные вопросы из интервью с разработчиками Java/Microservice, серия 10 (Spring Boot, микросервисы, распределенная система)

Вопросы, заданные в ходе интервью с ведущим разработчиком Java/Microservice — серия интервью — 11 (Java-8, Spring-Boot, Microservices)

Наиболее распространенные вопросы для интервью с разработчиками Java, серия 12 (Core Java, ООП)

Recently Asked Interview Questions for Java Developers series-13(Скачать бесплатные pdf-файлы с интервью по Java и Spring-Boot)

Вопросы интервью по практическому программированию на Spring Data-JPA и Java Stream API Series -14

Вопросы для интервью со старшим Java-разработчиком, серия-15

Должен знать Java 8 Stream Вопросы интервью для Java-разработчиков серия-16

Вопрос с интервью старшего разработчика Java, серия 2023-17 (содержит все вопросы интервью до сих пор)

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



Бесплатные файлы PDF

Grokking the Java Interview [Бесплатный пример]

Интервью Grokking the Spring Boot [Бесплатный пример]

Спасибо за прочтение

  • 👏 Пожалуйста, хлопайте в историю и подписывайтесь на меня 👉
  • 📰 Подробнее читайте в моем Medium (30 историй об интервью с Java-разработчиком)
  • Найдите мою книгу Guide To Clear Java Developer Interview здесь, Amazon (Kindle Book) и Gumroad( PDF формат)
  • 🔔 Следуйте за мной: LinkedIn | Твиттер