130+ лучших вопросов и ответов на собеседованиях по Java 2022
Опубликовано: 2021-01-01Вопросы и ответы на собеседовании по Java
В этой статье мы собрали наиболее часто задаваемые вопросы на собеседовании по Java. Эти вопросы познакомят вас с типами вопросов, которые интервьюер может задать вам во время собеседования по программированию на Java.
Как первокурсник, вы либо только что посетили собеседование, либо планируете посетить его в ближайшее время. Если вы ищете работу начального уровня и хотите развивать свою карьеру в области программирования, вы можете нервничать по поводу предстоящих собеседований . У всех нас бывают моменты паники, когда мы теряем сознание и можем даже забыть, что такое нить. Мы упростим это для вас, все, что вам нужно сделать, это сделать глубокий вдох и проверить вопросы, которые, скорее всего, будут заданы.
Вы не можете избежать паники, но вы определенно можете подготовиться к этому, когда войдете в комнату для интервью. Вы уверены в себе и знаете, что справитесь со всем, что может бросить вам интервьюер.
Изучайте программы разработки программного обеспечения онлайн в лучших университетах мира. Участвуйте в программах Executive PG, Advanced Certificate Programs или Master Programs, чтобы ускорить свою карьеру.
Вот скомпилированный список из 24 исчерпывающих вопросов для собеседования по Java с ответами (последние 2022 г.), которые помогут вам обрести уверенность и гарантировать, что вы пройдете собеседование.
1. Из чего состоит JVM?
JVM, сокращение от Java Virtual Machine, требуется любой системе для запуска Java-программ. Его архитектура в основном состоит из:
● Загрузчик классов: это подсистема JVM, и ее основная функция заключается в загрузке файлов классов при каждом запуске программы Java.
● Куча: это данные времени выполнения, которые используются для размещения объектов.
● Область класса: содержит уровень класса каждого файла класса, например, статические переменные, метаданные и постоянный пул выполнения.
● Стек: используется для хранения временных переменных.
● Регистр: регистр содержит адрес выполняемой в данный момент инструкции JVM.
● Механизм выполнения: EE состоит из виртуального процессора, интерпретатора, который выполняет инструкции после чтения байт-кода, и JIT-компилятора, повышающего производительность при низкой скорости выполнения.
● Собственный интерфейс Java: действует как средство связи для взаимодействия с другим приложением, разработанным на C, C++ и т. д.

