60 вопросов об Java и Spring, которые вы должны знать

60 вопросов об Java и Spring, которые вы должны знать

Coding


Хороший Java и Spring разработчик всегда востребован. Действительно, в настоящее время в США имеется 29 694 вакансий для разработчиков Java и 16 085 для разработчиков программного обеспечения .Net. Читайте дальше и читайте о самых последних вопросах Java и Spring Interview.


Q1: В чем разница между JDK и JRE?

Тема: Java
сложность: ⭐

Java Runtime Environment (JRE) - это, по сути, виртуальная машина Java (JVM), на которой выполняются ваши Java-программы. Он также включает в себя плагины браузера для запуска апплета. Java Development Kit (JDK) - это полнофункциональный комплект разработки программного обеспечения для Java, включающий в себя JRE, компиляторы и инструменты (такие как JavaDoc и Java Debugger), для того чтобы пользователь мог разрабатывать, компилировать и выполнять приложения Java.

🔗 Источник: github.com/snowdream


Q2: В чем разница между Applet и приложением Java?

Тема: Java
сложность: ⭐

Апплеты выполняются в браузере с поддержкой Java, но Java-приложение - это отдельная Java-программа, которая может выполняться вне браузера. Однако оба они требуют наличия виртуальной машины Java (JVM). 

Кроме того, для запуска приложения Java-приложению требуется метод main с определенной сигнатурой. Java-апплетам не нужен такой метод для запуска.

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

🔗 Источник: github.com/snowdream


Q3: Что такое страница JSP?

Тема: Java
сложность: ⭐

Страница сервера Java(англ. Java Server Page) (JSP) - это текстовый документ, который содержит два типа текста: статические данные и элементы JSP. 

Статические данные могут быть выражены в любом текстовом формате, таком как HTML или XML. 

JSP - это технология, которая смешивает статический контент с динамически генерируемым контентом.

🔗 Источник: github.com/snowdream


Q4: что такое Servlet?

Тема: Java
сложность: ⭐

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

🔗 Источник: github.com/snowdream


Q5: Что такое передача по ссылке и передача по значению?

Тема: Java
сложность: ⭐⭐

Когда объект передается по значению, это означает, что передается копия объекта. Таким образом, даже если в этот объект вносятся изменения, это не влияет на исходное значение. Когда объект передается по ссылке, это означает, что фактический объект не передается, а передается ссылка на объект. Таким образом, любые изменения, сделанные внешним методом, также отражаются во всех местах.

🔗 Источник: github.com/snowdream


Q6: Каковы основные интерфейсы Java Collections Framework?

Тема: Java
сложность: ⭐⭐

Платформа Java Collections Framework предоставляет хорошо разработанный набор интерфейсов и классов, которые поддерживают операции с коллекциями объектов. Основными интерфейсами, которые находятся в Java Collections Framework, являются:

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

🔗 Источник: github.com/snowdream


Q7: Какие различия существуют между HashMap и Hashtable?

Тема: Java
сложность: ⭐⭐

Оба класса HashMap и Hashtable реализуют интерфейс Map и, таким образом, имеют очень похожие характеристики. Однако они отличаются следующими характеристиками:

  • HashMap допускает существование нулевых ключей и значений, в то время как Hashtable не допускает ни нулевых ключей, ни нулевые значения.
  • Hashtable синхронизируется, в то время как HashMap не является. Таким образом, HashMap предпочтителен в однопоточных средах, в то время как Hashtable подходит для многопоточных сред.
  • HashMap предоставляет свой набор ключей и приложение Java может перебирать их. Таким образом, HashMap является отказоустойчивым. С другой стороны, Hashtable предоставляет Перечисление своих ключей.
  • Класс Hashtable считается устаревшим классом.

🔗 Источник: github.com/snowdream


Q8: Что делают методы System.gc () и Runtime.gc ()?

Тема: Java
сложность: ⭐⭐

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

🔗 Источник: github.com/snowdream


Q9: В чем разница между исключением и ошибкой в ​​Java?

Тема: Java
сложность: ⭐⭐

Классы Exception и Error являются подклассами класса Throwable .  Класс Exception используется для исключительных условий, которые должна поймать пользовательская программа. Класс Error определяет исключения, которые не исключаются для перехвата пользовательской программой.

🔗 Источник: github.com/snowdream


Q10: Что такое апплет Java?

Тема: Java
сложность: ⭐⭐

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

🔗 Источник: github.com/snowdream


Q11: что такое JDBC?

Тема: Java
сложность: ⭐⭐

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

🔗 Источник: github.com/snowdream


Q12: Как обрабатываются запросы JSP?

Тема: Java
сложность: ⭐⭐

