Список вопросов и ответов на собеседование Java Junior Developer (Advanced).
Spring Framework.
- Объясните суть паттерна DI или IoC.
- Какие преимущества применения Dependency Injection (DI)?
- Какие IoC контейнеры вы знаете?
- Как реализуется DI в Spring Framework?
- Какие существуют виды DI? Приведите примеры.
- Что такое Spring? Из каких частей состоит Spring Framework?
- Назовите некоторые из шаблонов проектирования, используемых в Spring Framework?
- Каковы некоторые из важных особенностей и преимуществ Spring Framework?
- Каковы преимущества использования Spring Tool Suite?
- Что такое AOP? Как это относиться к IoC?
- Что такое Aspect, Advice, Pointcut, JointPoint и Advice Arguments в АОП?
- В чем разница между Spring AOP и AspectJ АОП?
- Что такое IoC контейнер Spring?
- Что такое Spring бин?
- Какое значение имеет конфигурационный файл Spring Bean?
- Каковы различные способы настроить класс как Spring Bean?
- Какие вы знаете scope у Spring Bean?
- Что такое жизненный цикл Spring Bean?
- Объясните работу BeanFactory в Spring.
- Как получить объекты ServletContext и ServletConfig внутри Spring Bean?
- В чем роль ApplicationContext в Spring?
- Как выглядит типичная реализция метода используя Spring?
- Что такое связывание в Spring и расскажите об аннотации @Autowired?
- Каковы различные типы автоматического связывания в Spring?
- Приведите пример часто используемых аннотаций Spring.
- Можем ли мы послать объект как ответ метода обработчика контроллера?
- Является ли Spring бин потокобезопасным?
- Как создать ApplicationContext в программе Java?
- Можем ли мы иметь несколько файлов конфигурации Spring?
- Как внедрить java.util.Properties в Spring Bean?
- Как настраивается соединение с БД в Spring?
- Как сконфигурировать JNDI не через datasource в applicationContext.xml?
- Каким образом можно управлять транзакциями в Spring?
- Каким образом Spring поддерживает DAO?
- Как интегрировать Spring и Hibernate?
- Как задаются файлы маппинга Hibernate в Spring?
- Как добавить поддержку Spring в web-приложение
- Можно ли использовать xyz.xml вместо applicationContext.xml?
- Что такое контроллер в Spring MVC?
- Какая разница между аннотациями @Component, @Repository и @Service в Spring?
- Расскажите, что вы знаете о DispatcherServlet и ContextLoaderListener.
- Что такое ViewResolver в Spring?
- Что такое MultipartResolver и когда его использовать?
- Как загрузить файл в Spring MVC?
- Как обрабатывать исключения в Spring MVC Framework?
- Каковы минимальные настройки, чтобы создать приложение Spring MVC?
- Как бы вы связали Spring MVC Framework и архитектуру MVC?
- Как добиться локализации в приложениях Spring MVC?
- Как мы можем использовать Spring для создания веб-службы RESTful, возвращающей JSON?
- Как проверить (валидировать) данные формы в Spring Web MVC Framework?
- Что вы знаете Spring MVC Interceptor и как он используется?
- Расскажите о Spring Security.
Перейти к ответам ►►
JavaServer Faces (JSF).
- Что такое JSF?
- Что такое Managed Bean?
- Каковы три типа тегов для текстовых полей существуют в JSF?
- Что означает аннотация @ManagedProperty?
- На что указывает аннотация @ApplicationScoped?
- Что такое связывание ресурсов в JSF?
- Объясните разницу между required и requiredMessage атрибутов в теге <h:inputText>.
- Какие различные типы навигации по страницам поддерживаются в JSF?
- Какие фазы жизненного цикла в JSF вы знаете?
- Объясните назначение тега <h:form>.
- Какие теги используются для action и navigation?
- Какие компоненты используются для отображения данных в табличном виде?
- Что такое событие (event)?
- Как мы можем получить generated event?
- Какие различные типы событий существуют в JSF?
- Что такое класс-слушатель?
- Какое назначение тега facelets?
- Назовите несколько facelets тегов.
- Какие различные типы валидации используются в JSF?
- Какие различные типы выражений поддерживаются JSF EL (Expression Language)?
- В чем разница между мгновенными и отложенными выражениями?
- Объясните разницу между value expression и method expression.
- Расскажите о @ViewScoped, @SessionScoped, @CustomScoped и @RequestScoped аннотациях.
- Какие существую способы объявить класс управляемым бином JSF?
- Как используются атрибуты name и eager в Managed Bean?
- Какие теги для валидации существуют в JSF?
- Какие преимущества использования JSF Framework?
- Какие различные теги JSF используются для конвертации?
- Перечислите преимущества использования языка выражений (expression language)?
- Поясните название backing bean.
- Какие стандартные библиотеки тегов JSF вы знаете?
- Какие основные функции выполняет метод в backing bean?
- Каковы различные реализации JSF API вы знаете?
- Объясните архитектуру JSF.
- Как различные компоненты рендерятся на JSF странице?
- Может JSF содержать несколько файлов конфигурации?
- Чем различается понятия backing bean и managed bean?
- Как отобразить сообщения об ошибках в JSF?
- Объясните назначение тега selectOne menu в JSF.
- Объясните в чем разница между атрибутами immediate и rendered?
- Какие два способа связывания поддерживается JSF?
- Какая минимальная конфигурация необходима для JSF приложения?
- Что означает navigation rule в JSF?
- Расскажите о назначение тегов converter в JSF.
- Перечислите преимущества таблицы данных в JSF.
- Как реализовать интернационализацию (локализацию) (i18n) в JSF?
- Какая модель рендеринга применяется в JSF?
- Что такое render kit?
- Что такое view object?
- Что подразумевается под Bean Scope?
- В чем разница между JSF-1 и JSF-2?
- Может ли отсутствовать faces-config.xml у JSF приложения?
- Сравните JSF и Spring Framework.
- Можем ли мы интегрировать JSF с другими популярными фреймворками вроде Spring, Hibernate и т.д.?
Перейти к ответам ►►
Object relational mapping (ORM), Hibernate.
- Что такое Hibernate?
- Что такое ORM?
- Какие преимущства от использования Hibernate Framework?
- Как Hibernate помогает в программировании?
- Какие преимущества Hibernate над JDBC?
- Что такое конфигурационный файл Hibernate?
- Способы конфигурации работы с Hibernate.
- Что такое Hibernate mapping file?
- Что такое Переходные объекты (Transient Objects)?
- Что такое постоянные объекты (Persistent objects)?
- Что такое TransactionFactory?
- Что такое ConnectionProvider?
- Что такое Трансакция (Transaction)?
- Какие существуют стратегии загрузки объектов в Hibernate?
- Какие бывают id generator классы в Hibernate?
- Какие ключевые интерфейсы использует Hibernate?
- Назовите некоторые важные аннотации, используемые для отображения в Hibernate.
- Какая роль интерфейса Session в Hibernate?
- Является ли Hibernate Session потокобезоспаным?
- Какая роль интерфейса SessionFactory в Hibernate?
- Является ли Hibernate SessionFactory потокобезоспансым?
- В чем разница между openSession и getCurrentSession?
- Какие типы коллекций представлены в Hibernate?
- Какие типы менеджмента транзакций поддерживаются в Hibernate?
- Что собой являет коллекция типа Bag и зачем она используется?
- Какие типы кэша используются в Hibernate?
- Какие существуют типы стратегий кэша?
- Что вы знаете о кэширование в Hibernate? Объясните понятие кэш первого уровня в Hibernate?
- Как настраивается кэш второго уровня в Hibernate?
- Какая разница в работе методов load(); и get();?
- Каковы существуют различные состояния у entity bean?
- Что произойдет, если будет отсутствовать конструктор без аргументов у Entity Bean?
- Как используется вызов метода Hibernate Session merge()?
- В чем разница между Hibernate save(), saveOrUpdate() и persist()?
- Что такое Lazy fetching(изъятие) в Hibernate?
- В чем разница между sorted collection и ordered collection? Какая из них лучше?
- Как реализованы Join’ы Hibernate?
- Почему мы не должны делать Entity class как final?
- Что вы знаете о HQL и каковы его преимущества?
- Что такое Query Cache в Hibernate?
- Можем ли мы выполнить SQL (sql native) запрос в Hibernate?
- Для чего нужна поддержка SQL (sql native) запросов в Hibernate?
- Что такое Named SQL Query?
- Каковы преимущества Named SQL Query?
- Как добавить логирование log4j в Hibernate приложение?
- Как логировать созданные Hibernate SQL запросы в лог-файлы?
- Что вы знаете о Hibernate прокси и как это помогает в ленивой загрузке (lazy load)?
- Как управлять транзакциями с помощью Hibernate?
- Что такое каскадные связи (обновления) в Hibernate?
- Какие каскадные типы есть в Hibernate?
- Что такое сесиия и фаблика сессий в Hibernate? Как настроить session factory в конфигурационном файле Spring?
- Как использовать JNDI DataSource сервера приложений с Hibernate Framework?
- Как интегрировать Hibernate и Spring?
- Какие паттерны применяются в Hibernate?
- Расскажите о Hibernate Validator Framework.
- Какие преимущества дает использование плагина Hibernate Tools Eclipse?
Перейти к ответам ►►
Java Persistence API (JPA).
- Что такое JPA?
- Из чего состоит JPA?
- В чем её отличие JPA от Hibernate?
- В чем её отличие JPA от JDO?
- Можно ли использовать JPA c noSQL базами?
- Что такое JPQL (Java Persistence query language) и чем он отличается от SQL?
- Что означает полиморфизм (polymorphism) в запросах JPQL (Java Persistence query language) и как его «выключить»?
- Что такое Criteria API и для чего он используется?
- Что такое Entity?
- Может ли не Entity класс наследоваться от Entity класса?
- Может ли Entity класс наследоваться от других Entity классов?
- Может ли Entity быть абстрактным классом?
- Может ли Entity класс наследоваться от не Entity классов (non-entity classes)?
- Какие требования JPA к Entity классам вы можете перечислить (не менее шести требований)?
- Что такое атрибут Entity класса в терминологии JPA?
- Какие два типа элементов есть у Entity классов. Или другими словами перечислите два типа доступа (access) к элементам Entity классов.
- Какие типы данных допустимы в атрибутах Entity класса (полях или свойствах)?
- Какие типы данных можно использовать в атрибутах, входящих в первичный ключ Entity класса (составной или простой), чтобы полученный первичный ключ мог использоваться для любой базы данных? А в случае автогенерируемого первичного ключа (generated primary keys)?
- Что такое встраиваемый (Embeddable) класс?
- Может ли встраиваемый (Embeddable) класс содержать другой встраиваемый (Embeddable) класс?
- Может ли встраиваемый (Embeddable) класс содержать связи (relationship) с другими Entity или коллекциями Entity? Если может, то существуют ли какие-то ограничение на такие связи (relationship)?
- Какие требования JPA устанавливает к встраиваемым (Embeddable) классам?
- Какие типы связей (relationship) между Entity вы знаете (перечислите восемь типов, либо укажите четыре типа связей, каждую из которых можно разделить ещё на два вида)?
- Что такое Mapped Superclass?
- Какие два типа fetch стратегии в JPA вы знаете?
- Какие три типы стратегии наследования мапинга (Inheritance Mapping Strategies) описаны в JPA?
- Что такое EntityManager и какие основные его функции вы можете перечислить?
- Какие четыре статуса жизненного цикла Entity объекта (Entity Instance’s Life Cycle) вы можете перечислить?
- Как влияет операция merge на Entity объекты каждого из четырех статусов?
- Как влияет операция remove на Entity объекты каждого из четырех статусов?
- Как влияет операция persist на Entity объекты каждого из четырех статусов?
- Как влияет операция refresh на Entity объекты каждого из четырех статусов?
- Как влияет операция detach на Entity объекты каждого из четырех статусов?
- Для чего нужна аннотация Access?
- Для чего нужна аннотация Basic?
- Какой аннотациями можно перекрыть связи (override entity relationship) или атрибуты, унаследованные от суперкласса, или заданные в embeddable классе при использовании этого embeddable класса в одном из entity классов и не перекрывать в остальных?
- Какие аннотации служит для задания класса преобразования basic атрибута Entity в другой тип при сохранении/получении данных их базы (например, работать с атрибутом Entity boolean типа, но в базу сохранять его как число)?
- Какой аннотацией можно управлять кешированием JPA для данного Entity?
- Какой аннотацией можно задать класс, методы которого должен выполнится при определенных JPA операциях над данным Enitity или Mapped Superclass (такие как удаление, изменение данных и т.п.)?
- Для чего нужны callback методы в JPA? К каким сущностям применяются аннотации callback методов? Перечислите семь callback методов (или что тоже самое аннотаций callback методов).
- Какой аннотацей можно исключить поли и свойства Entity из маппинга (property or field is not persistent)?
- Какие аннотации служить для установки порядка выдачи элементов коллекций Entity?
- Какие шесть видов блокировок (lock) описаны в спецификации JPA (или какие есть значения у enum LockModeType в JPA)?
- Какие два вида кэшей (cache) вы знаете в JPA и для чего они нужны?
- Какие есть варианты настройки second-level cache (кэша второго уровня) в JPA или что аналогично опишите какие значения может принимать элемент shared-cache-mode из persistence.xml?
- Как можно изменить настройки fetch стратегии любых атрибутов Entity для отдельных запросов (query) или методов поиска (find), то если у Enity есть атрибут с fetchType = LAZY, но для конкретного запроса его требуется сделать EAGER или наоборот?
- Каким способом можно получить метаданные JPA (сведения о Entity типах, Embeddable и Managed классах и т.п.)?
- Каким способом можно в коде работать с кэшем второго уровня (удалять все или определенные Entity из кеша, узнать закэшировался ли данное Entity и т.п.)?
- В чем разница в требованиях к Entity в Hibernate, от требований к Entity, указанных в спецификации JPA (см. вопрос 10)?
- Какая уникальная стратегия наследования есть в Hibernate, но нет в спецификации JPA?
- Какие основные новые возможности появились в спецификации JPA 2.1 по сравнению с JPA 2.0 (перечислите хотя бы пять-шесть новых возможностей)?
Перейти к ответам ►►
Web services.
- Что такое веб сервисы?
- В чем разница между SOA и web service?
- Что такое SOAP?
- Что такое REST?
- В чем разница между REST и SOAP веб сервисами?
- Как бы вы решили какой из REST или SOAP веб сервисов использовать?
- Объясните понятие WSDL.
- Что такое JAX-WS?
- Расскажите о JAXB.
- Можем ли мы посылать soap сообщения с вложением?
- Что такое MTOM?
- Что такое XOP?
- Объясните элемент SOAP envelope.
- Как определяется пространство имен SOAP?
- Что вы знаете о кодирование в SOAP (encoding)?
- Что определяет атрибут encodingStyle в SOAP?
- Какие два конечных типа веб сервисов используют JAX-WS?
- Какие существую правила для кодирования записи header?
- Что вы знаете об инструменте wsimport?
- Что вы знаете об инструменте wsgen?
- Какие вы можете выделить различия между SOAP и другими техниками удаленного доступа?
Перейти к ответам ►►
JMS.
- Что такое JNDI?
- Что такое JMS?
- Что такое MOM?
- Из каких компонентов состоит архитектура обмена сообщениями?
- Какие модели обмена сообщениями в JMS вы знаете? Опишите их.
- Назовите основные интерфейсы JMX, для чего они предназначены.
- Как выглядит алгоритм создания программ, работающих с JMS?
- Какие стандартные типы сообщений определены JMX?
- Из каких частей JMS сообщение?
- Какие параметры может содержать заголовок сообщения?
- Какие модели подтверждения получения сообщения вы знаете?
Большое Вам человеческое спасибо за вопросы и ответы.:)
ОтветитьУдалитьСпасибо Вам за благодарность. Надеюсь мой блог вам помог, как минимум освежить знания.
УдалитьЧестно, тут сложно переоценить - ну очень отличный и полезный блог. Спасибо большое
ОтветитьУдалитьvlog
Удалить