2. Что такое объектно-ориентированное программирование? Является ли Java объектно-ориентированным языком?
По сути, объектно-ориентированное программирование — это парадигма программирования, основанная на концепции объектов. Проще говоря, объекты — это контейнеры — они содержат данные в виде полей и код в виде процедур. Следуя этой логике, объектно-ориентированный язык — это язык, который работает с объектами и процедурами.
Поскольку в Java используются 8 примитивных типов данных — boolean, byte, char, int, float, long, short, double — которые не являются объектами, Java нельзя считать полностью объектно-ориентированным языком.
3. Что вы понимаете под агрегацией в контексте Java?
Агрегация — это форма ассоциации, в которой каждому объекту назначается собственный жизненный цикл. Но в этом есть право собственности, и дочерний объект не может каким-либо образом принадлежать какому-либо другому родительскому объекту.
4. Назовите суперкласс в Java.
Java.язык. Все различные непримитивы прямо или косвенно наследуются от этого класса.
5. Объясните разницу между «finally» и «finalize» в Java?
Используемый с блоком try-catch, блок «finally» используется для обеспечения того, чтобы конкретный фрагмент кода всегда выполнялся, даже если выполнение было вызвано блоком try-catch.
Напротив, finalize() — это специальный метод в классе объектов. Обычно переопределяется освобождение системных ресурсов при сборе мусора из объекта.
6. Что такое анонимный внутренний класс? Чем он отличается от внутреннего класса?
Любой локальный внутренний класс, не имеющий имени, называется анонимным внутренним классом. Поскольку у него нет имени, невозможно создать его конструктор. Он всегда либо расширяет класс, либо реализует интерфейс, и определяется и создается в одном операторе.
Нестатический вложенный класс называется внутренним классом. Внутренние классы связаны с объектами класса и имеют доступ ко всем методам и переменным внешнего класса.
7. Что такое системный класс?
Это основной класс в Java. Поскольку класс является окончательным, мы не можем переопределить его поведение посредством наследования. Мы также не можем создать экземпляр этого класса, поскольку он не предоставляет никаких общедоступных конструкторов. Следовательно, все его методы являются статическими.
8. Как создать поток демона в Java?
Мы используем класс setDaemon(true) для создания этого потока. Мы вызываем этот метод перед методом start(), иначе мы получим исключение IllegalThreadStateException.
9. Поддерживает ли Java глобальные переменные? Почему, почему нет?
Нет, Java не поддерживает глобальные переменные. В первую очередь это связано с двумя причинами:
● Они создают коллизии в пространстве имен.
● Они нарушают ссылочную прозрачность.
10. Как разрабатывается объект RMI?
Для разработки объекта RMI можно предпринять следующие шаги:
● Определите интерфейс
● Реализовать интерфейс
● Скомпилируйте интерфейс и его реализации с помощью компилятора Java.
● Скомпилируйте реализацию сервера с помощью компилятора RMI.
● Запустить реестр RMI
● Запустить приложение
11. Объясните разницу между квантованием времени и упреждающим планированием?
В случае временного среза задача выполняется в течение определенного периода времени, также называемого срезом. После этого он попадает в очередь готовности — пул «готовых» задач. Затем планировщик выбирает следующую задачу для выполнения на основе приоритета и других факторов.
Принимая во внимание, что при упреждающем планировании задача с наивысшим приоритетом выполняется либо до тех пор, пока она не перейдет в состояние ожидания или предупреждения, либо если появится другая задача с более высоким приоритетом.
12. Что за поток сборщика мусора?
Это поток демона.
13. Каков жизненный цикл потока в Java?
Любой поток в Java проходит следующие стадии своего жизненного цикла:
● Новый
● Запускаемый
● Бег
● Не работает (заблокирован)
● Прекращено
14. Укажите методы, используемые в процессе десериализации и сериализации.
ObjectInputStream.readObject
Читает файл и десериализует объект.
ObjectOutputStream.writeObject
Сериализуйте объект и запишите сериализованный объект в файл.
15. Что такое volatile переменные и каково их назначение?
Изменчивые переменные — это переменные, которые всегда считываются из основной памяти, а не из кэш-памяти потока. Они обычно используются во время синхронизации.
16. Что такое классы-оболочки в Java?
Все примитивные типы данных в Java имеют связанный с ними класс, известный как классы-оболочки. Они известны как классы-оболочки, потому что они «обертывают» примитивный тип данных в объект для класса. Короче говоря, они преобразуют примитивы Java в объекты.
17. Как мы можем сделать одноэлементный класс?
Сделав его конструктор закрытым.
18. Каковы важные методы класса Exception в Java?
● строка getMessage()
● строка toString()
● аннулировать printStackTrace()
● синхронизированный Throwable getCause()
● public StackTraceElement[] getStackTrace()
19. Как мы можем создать поток в Java?
Мы можем использовать любой из двух способов создания потока в Java:
● Путем расширения класса потока
Недостатком этого метода является то, что мы не можем расширять какие-либо другие классы, так как класс потока уже расширен.
● Путем реализации интерфейса Runnable
20. Объясните разницу между методами get() и load().
Методы get() и load() имеют следующие отличия:
● get() возвращает null, если объект не найден, тогда как load() создает исключение ObjectNotFound.
● get() всегда возвращает реальный объект, тогда как load() возвращает прокси-объект.
● Метод get() всегда обращается к базе данных, а метод load() — нет.
● get() следует использовать, если вы не уверены в существовании экземпляра, тогда как load() следует использовать, если вы уверены, что экземпляр существует.
21. Каково значение по умолчанию для локальных переменных?
Они не инициализируются каким-либо значением по умолчанию. Ни примитивы, ни ссылки на объекты.
22. Что такое синглтон в Java?
Это класс с одним экземпляром во всем приложении Java. Например, java.lang.Runtime — это класс Singleton. Основная цель Singleton — контролировать создание объекта, сохраняя приватный конструктор.
23. Что такое статический метод?
Статический метод можно вызывать без необходимости создания экземпляра класса. Статический метод принадлежит классу, а не объекту класса. Статический метод может получить доступ к статическому члену данных и может изменить его значение.
24. Какое исключение?
Исключения Необычные условия во время программы. Это может быть связано с неправильной логикой, написанной неправильным вводом данных пользователем или программистом.
25. Проще говоря, как бы вы определили Java?
Java — это высокоуровневый, независимый от платформы, объектно-ориентированный портал, предлагающий высокопроизводительную поддержку для создания сложных программ, приложений и веб-сайтов. Java — это язык программирования общего назначения, который позволяет разработчикам создавать приложения с широкими функциональными возможностями в среде WORA (WORA). Джеймс Артур Гослинг, ученый-компьютерщик из Канады, разработал Java в 1991 году и широко известен как «Доктор Java». Сегодня Java стала важной основой современной ИТ-индустрии.
26 . Что такое пул строк Java?
Пул строк в Java — это отдельное место, в котором есть пул строк, хранящихся в памяти кучи Java. Здесь String представляет специальный класс в Java, и строковые объекты могут быть созданы либо с помощью оператора new, либо с использованием значений в двойных кавычках.
Строка является неизменной в Java, что делает возможным создание пула строк, а затем дальнейшую реализацию с помощью концепций интернирования строк.
27. Что такое класс коллекции в Java? Перечислите его методы и интерфейсы?
Классы коллекций Java — это специальные классы, которые используются исключительно со статическими методами, работающими специально с возвращаемыми коллекциями. Коллекция Java по умолчанию наследует класс и имеет две важные функции, такие как:
- Они поддерживают и работают с полиморфными алгоритмами, которые возвращают новые коллекции для каждой конкретной коллекции.
- Методы в коллекции Java вызывают исключение NullPointerException, если объекты класса или коллекции имеют значение Null.
Они представлены и объявлены как Java.util.Collectionclass.
Существует более 60 методов, модификаторов и типов классов Java Collection. Вот список самых важных методов в Java Collection Class:
С. Нет. | Модификатор, метод и тип | Описание |
1. | статический <T> логический addAll() | Этот метод позволяет добавлять определенные элементы в конкретную коллекцию. |
2. | статическая очередь <T> <T> asLifoQueue() | Этот метод позволяет отображать коллекцию в порядке «последний пришел — первый ушел» (LIFO). |
3. | статический <T> int binarySearch() | Этот метод позволяет искать определенный объект, а затем возвращает его в отсортированном списке. |
4. | статическая коллекция <E> <E> | Этот метод возвращает динамическое представление из любой конкретной коллекции. |
5. | статический <E> Список <E> | Этот метод возвращает динамическое представление безопасного типа из определенного списка. |
Вот несколько примеров для коллекции Java:
Пример коллекции Java min():
1 2 3 4 5 6 7 8 9 10 11 12 | импортировать java.util.* ; открытый класс CollectionsExample { public static void main ( String a []){ Список < Целое число > список = новый ArrayList < Целое число >(); список . добавить ( 90 ); список . добавить ( 80 ); список . добавить ( 76 ); список . добавить ( 58 ); список . добавить ( 12 ); Система . вне . println ( " Минимальное значение элемента в коллекции: " + Collections.min ( list )); } } |
Вывод будет:
Минимальное значение элемента в коллекции: 12 |
Пример коллекции Java max():
1 2 3 4 5 6 7 8 9 10 11 12 | импортировать java.util.* ; открытый класс CollectionsExample { public static void main ( String a []){ Список < Целое число > список = новый ArrayList < Целое число >(); список . добавить ( 90 ); список . добавить ( 80 ); список . добавить ( 76 ); список . добавить ( 58 ); список . добавить ( 12 ); Система . вне . println ( " Максимальное значение элемента в коллекции: " + Collections .max ( list )); } } |
Вывод будет:
Максимальное значение элемента в коллекции: 90 |
28 . Что такое сервлет?
Сервлеты — это программные компоненты Java, которые добавляют дополнительные возможности серверу Java с помощью технологии, API, интерфейса, класса или любого веб-развертывания. Сервлеты работают специально на серверах веб-приложений на базе Java и способны обрабатывать сложные запросы от веб-сервера. Сервлеты повышают производительность, надежность, масштабируемость, переносимость и обеспечивают безопасность приложений Java.
Процесс или выполнение сервлета:
- Это начинается, когда пользователь отправляет запрос из веб-браузера.
- Веб-сервер получает и затем передает этот запрос определенному сервлету.
- Затем сервлет обрабатывает этот запрос, чтобы получить конкретный ответ с выводом.
- Затем сервлет отправляет этот ответ обратно на веб-сервер.
- Затем веб-сервер получает информацию, которую браузер отображает на экране.
Сервлеты Java поставляются с несколькими классами и интерфейсами, такими как GenericServlet, ServletRequest, Servlet API, HttpServlet, ServeResponse и т. д.
29. Что такое диспетчер запросов?
В сервлете RequestDispatcher действует как интерфейс для определения объекта для получения запросов от клиентов с одной стороны и последующей отправки его на определенные ресурсы с другой стороны (это может быть сервлет, HTML, JSP). Этот RequestDispatcher имеет два метода:
void forward (запрос ServletRequest, ответ ServletResponse) | Это позволяет и перенаправляет запросы от любого сервлета к ресурсам сервера в форме сервлета, файла HTML или файла JSP. |
void include (запрос ServletRequest, ответ ServletResponse) | Это содержит содержимое для определенного ресурса в форме ответа, такого как файл HTML, страница JSP или сервлет. |
30. Каков жизненный цикл сервлета?
Сервлет — это программный компонент Java, основная функция которого состоит в том, чтобы сначала принять запрос, затем обработать запрос и дать ответ пользователю на HTML-странице. Здесь Servlet Container управляет жизненным циклом сервлета. Вот основные этапы:
- Загрузка сервлета.
- Затем инициализируем сервлет.
- Обработка запроса (вызов метода службы).
- Затем уничтожить сервлет.
Вот краткая диаграмма, показывающая жизненный цикл сервлета Java:
Источник
- Загрузка сервлета
Жизненный цикл сервлета начинается с этапа загрузки в контейнер сервлета. Сервлет загружается одним из двух способов:
- Установка сервлета как положительное или нулевое целочисленное значение.
- Во-вторых, этот процесс может иметь задержки, так как контейнер выбирает правильный сервлет для обработки запроса.
Теперь контейнеры сначала загружают класс Servlet, а затем создают экземпляр с помощью конструктора без аргументов.
- Инициализация сервлета
Следующим шагом является использование метода Servlet.init(ServletConfig) для инициализации сервлета, например, источника данных JDBC.
- Обработка запроса (вызов метода службы)
Здесь сервлет принимает запросы клиентов и выполняет требуемую операцию, используя метод service().
- Уничтожение сервлета
Теперь контейнер Servlet уничтожает сервлет, выполняя и завершая определенные задачи и вызывая метод destroy() в экземпляре.
31. Какие существуют методы управления сеансом в сервлетах?
Сеансы отслеживают действия пользователя после входа на сайт. Управление сеансом обеспечивает механизм получения информации для каждого независимого пользователя. Вот четыре различных метода управления сеансом в сервлетах:
- HttpSession
- Печенье
- Перезапись URL
- HTML Скрытое поле
32. Что такое драйвер JDBC?
Связь с базой данных Java (JDBC) здесь действует как программный компонент, который позволяет Java-приложениям взаимодействовать с базой данных.
Драйверы JDBC в среде имеют следующие четыре типа:
- Драйвер моста JDBC-ODBC
- Драйвер сетевого протокола (драйвер промежуточного ПО)
- Драйвер протокола базы данных (полностью драйвер Java)
- Драйвер собственного API
33. Что такое интерфейс соединения JDBC?
Соединения определяют сеансы между базой данных и Java-приложениями. Интерфейс JDBC Connection является частью пакета java.sql и предоставляет информацию о сеансе для конкретной базы данных. Они представляют несколько операторов SQL для выполнения и результатов в контексте одного интерфейса соединения. Вот основные методы интерфейса Connections:
- createStatement() : для создания определенного объекта оператора для добавления операторов SQL в конкретную базу данных.
- setAutoCommit (логический статус) : чтобы определить связь режима фиксации с директивой false или true.
- commit() : Это делает все изменения из последней фиксации и дополнительно освобождает любую базу данных, которая в настоящее время хранится в конкретном объекте Connection.
- rollback() : отменяет или откатывает все изменения, сделанные в прошлой или текущей транзакции, а также освобождает текущую базу данных в объекте подключения.
- close() : завершает или закрывает текущее соединение, а также мгновенно освобождает или очищает ресурсы JDBC.
34. Назовите различные модули среды Spring?
В фреймворке Spring есть несколько модулей:
- Веб-модуль
- Модуль Struts
- Модуль сервлета
- Модуль основного контейнера
- Аспектно-ориентированное программирование (АОП)
- Модуль контекста приложения
- Модуль инфраструктуры MVC
- Абстракция JDBC и модуль DAO
- модуль ОХМ
- Модуль языка выражений
- Модуль транзакций
- Модуль службы обмена сообщениями Java (JMS)
- Модуль интеграции ORM
Эти модули представлены в группах:
Источник
35. Объясните Bean in Spring и перечислите различные области действия Spring bean.
Компоненты — это одна из фундаментальных концепций среды Spring для эффективного управления структурами. В простом определении Spring Bean представляет контейнеры IoC, которые управляют объектом, формирующим основу приложений.
Сферы применения Spring Bean:
Области играют решающую роль в эффективном использовании компонентов Spring в приложении. Scope помогает нам понять жизненный цикл Spring Bean, и они бывают следующих типов .
С. Нет. | Объем и описание |
1. | Singleton — по умолчанию область действия bean-компонента Spring имеет область singleton, которая представляет только один экземпляр контейнера Spring IOC. Этот же объект используется совместно для каждого запроса. |
2. | Прототип — в этом случае будет вызываться и создаваться новый экземпляр для каждого отдельного определения bean-компонента каждый раз, когда делается запрос для определенного bean-компонента. |
3. | Запрос — в этой области будет вызываться и создаваться один компонент для каждого HTTP-запроса для этого конкретного компонента. |
4. | Сессия — эта область определяет использование одного компонента для жизненного цикла в конкретном глобальном HTTP-сеансе. |
5. | Global-session — эта область позволяет реализовать один bean-компонент для конкретного жизненного цикла в глобальном HTTP-сеансе. |
Примечание. Последние три области применимы только в веб-контексте Spring ApplicationContext.
Обязательно к прочтению: почему Java так популярен среди разработчиков
36. Объясните роль DispatcherServlet и ContextLoaderListener.
При настройке конфигурации Spring MVC на основе XML в файле web.xml два объявления DispatcherServlet и ContextLoaderListener играют важную роль в дополнении цели платформы.
- ДиспетчерСервлет –
DispatcherServlet имеет основную цель для управления входящими веб-запросами для определенных соответствующих сконфигурированных шаблонов URI. DispatcherServlet действует как передний контроллер для ядра приложения Spring MVC и специально загружает файл конфигурации, а затем инициализирует нужные компоненты, присутствующие в этом файле. А когда аннотации включены, он также может проверять и сканировать конфигурации и пакеты для всех аннотаций @Repository, @Component, @Service или @Controller.
- ContextLoaderListener —
ContextLoaderListener здесь действует как прослушиватель запросов для запуска и закрытия корневого WebApplicationContext. Таким образом, он создает и совместно использует контекст корневого приложения с дочерними контекстами посредством контекстов DispatcherServlet. Приложения могут использовать только одну запись для ContextLoaderListener в файле web.xml.
37. Объясните архитектуру Hibernate.
Hibernate определяет многоуровневую архитектуру, которая позволяет пользователям работать и работать, не зная базовых API, т. е. Hibernate действует как платформа для создания и разработки логики сохраняемости, независимой от программного обеспечения базы данных.
Архитектура Hibernate имеет четыре основных уровня:
- Уровень приложения Java
- Уровень базы данных
- Серверный уровень API
- Слой каркаса гибернации
Элементы архитектуры Hibernate
Существует несколько аспектов и областей применения архитектуры Hibernate. Чтобы узнать о них больше, вы должны знать об элементах архитектуры Hibernate.
- SessionFactory: Sessionfactory предоставляет метод для создания объектов сеанса, которые присутствуют только в пакете org.hiberate. Он по своей природе потокобезопасен, неизменен, содержит и сохраняет кэш данных второго уровня.
- Сеанс: объекты сеанса предоставляют интерфейс для программного обеспечения Connection и базы данных через инфраструктуру гибернации.
- Транзакция: интерфейс, который помогает управлять транзакциями и позволяет вносить изменения в базу данных.
- ConnectiveProvider: часть соединений JDBC, отделяющая основное приложение от DataSource или DriverManager.
- TransactionFactory: представляет фабрику транзакции.
38. Что такое иерархия исключений в Java?
Исключение определяет нежелательные события, возникающие во время запуска или выполнения программы. Исключение нарушает нормальный ход программы.
Иерархия исключений является частью класса java.lang.Exception и относится только к основному классу Throwable. Другой подкласс Error также представляет класс Throwable в Java. Хотя Ошибки являются необычными условиями в случае сбоя, тем не менее они не обрабатываются и не удаляются с помощью программ Java.
Есть два основных подкласса для исключительной иерархии в Java с классом RuntimeException и классом IOCException.
39. Что такое синхронизация?
Синхронизация в Java определяет возможность управления и контроля доступа нескольких потоков к определенному ресурсу. Таким образом, один поток может получить доступ к определенному ресурсу в настоящее время. Здесь Java позволяет разрабатывать потоки, а затем синхронизировать задачи через синхронизирующие блоки.
Эти синхронизированные блоки допускают выполнение только одного потока в определенное время и блокируют другие потоки до тех пор, пока текущий поток не завершится в блоке. Здесь концепция мониторов имеет решающее значение для реализации синхронизации в Java. Как только поток переходит в фазу блокировки, считается, что он входит в монитор. Таким образом, блокируются все остальные потоки, если только первый поток не вышел из монитора.
40. Какие особенности делают Java одним из лучших языков программирования?
Вот основные функции, которые делают Java отправной точкой для вашего обучения в мире программирования:
- Простота: Java довольно прост в изучении и написании. Синтаксис Java написан на C++, что позволяет разработчикам без проблем писать программы.
- OOPS: Java основана на системе объектно-ориентированного программирования (OOPS), что позволяет создавать код на нескольких типах объектов с разными данными и поведением.
- Динамический: Java — это полный динамический язык, поддерживающий загрузку динамических классов в любое время и в любом месте. И он также имеет всестороннюю поддержку собственного языка кода, такого как C, C++ и т. д.
- Независимость от платформы: Java также поддерживает эксклюзивный и независимый от платформы язык программирования, что позволяет разработчикам запускать свои программы только на своей платформе.
- Портативность: в Java реализован подход «однажды пиши где угодно», который позволяет запускать код на любой платформе.
- Безопасность: следуя концепции ByteCode, обработке исключений и отсутствию использования каких-либо явных указателей, Java является высокозащищенной средой.
Java также независима от архитектуры и не зависит ни от какой архитектуры. Надежное управление памятью и автоматизированная сборка мусора делают его среду более надежной.
41. Что позволяет Java обеспечивать высокую производительность?
Использование компилятора Just in Time (JIT) в его архитектуре делает Java одним из высокопроизводительных языков программирования, поскольку он преобразует инструкции в байт-коды.
42. Назовите самые популярные Java IDE.
В отрасли доступно множество IDE для Java. Вот пять лучших Java IDE, которые вы можете использовать, чтобы начать изучать этот язык программирования уже сегодня:
- Затмение
- NetBeans
- IntelliJ
- JDeveloper
- Мое затмение
43. Определите основные отличия Java от других платформ?
Два основных отличия, которые отличают Java от других платформ:
- Java — это прежде всего программная платформа, в то время как другие могут быть как программными, так и аппаратными платформами.
- Java запускается или выполняется на любой аппаратной платформе, в то время как другие требуют определенных аппаратных требований.
44. Почему Java имеет характер «написал один раз и работает где угодно» (WORA)?
Что ж, односложный ответ — байт-код. Компилятор Java преобразует все программы Java в определенный байт-код, выступая в качестве языка-посредника между машинным кодом и исходным кодом. ByteCode может работать на любом компьютере и не зависит от платформы.
45. Объясните различные типы спецификаторов доступа, используемые в Java.
В языке программирования Java спецификаторы доступа представляют точную область действия класса, переменной или метода. Существует четыре основных спецификатора доступа:
- Общедоступные определенные переменные, методы или классы доступны для любого метода или класса.
- Спецификатор защищенного доступа определяет область действия класса, метода и переменной в том же пакете, в том же классе или в конкретном подклассе класса.
- Область по умолчанию существует для всех существующих классов, переменных и методов с доступом только к пакету.
- Область Private сохраняет доступ к классу, переменным и методам только к определенному классу.
Читайте: Проект Java Swing
46. Объясните значение пакетов в Java вместе с их преимуществами.
Пакеты — это механизм группировки схожих типов (интерфейсов, классов, аннотаций и перечислений), обеспечивающий защиту активов и комплексное управление именами.
Вот преимущества пакетов в Java:
- Пакеты помогают нам предотвратить конфликты имен, когда классы с одинаковыми именами существуют в двух разных пакетах.
- Пакеты помогают систематически контролировать доступ.
- Создайте скрытые классы, которые будут использоваться пакетами.
- Помогает найти связанные классы для пакета.
47. Как бы вы определили конструктор в Java?
Конструкторы — это специальный блок кодов, который инициализирует объект в момент создания. Хотя он и похож на метод экземпляра, тем не менее конструкторы не являются методом, поскольку они не имеют явного возвращаемого типа. Таким образом, каждый раз, когда объект создается в системе, для его выполнения вызывается один конструктор. Если конструктор не определен, компилятор использует конструктор по умолчанию.
Вот простое представление Constructor в Java:
1 2 3 4 5 6 | открытый класс MyClass { //Это конструктор МойКласс (){ } .. } |
48. Какие типы конструкторов используются в Java?
В Java используются три типа конструкторов:
- Конструктор по умолчанию: когда разработчик не использует конструктор, компилятор Java добавляет более конкретный конструктор по умолчанию, существующий в файле .class.
- Конструктор без аргументов: в этом случае в конструкторе нет аргументов, и компилятор не принимает никаких параметров, поскольку метод переменной экземпляра инициализируется с определенными фиксированными значениями.
- Параметризованный конструктор: в этом случае в конструкторе присутствует один или несколько параметров, записанных только внутри круглых скобок основного элемента.
49. В чем разница между конструкторами и методами?
Основное различие в конструкторах и методах:
- Цель: цель конструкторов — инициализировать объект класса, тогда как метод выполняет определенные задачи при выполнении кода.
- Метод имеет возвращаемые типы, а конструкторы — нет.
- В методах есть абстрактные, статические, окончательные и синхронизирующие, а в конструкторах нельзя создавать определенные процедуры.
50. Объясните значение локальной переменной и переменной экземпляра?
- Локальные переменные присутствуют в методе, а область видимости существует только внутри метода.
- Переменные экземпляра присутствуют и определены в классе только с их областью действия во всем классе.
51. Объясните значение класса в Java?
В Java все коды, переменные и методы определены в классе.
- Переменные представляют собой атрибуты, определяющие состояние определенного класса.
- Методы представляют, где бизнес-логика вступает в силу. Методы включают в себя набор утверждений и инструкций, соответствующих требованиям.
Вот простой пример для класса в Java :
1 2 3 4 5 6 7 | public class Addition { // Объявление имени класса интервал х = 10 ; //Объявление переменной интервал у = 10 ; public void add (){ //Объявление метода интервал г = а + б ; } } |
52. Объясните значение Object в Java?
Объекты определяются как экземпляр класса только с определенным состоянием и поведением. Например, собака с определенным именем, породой и цветом, в то время как поведение включает в себя лай, виляние хвостом и т. д. Таким образом, каждый раз, когда JVM читает любое ключевое слово new(), будет создан соответствующий экземпляр. Объект необходимо сначала объявить, затем создать экземпляр и, наконец, инициализировать для дальнейшего выполнения.
53. Определите значение по умолчанию для типа данных byte в языке Java.
Для типа данных Byte значение по умолчанию равно 0.
54. Почему байтовый тип данных более удобен в Java?
Поскольку тип данных byte почти в четыре раза меньше целого числа, он может хранить больше места для больших массивов.
55. Объясните концепции ООП в Java.
ООП — это фундаментальные концепции языка программирования Java. К ним относятся абстракция, полиморфизм, наследование и инкапсуляция. Концепции ООП Java позволяют разработчикам создавать переменные, методы и компоненты, которые в дальнейшем позволяют им повторно использовать их настраиваемым образом, сохраняя при этом безопасность.
56. Объясните значение Наследования.
В Java наследование — это особый механизм, который позволяет одному классу приобретать свойства (с полями и методами) другого класса. Наследование — одна из основных концепций ООП Java.
Наследование позволяет создавать новые классы, добавлять дополнительные поля и методы в существующие классы для их повторного использования любым способом.
- Подкласс — это тот, который наследует свойства другого класса.
- Суперкласс — это тот, чьи свойства наследуются.
57. Объясните концепции инкапсуляции в Java?
Как одна из основных концепций ООП Java, инкапсуляция позволяет упаковать данные и код только в один блок. Инкапсуляция также известна как сокрытие данных, когда переменные определенного класса скрыты от всех других классов и доступны только с помощью методов из существующего класса.
Две важные вещи для достижения инкапсуляции в Java:
- Объявление переменных конкретного класса как приватных.
- Использование общедоступных методов установки и получения для внесения изменений и просмотра значений переменных.
58. Объясните концепции полиморфизма.
Полиморфизм в Java позволяет разработчикам выполнять одну задачу несколькими способами. В Java есть два типа полиморфизма со временем выполнения и временем компиляции. Вы можете использовать методы переопределения и перегрузки для работы с полиморфизмом в Java.
59. Объясните значение интерфейса.
В Java мы не можем добиться множественного наследования. Здесь интерфейс играет решающую роль в преодолении этой проблемы для достижения абстракции, поддержки множественного наследования, а также поддерживает слабую связанность. Теперь у нас есть стандартный, статический и закрытый метод в интерфейсе с последними обновлениями Java.
60. Что подразумевается под абстрактным классом?
Абстрактные классы создаются с помощью специального ключевого слова abstract в Java. Они представляют как абстрактные, так и неабстрактные методы.
61. Объясните класс абстракции в Java?
Абстракция является одним из основных свойств для сокрытия информации о реализации от пользователя и последующего представления только пользовательских функций. For instance, when you send an SMS from one person to another person. The user gets to know only the message and number while the backend process remains hidden.
You can achieve abstraction in Java using the following two ways:
- Abstract Class (0 to 100%)
- Interface (100%)
62. Explain the difference between Abstraction and Encapsulation in Java.
Here are the main differences:
Абстракция | Инкапсуляция |
Abstraction aims to gain information. | Encapsulation's main aim is to contain or procure information. |
In the abstraction process, issues or problems are handled at the interface/ design level. | In Encapsulation, problems are handled at a specific implementation level. |
Abstraction aids in hiding unwanted information. | Encapsulation method applies hiding data within a single unit. |
Implemented with interfaces and abstract classes. | Implemented with a particular access modifier (public, private, and protected). |
Use abstract classes and interfaces to hide complexities. | Use getters and setters to hide data. |
Objects that extend to abstraction must be encapsulated. | An object for encapsulation must not be abstracted. |
63. Explain the differences between Abstract class and interface.

Abstract Class | Интерфейс |
Abstract Class comes with a default constructor. | The interface doesn't have a constructor. So, no further process. |
Uses both Abstract and Non-Abstract methods. | Only use Abstract methods. |
Classes that must extend for Abstract class need only abstract methods throughout their sub-class. | Classes that extend to interface must provide implementation across all the methods. |
These include instance variables. | The interface presents constants only. |
64. Explain the main differences between Array and Array List.
Множество | Array List |
The size needs to be defined for the declaring array. String[] name = new String[5] | No size requirements; and modifies dynamically. ArrayList name = new ArrayList |
You must specify an index for putting an object inside the array. name[1] = “dog” | There are no index requirements.
name.add(“dog”) |
Arrays are not parameterised. | From Java 5.0 onwards, ArrayLists have a specific parameterised type. |
65. Explain the difference between static method and instance method.
Static or Class Method | Instance Method |
You must declare a method static for a static method. | All methods with declaration as static come under Instance method only. |
No requirements for creating objects in the Static method. | The object is a must for calling the instance method. |
You cannot access Instance or Non-static methods in the static context. | You can access both static and non-static in the instance method. |
66. How to make Constructors static?
Constructors invoked with the object, and static context is part of the class, not the object. Hence, constructors cannot be static and show compiler error if run or executed.
67. Explain the use of 'this' keyword in Java?
In Java, 'this' keyword represents a specific reference on the current object. There are multiple uses for this keyword for referring to the current class properties from a variable, constructors, methods, and more. You can also pass this as an argument within constructors or methods. You can also fetch this as a return value from the current class instance. You can also refer to this as a static context.
Читайте также: Как кодировать, компилировать и запускать Java-проекты
68. What is a classloader in Java? What are the different types of ClassLoaders in Java?
Java Classloader's main function is to dynamically load all classes into the Java Virtual Machine (JVM). ClassLoaders are part of the JRE only. So every time we run a Java program, classloader loads the classes to execute this program. A single ClassLoader loads only a specific class on requirements and uses getClassLoader() method to specify the class. These classes are loaded by calling their names, and in case these are not found then it retrieves or throws a ClassNotFoundException or NoClassDefFoundError.
Java ClassLoader uses three principles in performing tasks with delegation, uniqueness, and visibility.
There are three different types of Java ClassLoader:
- BootStrap ClassLoader:
BootStrap ClassLoader represents the parent or superclass for extension classloader and all other classloaders. It has machine code that loads the pure first Java ClassLoader and takes classes from the rt.jar and also known as Primordial ClassLoader.
- Extension ClassLoader:
Extension ClassLoader represents the child classloader for the superclass or BootStrap ClassLoader. It loads core java classes from jre/lib/ext , ie, JDK extension library.
- System ClassLoader:
Application or System ClassLoader are further child classes of Extension ClassLoader. It takes and loads a file from the current directory for the program that you can customise with the 'classpath' switch.
69. Explain the meaning of Java Applet.
Java Applet is a program that executes or runs in the web browser only. Applets are specifically designed to function and embed with HTML web pages. Applets have the capability to function full Java applications with the entire use of Java API. JVM is a must requirement to view an applet on the browser. Applet extends with the use of java.applet.Applet class.
70. What are the types of Applets?
Based on location, there are two types of Java applets as Local Applets that are stored on the same computer or system. The Remote Applets that have files on remote systems.
71 What are immutable objects in Java?
В Java неизменяемые объекты — это объекты, состояние которых не меняется после их создания. Неизменяемые объекты идеально подходят для многопоточных приложений, которые позволяют совместно использовать потоки без синхронизации. Неизменяемые объекты предпочтительны для создания простого, надежного и надежного кода, соответствующего эффективной стратегии.
72. Что вы подразумеваете под JRE (среда выполнения Java)?
Java Runtime Environment — это программный уровень, обеспечивающий поддержку минимальных требований для запуска Java-программ на машине. Наряду с JDK и JRE эти три составляют основу для запуска и разработки программ Java на конкретной машине.
73. Что является частью JDK?
Java Development Kit (JDK) — это один из основных технологических пакетов, необходимых для запуска Java-программ. Это может быть реализация любой из платформ Java, Standard Edition, Micro или Enterprise edition, разработанная Oracle для создания приложений для Windows, Linux или macOS.
74. Что такое виртуальная машина Java (JVM)?
Виртуальная машина Java (JVM) — это одно из трех основных требований для запуска и выполнения программ Java наряду с JDK и JRE. JVM выполняет две основные функции; во-первых, чтобы программы Java могли беспрепятственно работать на любой машине или системе, а во-вторых, чтобы оптимизировать память для повышения производительности.
75. В чем разница между JDK, JRE и JVM?
JVM | JRE | JDK |
Виртуальная машина Java | Среда выполнения Java | Комплект для разработки Java |
Платформа зависит от нескольких доступных программных и аппаратных опций. | Уровень программного обеспечения, обеспечивающий поддержку минимальных требований для запуска программ Java на компьютере. | Стандартная версия Корпоративная версия Микро издание |
Три понятия как:
| Набор библиотек + файлов, расширяющих возможности JVM во время выполнения. | JRE + средства разработки |
Предоставляет среду выполнения для выполнения. | JRE представляет собой реализацию JVM. | Среда разработки программного обеспечения. |
76. Сколько типов областей памяти существует в JVM?
В JVM есть несколько типов областей памяти:
- Область класса: в этой памяти хранятся структуры предварительного класса с полем, пулом, данными метода и кодом.
- Куча обозначает оперативную память, специально выделенную для объектов.
- Стек представляет собой память фрейма с локальной переменной, частичными результатами, потоком и фреймом для каждого метода.
- Регистр счетчика программ хранит информацию о текущей инструкции при выполнении виртуальной машины Java.
- В стеке собственных методов хранятся все существующие собственные методы, используемые в текущих приложениях.
77. Что такое привязка данных в Java?
Привязка данных представляет связи между классом и методом, полем, переменной, конструкторами или телом метода. Java может обрабатывать привязку данных как статически, так и динамически.
78. Какие существуют типы привязки данных в Java?
В Java есть два важных типа привязки данных.
- Статическое связывание происходит во время компиляции с использованием статических, окончательных и частных методов; также известный как раннее связывание.
- Динамическое связывание представлено во время выполнения без точной информации о правильном методе во время компиляции.
79. Что такое сокет Java?
Сокеты помогают в построении механизмов связи между двумя компьютерами через TCP. Розетки в идеале более удобны и гибки для коммуникаций.
80. Объясните разницу между Path и Classpath.
И путь, и путь к классам представляют локальные переменные среды. Путь предоставляет программное обеспечение для поиска исполняемых файлов, а ClassPath указывает расположение файлов .class в системе.
81. Существует ли абстрактный метод без использования абстрактного класса?
Нет, чтобы абстрактный метод существовал в классе, он должен быть абстрактным классом.
82. Каков процесс создания класса только для чтения в Java?
В Java вы можете сделать класс доступным только для чтения, оставив все поля закрытыми. Этот конкретный класс только для чтения будет иметь только методы получения, которые возвращают частное свойство. Это свойство нельзя модифицировать или изменять, так как метод установки недоступен.
1 2 3 4 5 6 7 8 9 | // Класс только для чтения в Java публичный класс Студент { //закрытый элемент данных частный институт String = "MKG" ; //метод получения для института публичная строка getInstitute () { вернуть институт ; } } |
83. Каков процесс создания класса только для записи в Java?
В Java вы также можете создать класс только для записи, сохраняя все поля закрытыми с реализацией только методов установки.
1 2 3 4 5 6 7 8 9 | // Класс только для записи в Java публичный класс Студент { //закрытый элемент данных частный струнный институт ; //метод set для института public void setInstitute ( институт строк ) { это . институт = институт ; } } |
84. Объясните, как получить доступ к классу в другом классе в Java?
В Java есть два способа получить доступ к классу в другом классе:
- Использование определенного имени: мы можем получить доступ к определенному классу из другого пакета, используя полное имя, или импортировать этот пакет, содержащий определенный класс.
- Использование относительного пути: Точно так же мы можем использовать относительный путь для этого пакета с определенным классом.
85. Что такое обработка исключений?
Обработка исключений представляет собой механизм обработки исключений или ненормальных условий во время ошибок времени выполнения, чтобы поддерживать нормальный поток приложения. Существует три разных типа исключений Java: Checked Exception, Unchecked Exception и Error.
86. Объясните разницу между Checked Exception и Unchecked Exception.
- Checked Exceptions — это классы, которые дополнительно расширяют классы throwable, за исключением RuntimeException, таких как SQLException, IOException и т. д. Checked Exceptions обрабатываются только во время компиляции.
- Непроверенные исключения — это классы, которые расширяют RuntimeException, такие как NullPointerException, ArithmeticException и т. д., и не обрабатываются во время компиляции.
87. Какой базовый класс для Exception и Error?
Здесь класс Throwable представляет базовый класс для Exception и Error.
88. Упомяните ключевое слово обработки исключений в Java.
В Java есть пять ключевых слов для обработки исключений:
Ключевое слово | Описание |
пытаться | Этот блок try определяет блок для размещения исполняемого кода. За этим блоком try обычно следует использование catch или finally. Таким образом, они не могут быть использованы в одиночку. |
ловить | Основная цель блока catch — обработать исключение. Вы должны использовать это в сочетании с блоком try, а затем, наконец, на более позднем этапе. |
наконец | Наконец, блок проверяет важный код программы, который проверяет, выполнено ли выполнение или нет. |
бросать | Основная цель ключевого слова throw — вызвать исключение из программы. |
бросает | Ключевое слово throws в основном используется для объявления исключений, а не для создания исключения. Он предоставляет информацию о возникновении исключения и применяется с сигнатурой метода. |
89. Объясните важность блока finally.
Здесь блок finally имеет решающее значение для бесперебойной работы программы. Он всегда выполняется независимо от того, обработано исключение или нет. Наконец, блок следует за блоком try или catch. В JVM система всегда будет запускать блок finally перед завершением или закрытием файла. Для каждого присутствующего блока try может быть ноль или несколько блоков catch, но может быть только один блок finally.
90. Возможен ли запуск блока finally без блока catch?
Да, за блоком finally может следовать блок try или catch соответственно.
91. Есть ли случаи отсутствия блока finally?
Блок finally не запускается или не выполняется, если программа уже существует или выдает фатальную ошибку для прерывания процесса.
92. Объясните основные различия между броском и бросками.
бросить ключевое слово | бросает ключевое слово |
Выдает исключение. | Он объявляет исключение. |
Проверенные исключения не могут распространяться только с помощью throw. | Проверенные исключения могут распространяться с бросками. |
За ним следует экземпляр. | За ним следует класс. |
Он используется только в методе. | Он используется с определенной сигнатурой метода. |
Нет возможности для множественных исключений. | В то время как в этой процедуре может быть объявлено несколько исключений. |
93. Есть ли возможность повторного создания исключения?
Да, если исключение существует, его можно сгенерировать повторно.
94. Расскажите о распространении исключений.
Процесс исключения в рамках процедуры обработки известен как распространение исключения. Например, исключение сначала обрабатывается в верхней части стека, а затем, если оно не перехвачено, исключение переходит к предыдущему методу, а если нет, то оно идет дальше, пока либо исключение не будет перехвачено, либо не достигнет дна. стека. Проверенные исключения по умолчанию не имеют распространения.
95. Объясните значение потока в Java.
В Java способ или поток выполнения известен как поток. Таким образом, каждая программа содержит один поток, называемый основным потоком, созданным JVM. Разработчики могут определять свои пользовательские потоки, добавляя и расширяя класс Thread с помощью интерфейса.
96. Объясните значение пула потоков.
Пул потоков Java — это группа из нескольких потоков, которые постоянно ожидают выполнения выделенных задач. Здесь пулы потоков работают под управлением поставщика услуг, который извлекает поток из этого пула, а затем назначает им задачу для конкретной работы. Пул потоков повышает производительность и стабильность системы.
97. Объясните разницу между String и StringBuffer.
Нить | Строковый буфер |
Класс String неизменен по своей природе. | С другой стороны, класс StringBuffer является изменяемым. |
Струны медленные. | В противном случае StringBuffer работает довольно быстро. |
Они потребляют больше памяти для создания нового экземпляра. | Они потребляют меньше памяти со строками concat. |
Строки позволяют сравнивать их содержимое, так как они переопределяют метод equals() класса Object. | В то время как класс StringBuffer не может переопределить метод equals() класса Object. |
98. Объясните разницу между StringBuffer и StringBuilder.
Строковый буфер | StringBuilder |
Синхронизирован с безопасностью к потокам. | Он не синхронизирован и не обеспечивает безопасность потоков. |
В этом два потока не имеют метода вызова. | При этом два потока могут без проблем иметь методы вызова. |
Ниже или менее эффективен, чем StringBuilder. | Более эффективен, чем StringBuffer. |
99. Как создать неизменяемый класс в Java?
В Java вы можете создать неизменяемый класс, объявив окончательный класс со всеми его членами как окончательный. Давайте возьмем пример, чтобы понять это:
1 2 3 4 5 6 7 8 9 10 11 12 | открытый конечный класс Сотрудник { окончательная строка securityNumber ; публичный сотрудник ( String securityNumber ) { это . номер безопасности = номер безопасности ; } общедоступная строка getSecurityNumber () { вернуть номер безопасности ; } } |
99. Что такое внутренние классы?
Внутренние классы Java определяются и объявляются внутри интерфейса или класса. Внутренние классы позволяют системе группировать классы и интерфейсы логически, делая их более читабельными, а также простыми в обслуживании. Более того, эти классы могут получить доступ ко всем членам внешнего класса с помощью методов, а также к закрытым членам данных.
100. Каковы основные преимущества и недостатки использования внутренних классов Java?
Основные преимущества внутренних классов Java включают в себя:
- Доступность для всех членов из внешних классов.
- Меньше кода для написания.
- Больше обслуживания и читаемый код.
К основным недостаткам внутренних классов Java относятся:
- Меньше поддержки со стороны IDE.
- Большое количество общих классов.
101. Определить типы внутренних классов в языке программирования Java?
Внутренние классы имеют три основных типа:
- Член Внутренний класс, указывающий класс внутри класса с помощью внешнего метода.
- Анонимный внутренний класс для расширения класса или указания реализации интерфейса.
- Локальный внутренний класс для создания класса внутри метода.
102. Определите вложенный класс.
Вложенные классы определяются или объявляются только внутри класса или интерфейса. Вложенный класс может специально обращаться ко всем членам внешнего класса с помощью методов и членов закрытых данных. Вот простой синтаксис вложенного класса:
1 2 3 4 5 6 | класс Java_Outer_class { //код класс Java_Nested_class { //код } } |
103. Можете ли вы объяснить разницу между внутренними классами и вложенными классами?
Все внутренние классы определяются как нестатические вложенные классы. Таким образом, внутренние классы являются частью только вложенных классов.
104. Как бы вы определили значение коллекций в Java?
Коллекции в Java представляют собой группу из нескольких объектов, представленных как единое целое; в первую очередь известный как коллекции объектов. Их также называют инфраструктурой коллекции или архитектурой, которая обеспечивает пространство для хранения объектов и дополнительно манипулирует дизайном для внесения изменений.
Вот основные функции, выполняемые коллекциями Java:
- Сортировка
- Searching
- Вставка
- Манипуляции
- Удаление
Существует множество интерфейсов и классов, являющихся частью коллекций.
105. Какие интерфейсы и классы доступны в коллекциях?
Вот список интерфейсов и классов, доступных с коллекциями в Java.
- Интерфейсы: Коллекция, Очередь, Отсортированный набор, Отсортированная карта, Список, Набор, Карта
- Классы: списки, вектор, список массивов, связанный список
- Наборы: набор хэшей, набор деревьев, связанный набор хэшей
- Карты: хеш-карта, хеш-таблица, карта дерева, связанная хэш-карта .
- Очередь: приоритетная очередь
106. Объясните сортировку и упорядочение по отношению к коллекциям в Java?
- Сортировка: Сортировка позволяет группе объектов применяться внутри или снаружи для их сортировки в определенной коллекции на основе их различных свойств.
- Упорядоченный: определяет значения, которые сортируются на основе значений, добавленных в коллекцию, и повторяются в определенном порядке.
107. Какие различные списки доступны в коллекции?
Списки хранят значения на основе их позиции в индексе с разрешенным дублированием. Вот основные виды списков:
Списки массивов: использует интерфейс произвольного доступа, обеспечивает сбор заказов по индексу, не сортируется и предлагает быструю итерацию. Вот пример, чтобы понять это:
1 2 3 4 5 6 7 8 9 10 11 12 13 | общественный класс Фрукты { public static void main ( String [ ] args ){ ArrayList < String > name = new ArrayList < String >(); имена . добавить ( « яблоко » ); имена . добавить ( « авокадо » ); имена . добавить ( « вишня » ); имена . добавить ( « киви » ); имена . добавить ( " апельсины " ); имена . добавить ( " банан " ); имена . добавить ( « киви » ); Система . вне . println ( имена ); } } |
Вывод выглядит следующим образом:
[Яблоко, авокадо, вишня, киви, апельсины, банан, киви] |
С помощью вывода вы можете проверить, что Array List сохраняет исходный порядок вставки, а также допускает дублирование. Хоть и не отсортировано.
Vector: также использует метод произвольного доступа, синхронизируется и предлагает поддержку безопасности потоков.
Давайте разберемся в этом на примере:
1 2 3 4 5 6 7 8 9 10 11 12 13 | общественный класс Фрукты { public static void main ( String [ ] args ){ ArrayList < String > names = новый вектор < String >(); имена . добавить ( « киви » ); имена . добавить ( " апельсины " ); имена . добавить ( " банан " ); имена . добавить ( « яблоко » ); имена . добавить ( « авокадо » ); имена . добавить ( « вишня » ); имена . добавить ( « киви » ); Система . вне . println ( имена ); } } |
Вывод выглядит следующим образом:
[киви, апельсины, банан, яблоко, авокадо, вишня, киви] |
Списки векторов следуют исходному порядку вставки, а также поддерживают дубликаты.
Связанный список: это также идеальный выбор для удаления и вставки, элементы имеют двойную связь, но работают медленно.
Пример связанного списка:
1 2 3 4 5 6 7 8 9 10 11 12 13 | общественный класс Фрукты { public static void main ( String [ ] args ){ ArrayList < String > names = новый вектор < String >(); имена . добавить ( « киви » ); имена . добавить ( " апельсины " ); имена . добавить ( " банан " ); имена . добавить ( « яблоко » ); имена . добавить ( « авокадо » ); имена . добавить ( « вишня » ); имена . добавить ( « киви » ); Система . вне . println ( имена ); } } |
Вывод выглядит следующим образом:
[Яблоко, авокадо, вишня, киви, апельсины, банан, киви] |
Он также следует исходному порядку вставки и принимает дубликаты.
108. Каковы основные различия между коллекцией и коллекциями в Java?
Основные отличия заключаются в следующем:
- Коллекция представляет собой интерфейс, в то время как коллекции относятся только к классу.
- Интерфейс сбора предоставляет несколько функций для структурирования данных в виде списка, набора и очереди. В то время как основная цель класса Collection ограничена сортировкой и синхронизацией элементов коллекции.
109. Объясните приоритетную очередь.
Priority Queue определяет интерфейс очереди для обработки связанных списков с целью Priority-in и Priority-out. Очередь обычно следует алгоритму «первым поступил — первым обслужен» (FIFO), но вы можете ставить элементы в очередь в соответствии с конкретными требованиями, а затем мы можем реализовать PriorityQueue для настройки. С Priority Queue это зависит от кучи приоритетов либо естественным образом, либо через компаратор от их относительного приоритета.
110. Когда идеально использовать и сравнивать интерфейс Runnable в Java?
Когда нам нужно расширить класс некоторыми другими классами, а не потоками, то исполняемые интерфейсы — идеальный выбор.
111. В чем разница между методами start() и run() класса потока?
Метод start() добавляет и создает новый поток. И код в методе run() выполняется только в новом потоке. В то время как метод run() будет выполнять код только в текущем потоке.
112. Что такое многопоточность?
В Java мы можем выполнять несколько потоков одновременно, что называется многопоточностью. Это помогает программе работать в многозадачном режиме, занимая меньше памяти и обеспечивая более высокую производительность. В многопоточности потоки легкие, занимают одно и то же пространство и вполне доступны во всех аспектах.
113. Объясните разницу между процессом и потоком.
Здесь основные отличия:
- Выполняемая Java-программа называется процессом, а поток представляет собой только подмножество процесса.
- Процессы представляют разные области памяти, а потоки имеют один и тот же адрес.
- Процессы полностью независимы, а потоки являются только частью процесса.
- Медленная связь между процессами, в то время как связь между потоками быстрая.
114. Объясните значение межпоточной связи.
Взаимодействие между потоками определяется как процесс, который обеспечивает связь между несколькими синхронизированными потоками. Его основная цель — избежать объединения потоков в Java. Связь достигается с помощью методов wait(), notify() и notifyAll().
115. Объясните метод ожидания().
С помощью метода wait() вы можете позволить потоку находиться в стадии ожидания, в то время как другой поток заблокирован на объекте. Таким образом, метод wait() может существенно увеличить время ожидания потоков.
Вот синтаксис для представления этого:
1 2 3 4 5 6 | public static void main ( String [] args ){ Поток т = новый поток (); т . начать (); Синхронизированный ( т ) { Подождите (); } |
116. В чем основное различие между методами notify() и notifyAll() в Java?
Метод notify() отправляет сигнал для пробуждения только определенного потока в пуле ожидания, тогда как метод notifyAll() пробуждает все потоки в стадии ожидания пула.
117. Определите основные различия между sleep() и wait().
Sleep() приостанавливает или останавливает выполнение текущего потока, приостанавливая выполнение на определенное время, не снимая блокировку. В то время как wait() вызывает продолжительность ожидания для потока после вызова метода notify() для последующего пробуждения.
118. Объясните метод join() применительно к потоку в Java.
Метод join() позволяет объединить один поток с одним из непрерывных потоков. Вот синтаксис метода join():
1 2 3 4 5 | public static void main ( String [] args ){ Поток т = новый поток (); т . начать (); т . присоединиться (); } |
119. Объясните метод Yield для Thread.
Метод Yield является статическим методом и не снимает блокировку в потоках. Здесь метод Yield() расширяет возможности текущего потока, превращая его в более работоспособный поток, в то же время позволяя другим потокам продолжать выполнение. Таким образом, потоки с одинаковым приоритетом могут выполняться регулярно.
120. Что такое стадия голода?
Голодание — это фаза, когда поток не может получить доступ к общим ресурсам и не может двигаться дальше.
121. Что такое тупик для потока?
Тупик определяет стадию, когда два или несколько потоков навсегда блокируются в ожидании друг друга.
122. Дайте определение сериализации и десериализации в Java?
Сериализация — это процесс преобразования состояния объекта в определенный поток байтов, идеально подходящий для технологий JPA, JMS, RMI, JPA и Hibernate. В то время как обратный процесс изменения потока байтов в объект называется десериализацией. Оба процесса не зависят от платформы, поэтому они позволяют эффективно выполнять сериализацию на одной платформе и десериализацию на совершенно другой платформе.
123. Каково значение переходных переменных?
Важность переходных переменных заключается в десериализации, которая устанавливается для переменных по умолчанию и не используется со статическими переменными.
124. Что такое изменчивые переменные?
Изменчивые переменные играют решающую роль в синхронизации и чтении из основной памяти, избегая при этом кэш-памяти потока.
125. Что такое SerialVersionUID?
В сериализованном процессе объекту присваивается определенный идентификационный номер версии для соответствующего класса объектов. Этот номер называется SerialVersionUID и играет решающую роль в процессе десериализации для проверки совместимости отправителя и получателя соответственно.
126. Как происходит клонирование объекта в Java?
Клонирование объекта позволяет создать точную копию исходного объекта. Чтобы клонирование было возможным, класс должен иметь поддержку клонирования с интерфейсом java.lang.Cloneable и позволять переопределять метод clone() из исходного класса объекта.
Вот простой синтаксис метода clone():
Клон защищенного объекта () выдает CloneNotSupportedException |
Если клон не реализует это, он обычно выдает исключение с «CloneNotSupportedException».
127. Определить класс, который остается суперклассом для каждого класса?
Класс объекта.
128. Определите, является ли строковый класс изменяемым или неизменяемым?
Класс String представляет неизменное состояние. Поэтому, как только объект создан, это уже не может измениться.
129. Как вы различаете классы StringBuffer и StringBuilder?
- StringBuilder быстрее, чем StringBuffer.
- StringBuffer синхронизируется, а StringBuilder не синхронизируется.
- StringBuffer предлагает потокобезопасную среду, в то время как StringBuilder не поддерживает потокобезопасность.
130. Какая польза от метода toString() в Java?
В Java toString() извлекает или возвращает строковое представление любого объекта.
131. Что такое сборка мусора в Java?
Поскольку объекты динамически распределяются с помощью оператора, система Java также автоматически обрабатывает освобождение используемой памяти в случае отсутствия ссылок на объект, который остается в течение значительного времени. Этот процесс освобождения системы от объектов, которые не используются, известен как сборка мусора в Java. Основная цель сборки мусора — сделать управление памятью более эффективным.
132. Сколько раз сборщик мусора вызывает метод finalize() для определенного объекта?
Вы можете вызвать метод finalize() при сборке мусора только один раз.
133. Определите способы вызова сборки мусора.
Есть два способа вызвать сборщик мусора:
- Система.gc()
- Время выполнения.getRuntime().gc()
134. Можем ли мы форсировать сборку мусора?
Нет, это автоматический процесс. Вы можете вызвать метод сборки мусора, но не можете его принудительно выполнить. Тем не менее, это не гарантирует, что он будет полным.
135. Какие типы данных существуют в Java? Объяснять.
Вот краткий список, который поможет вам с типами данных:
- байт – 8 бит
- короткий – 16 бит
- символ – 16-битный Юникод
- int — 32 бита (целое число)
- float — 32 бита (действительное число)
- long — 64 бита (одинарная точность)
- double — 64 бит (двойная точность)
136. Дайте определение Unicode.
Unicodes — это способ определения международных символов в человеческих языках, и Java использует эту структуру Unicode для обозначения символов.
137. Определите литерал.
Литерал — это постоянное значение, присвоенное определенной переменной
// Здесь 105 — литерал целое число = 105 |
138. Определить тип приведения в Java?

В случае присвоения значения одного типа данных другому типу данных эти два типа могут быть или не быть совместимыми и требовать преобразования. Java автоматически конвертирует в случае совместимых типов данных. А если типы данных несовместимы, то для успешного преобразования их необходимо преобразовать. Кастинг имеет два основных типа: неявный и явный.
139. Объясните два разных типа приведения типов?
- Неявный: определяет сохранение значений из меньших типов данных в большие типы данных, выполняемое только компилятором.
- Явный: определяет сохранение значений из больших типов данных в меньшие типы данных, что может привести к потере информации.
Заключение
Приведенные выше вопросы для собеседования по Java станут хорошим началом подготовки к собеседованию. Тем не менее, потренируйте свои навыки программирования и убедитесь, что вы тщательно ответили на эти вопросы и связанные с ними понятия, чтобы, когда интервьюер запустит вопрос, вы были готовы выиграть раунд с вашим ответом. О, и не забудьте 3 (незаметное) дыхание, когда вы предстаете перед интервьюером.
Если вам интересно узнать больше о Java, разработке программного обеспечения с полным стеком, ознакомьтесь с программой Executive PG upGrad и IIIT-B по разработке программного обеспечения — специализация в разработке полного стека, которая предназначена для работающих профессионалов и предлагает более 500 часов интенсивного обучения. , более 9 проектов и заданий, статус выпускника IIIT-B, практические практические проекты и помощь в трудоустройстве в ведущих фирмах.
Всего наилучшего! Надеюсь, вы взломаете свои интервью !!