По прибытии запроса JSP браузер сначала запрашивает страницу с расширением .jsp. Затем веб-сервер считывает запрос и, используя JSP-компилятор, веб-сервер преобразует страницу JSP в класс сервлета. Обратите внимание, что файл JSP компилируется только по первому запросу страницы или если файл JSP изменился. Сгенерированный класс сервлета вызывается для обработки запроса браузера. Как только выполнение запроса закончено, сервлет отправляет ответ клиенту. Посмотрите, как получить параметры запроса в JSP .

🔗 Источник: github.com/snowdream


Q13: что такое декаларации?

Тема: Java
сложность: ⭐⭐

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

🔗 Источник: github.com/snowdream


Q14: Каковы преимущества использования Spring?

Тема: Spring
сложность: ⭐⭐

Ниже приведен список немногих значительных преимуществ использования Spring Framework:

  • Легкий вес - Spring легкий, когда дело доходит до размера и прозрачности. Базовая версия Spring Framework составляет около 2 МБ.
  • Инверсия управления (IOC) - слабое сцепление достигается весной с использованием техники Inversion of Control. Объекты дают свои зависимости вместо создания или поиска зависимых объектов.
  • Аспектно-ориентированный (AOP) - Spring поддерживает Аспектно-ориентированное программирование и обеспечивает целостную разработку, отделяя бизнес-логику приложения от системных служб.
  • Контейнер - Spring содержит и управляет жизненным циклом и конфигурацией объектов приложения.
  • MVC Framework - веб-фреймворк Spring представляет собой хорошо спроектированный веб-фреймворк MVC, который предоставляет отличную альтернативу веб-фреймворкам, таким как Struts или другим перегруженным или менее популярным веб-фреймворкам.
  • Управление транзакциями - Spring предоставляет согласованный интерфейс управления транзакциями, который может масштабироваться до локальной транзакции (например, с использованием одной базы данных) и масштабироваться до глобальных транзакций (например, с использованием JTA).
  • Обработка исключений - Spring предоставляет удобный API для преобразования специфичных для технологии исключений (например, JDBC, Hibernate или JDO) в согласованные, непроверенные исключения.

🔗 Источник: tutorialspoint.com


Q15: Что такое Spring beans

Тема: Spring
сложность: ⭐⭐

Объекты, которые 

Объекты, которые образуют основу вашего приложения и управляются контейнером Spring IoC, называются bean-компонентами . Бин - это объект, который создается, собирается и иным образом управляется контейнером Spring IoC. Эти компоненты создаются с помощью метаданных конфигурации, которые вы предоставляете контейнеру, например, в форме <bean/>определений XML .

🔗 Источник: tutorialspoint.com


Q16: Что поддерживает ORM Spring?

Тема: Spring
сложность: ⭐⭐

Spring поддерживает следующие ORM:

  • зимовать
  • Ibatis
  • JPA (Java Persistence API)
  • TopLink
  • JDO (объекты данных Java)
  • OJB

🔗 Источник: tutorialspoint.com


Q17: Что такое Spring Security?

Тема: Spring
сложность: ⭐⭐

Spring Security - это отдельный модуль среды Spring, который фокусируется на предоставлении методов аутентификации и авторизации в приложениях Java. Он также заботится о большинстве распространенных уязвимостей безопасности, таких как CSRF-атаки.

Чтобы использовать Spring Security в веб-приложениях, вы можете начать с простой аннотации: @EnableWebSecurity .

🔗 Источник: developersbook.com


Q18: Что такое круговая очередь и почему вы будете ее использовать?

Тема:  структур данных
Сложность: ⭐⭐⭐

Циклическая очередь - это линейная структура данных, в которой операции выполняются на основе принципа FIFO (First In First Out), а последняя позиция соединяется обратно с первой позицией, чтобы образовать круг. Он также называется кольцевым буфером . Циклическая очередь позволяет избежать потери пространства в обычной реализации очереди с использованием массивов.

🔗 Источник: programiz.com


Q19: Что означает «программировать на интерфейсы, а не на реализации»?

Тема:  проектирования шаблонов
Сложность: ⭐⭐⭐

Кодирование по интерфейсу означает, что клиентский код всегда содержит объект интерфейса, предоставленный фабрикой .

Любой экземпляр, возвращаемый фабрикой, будет иметь тип Interface, который должен быть реализован любым классом-кандидатом фабрики. Таким образом, клиентская программа не беспокоится о реализации, и сигнатура интерфейса определяет, какие все операции могут быть выполнены.

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

🔗 Источник: tutorialspoint.com


Q20: Что такое шаблон наблюдателя?

Тема:  проектирования шаблонов
Сложность: ⭐⭐⭐

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

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

