Вопросы на собеседовании Junior
[Вопросы на собеседовании Junior]
В данной статье мы рассмотрим популярные вопросы на собеседовании на позицию Junior Java Developer.
Последнее обновление статьи: 26 августа 2019
Что такое класс?
В Java класс – это шаблон, по которому в процессе выполнения программы создаются объекты. В классе описываются данные (поля класса) и поведение (методы класса). Для описания класса используются модификаторы доступа, имя класса, зарезервированное слово class, тело класса, обрамляющееся фигурными скобками {}.
Взглянем на объявление класса HelloWorld:
public class HelloWorld {
private static String message = "Hello World!";
public static void main(String[] args) {
System.out.println(message);
}
}
Здесь класс HelloWorld объявлен с модификатором доступа public (к нему можно получить доступ из любого пакета), у него есть поле message и метод main.
Что такое объект?
Объект в Java – это экземпляр класса, который создаётся во время исполнения программы. Для создания объекта нужно воспользоваться ключевым словом new:
Date now = new Date();
Виртуальная машина Java, встретив инструкцию new, создаст новый экземпляр указанного класса.
Что такое интерфейс?
Интерфейс в Java – это ссылочный тип, который, в отличие от класса, не может быть инстациирован. Интерфейс – абстракция поверх какого-либо класса, которые реализует данный интерфейс и который может иметь свои экземпляры.
Интерфейс может иметь константные поля (т.е. поля с модификаторамиpublic final), абстрактные методы, статические методы и дефолтные методы (начиная с Java 8).
Пример определения интерфейса:
public interface Animal {
String TYPE = "ANIMAL";
String name();
static int getCount() {
return 1;
}
default String sayHello() {
return "Hello";
}
}
Здесь мы определили интерфейс Animal со следующими свойствами:
- Константное поле
TYPE. Все поля интерфейса по умолчанию имеют модификаторыpublic static final, поэтому их указывать в коде необязательно. - Абстрактный метод
name. Абстрактные методы не содержат своего тела, поэтому их потребуется определить в классе, который будет реализовывать (наследовать) данный интерфейс. - Статический метод
getCount. До Java 8 статические методы были единственнымы методами с телом. Так как метод статический, его невозможно переопределить в классе-наследнике. - Метод по умолчанию или Дефолтный метод – метод интерфейса, который имеет реализацию по умолчанию. Класс-наследник может переопределить поведение такого метода. Это нововведение было реализовано в Java 8.
Что такое абстрактный класс?
Абстрактный класс – это класс, который нельзя инстанциировать (объекты которого нельзя создать). Абстрактный класс может содержать обычные методы и абстрактные методы (методы без тела). Для того, чтобы объявить класс или метод абстрактным, используется ключевое слово abstract:
public abstract class Person {
public abstract String getName();
public String sayHello() {
return "Hello";
}
}
Здесь мы определили абстрактный класс Person c двумя методами:
- Абстрактный метод
getName. Так как он не содержит собственного поведения, его потребуется переопределить классом-наследником. - Метод
sayHello. Это обыкновенный метод с телом, который можно при необходимости переопределить в наследнике (но это не является обязательным правилом).
Что такое наследование?
Наследование – один из базовых принципов объектно-ориентированного программирования. Наследование – это создание нового типа, расширяющего базовый тип. В Java возможно наследование от класса или от интерфейса.
Вопросы на собеседовании Junior
Комментарии 0