Шаблон Observer использует два класса актеров:

  • Абстрактный класс Observer (os Subscriber) предоставляет update()метод, который субъект будет вызывать для уведомления об изменении состояния субъекта.
  • Класс Предмет (или издатель) также является абстрактным классом и определяет четыре основных метода: attach()detach()setState(), иnotify()


🔗 Источник: sitepoint.com


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

Тема: Java
сложность: ⭐⭐⭐

Статическая переменная в Java принадлежит ее классу, и ее значение остается одинаковым для всех ее экземпляров. Статическая переменная инициализируется, когда класс загружается JVM. Если ваш код пытается получить доступ к нестатической переменной без какого-либо экземпляра, компилятор будет жаловаться, потому что эти переменные еще не созданы и они не связаны ни с одним экземпляром.

🔗 Источник: github.com/snowdream


Q22: Java поддерживает множественное наследование?

Тема: Java
сложность: ⭐⭐⭐

Нет, Java не поддерживает множественное наследование. Каждый класс может расширяться только на один класс, но может реализовывать более одного интерфейса.

🔗 Источник: github.com/snowdream


Q23: Объясните различные способы создания потока.Какой из них вы бы предпочли и почему?

Тема: Java
сложность: ⭐⭐⭐

Для создания потока можно использовать три способа :

  • Класс может расширять класс Thread .
  • Класс может реализовывать интерфейс Runnable .
  • Приложение может использовать платформу Executor для создания пула потоков.

Предпочтительным является интерфейс Runnable , так как он не требует, чтобы объект наследовал класс Thread . Если ваш дизайн приложения требует множественного наследования, вам могут помочь только интерфейсы. Кроме того, пул потоков очень эффективен и может быть легко реализован и использован.

🔗 Источник: github.com/snowdream


Q24: что за deadlock?

Тема: Java
сложность: ⭐⭐⭐

Условие, которое возникает, когда два процесса ждут завершения друг друга , прежде чем продолжить. В результате оба процесса ждут бесконечно.

🔗 Источник: github.com/snowdream


Q25: Какая разница между fail-fast и fail-safe?

Тема: Java
сложность: ⭐⭐⭐

В итераторе отказоустойчивого свойство работает с клоном основной коллекции и , таким образом, она не зависит от каких - либо изменений в коллекции. Все классы коллекции в пакете java.util отказоустойчивы, а классы коллекции в java.util.concurrent являются отказоустойчивыми. Отказоустойчивые итераторы генерируют исключение ConcurrentModificationException , в то время как отказоустойчивый итератор никогда не генерирует такое исключение.

🔗 Источник: github.com/snowdream


Q26: Что такое Java Priority Queue?

Тема: Java
сложность: ⭐⭐⭐

PriorityQueue неограниченная очередь, на основе приоритета кучи и его элементы упорядочены в их естественном порядке. Во время его создания мы можем предоставить Comparator, который отвечает за упорядочивание элементов PriorityQueue . PriorityQueue не допускает нулевые значения, те объекты , которые не обеспечивают естественный порядок, или те объекты , которые не имеют какой - либо компаратор , связанный с ними. Наконец, Java PriorityQueue не является поточно-ориентированным и требует времени O (log (n)) для своих операций увлечения и удаления.

🔗 Источник: github.com/snowdream


Q27: Когда вызывается finalize ()? Какова цель завершения?

Тема: Java
сложность: ⭐⭐⭐

Метод finalize вызывается сборщиком мусора непосредственно перед освобождением памяти объекта. Обычно рекомендуется освобождать ресурсы, удерживаемые объектом внутри метода finalize.

🔗 Источник: github.com/snowdream


Q28: Что такое структура Java Heap?

Тема: Java
сложность: ⭐⭐⭐

JVM имеет кучу, которая является областью данных времени выполнения, из которой выделяется память для всех экземпляров классов и массивов. Он создается при запуске JVM. Память кучи для объектов восстанавливается автоматической системой управления памятью, которая называется сборщиком мусора. Память кучи состоит из живых и мертвых объектов. Живые объекты доступны приложению и не будут предметом сборки мусора. Мертвые объекты - это те, которые никогда не будут доступны приложению, но еще не собраны сборщиком мусора. Такие объекты занимают пространство динамической памяти до тех пор, пока они не будут собраны сборщиком мусора.

🔗 Источник: github.com/snowdream


Q29: Какие ограничения наложены на апплеты Java?

Тема: Java
сложность: ⭐⭐⭐

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

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

🔗 Источник: github.com/snowdream


Заметили ошибку или есть вопросы?Рассказывай нам о них,связаться с нами ты сможешь с помощью нашего чата или же с помощью бота обратной связь


Не забывайте ставить 👍 если вам понравилась и подписаться на канал,а так же посетить наш чат.







Report Page