100 самых популярных вопросов и ответов на собеседовании по Java (Загрузить PDF)

Содержание:

Anonim

Скачать PDF

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

Следующий список содержит 100 важных вопросов собеседования по Core Java для новичков, а также вопросы собеседования по Java и ответы для опытных программистов, которые помогут им подготовиться к собеседованию. Это подробное руководство по вопросам собеседования по программированию на Java поможет вам легко пройти собеседование.

Основные вопросы и ответы на собеседование по Java для новичков и опытных

Q1. В чем разница между внутренним классом и подклассом?

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

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

Q2. Каковы различные спецификаторы доступа для классов Java?

Ответ: В Java спецификаторы доступа - это ключевые слова, используемые перед именем класса, определяющим область доступа. Типы спецификаторов доступа для классов:

1. Публичный: класс, метод, поле доступны из любого места.

2. Защищено: метод, поле могут быть доступны из того же класса, к которому они принадлежат, или из подклассов, и из класса того же пакета, но не извне.

3. По умолчанию: метод, поле, класс доступны только из того же пакета, а не извне его собственного пакета.

4. Частный: метод, поле могут быть доступны из того же класса, к которому они принадлежат.

Q3. Для чего нужны статические методы и статические переменные?

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

Q4. Что такое инкапсуляция данных и в чем ее значение?

Ответ: Инкапсуляция - это концепция объектно-ориентированного программирования для объединения свойств и методов в один модуль.

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

Q5. Что такое одноэлементный класс? Приведите практический пример его использования.

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

Лучший пример сценария использования синглтона - это когда существует ограничение на наличие только одного подключения к базе данных из-за некоторых ограничений драйвера или из-за каких-либо проблем с лицензированием.

Q6. Что такое петли в Java? Какие три типа петель?

Ответ: Цикл используется в программировании для многократного выполнения оператора или блока операторов. В Java есть три типа циклов:

1) Для петель

Циклы For используются в java для повторного выполнения операторов заданное количество раз. Циклы For используются, когда программисту известно количество раз выполнения операторов.

2) Циклы пока

Цикл while используется, когда определенные операторы необходимо выполнять повторно, пока не будет выполнено условие. В циклах while сначала проверяется условие перед выполнением операторов.

3) Делайте циклы пока

Цикл Do While Loop аналогичен циклу While, с той лишь разницей, что условие проверяется после выполнения блока операторов. Следовательно, в случае цикла do while операторы выполняются как минимум один раз.

Q7: Что такое бесконечный цикл? Как объявлен бесконечный цикл?

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

Бесконечный цикл объявляется следующим образом:

for (;;){// Statements to execute// Add any loop breaking logic}

Q8. В чем разница между оператором continue и break?

Ответ: break и continue - два важных ключевых слова, используемых в циклах. Когда ключевое слово break используется в цикле, цикл прерывается мгновенно, а когда используется ключевое слово continue, текущая итерация прерывается, и цикл продолжается со следующей итерации.

В приведенном ниже примере цикл разрывается, когда счетчик достигает 4.

for (counter = 0; counter & lt; 10; counter++)system.out.println(counter);if (counter == 4) {break;}}

В приведенном ниже примере, когда счетчик достигает 4, цикл переходит к следующей итерации, и любые операторы после ключевого слова continue пропускаются для текущей итерации.

for (counter = 0; counter < 10; counter++)system.out.println(counter);if (counter == 4) {continue;}system.out.println("This will not get printed when counter is 4");}

Q9. В чем разница между переменными типа double и float в Java?

Ответ: В java float занимает 4 байта в памяти, а Double занимает 8 байтов в памяти. Float - это десятичное число с плавающей запятой одинарной точности, а Double - десятичное число двойной точности.

Q10. Что такое последнее ключевое слово в Java? Привести пример.

Ответ: В java константа объявляется с использованием ключевого слова Final. Значение может быть присвоено только один раз и после присвоения значение константы не может быть изменено.

В приведенном ниже примере объявлена ​​константа с именем const_val и ей присвоено значение:

Частный финал int const_val = 100

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

Когда класс объявляется окончательным, он не может быть разделен на подклассы. Пример String, Integer и другие классы-оболочки.

Q11. Что такое тернарный оператор? Привести пример.

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

В приведенном ниже примере, если ранг равен 1, статусу присваивается значение «Готово», иначе «Ожидание».

public class conditionTest {public static void main(String args[]) {String status;int rank = 3;status = (rank == 1) ? "Done" : "Pending";System.out.println(status);}}

Q12: Как вы можете генерировать случайные числа в Java?

Ответ:

  • Используя Math.random (), вы можете генерировать случайные числа в диапазоне от 0,1 до 1,0 и меньше 1,0.
  • Использование класса Random в пакете java.util

Q13. Какой корпус переключателя по умолчанию? Приведите пример.

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

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

public class switchExample {int score = 4;public static void main(String args[]) {switch (score) {case 1:system.out.println("Score is 1");break;case 2:system.out.println("Score is 2");break;default:system.out.println("Default Case");}}}

В14. Какой базовый класс в Java, от которого происходят все классы?

Ответ: java.lang.object

Q15. Может ли метод main () в Java возвращать какие-либо данные?

Ответ: В java метод main () не может возвращать никаких данных и, следовательно, он всегда объявляется с возвращаемым типом void.

Q16. Что такое пакеты Java? Какое значение имеют пакеты?

Ответ: В Java пакет представляет собой набор классов и интерфейсов, которые связаны вместе, поскольку они связаны друг с другом. Использование пакетов помогает разработчикам разбить код на модули и сгруппировать код для правильного повторного использования. После того, как код был упакован в пакеты, его можно импортировать в другие классы и использовать.

В17. Можем ли мы объявить класс как абстрактный, не имея абстрактного метода?

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

В18. В чем разница между абстрактным классом и интерфейсом в Java?

Ответ: Основное различие между абстрактным классом и интерфейсом заключается в том, что интерфейс может содержать только объявление общедоступных статических методов без конкретной реализации, в то время как абстрактный класс может иметь члены с любыми спецификаторами доступа (общедоступными, частными и т. Д.) С конкретной реализацией или без нее.

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

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

В19. Каковы последствия для производительности интерфейсов по сравнению с абстрактными классами?

Ответ: Интерфейсы работают медленнее по сравнению с абстрактными классами, поскольку для интерфейсов требуются дополнительные косвенные ссылки. Еще один ключевой фактор, который следует учитывать разработчикам, - это то, что любой класс может расширять только один абстрактный класс, в то время как класс может реализовывать множество интерфейсов.

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

Q20. Импорт пакета также импортирует его подпакеты в Java?

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

Например, если разработчик импортирует пакет University. *, Загружаются все классы в пакете с именем university, но никакие классы из подпакета не загружаются. Чтобы загрузить классы из своего подпакета (скажем, отдела), разработчик должен явно импортировать его следующим образом:

Импортный университет. Кафедра. *

В21. Можно ли объявить основной метод нашего класса закрытым?

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

В22. Как мы можем передать аргумент функции по ссылке, а не по значению?

Ответ: В java мы можем передавать аргумент функции только по значению, а не по ссылке.

В23. Как объект сериализуется в Java?

Ответ: В java для преобразования объекта в поток байтов посредством сериализации в классе реализован интерфейс с именем Serializable. Все объекты класса, реализующего сериализуемый интерфейс, сериализуются, и их состояние сохраняется в потоке байтов.

В24. Когда нам следует использовать сериализацию?

Ответ: Сериализация используется, когда данные необходимо передать по сети. При использовании сериализации состояние объекта сохраняется и преобразуется в поток байтов. Поток байтов передается по сети, и объект воссоздается в месте назначения.

В25. Обязательно ли за блоком попытки следовать блоку захвата в Java для обработки исключений?

Ответ: За блоком Try должен следовать либо блок Catch, либо блок finally, либо оба. Любое исключение, выброшенное из блока try, необходимо либо перехватить в блоке catch, либо выполнить какие-либо конкретные задачи до того, как прерывание кода будет помещено в блок finally.

В26. Есть ли способ пропустить блок исключения finally, даже если в блоке исключения возникает какое-то исключение?

Ответ: Если в блоке Try возникает исключение, управление переходит к блоку catch, если он существует, в противном случае - к окончательному блоку. Блок finally всегда выполняется, когда возникает исключение, и единственный способ избежать выполнения каких-либо операторов в блоке finally - это принудительно прервать код, написав следующую строку кода в конце блока try:

System.exit(0);

В27. Когда вызывается конструктор класса?

Ответ: Конструктор класса вызывается каждый раз, когда объект создается с новым ключевым словом.

Например, в следующем классе два объекта создаются с использованием ключевого слова new, и, следовательно, конструктор вызывается два раза.

public class const_example {const_example() {system.out.println("Inside constructor");}public static void main(String args[]) {const_example c1 = new const_example();const_example c2 = new const_example();}}

В28. Может ли класс иметь несколько конструкторов?

Ответ: Да, у класса может быть несколько конструкторов с разными параметрами. Какой конструктор будет использоваться для создания объекта, зависит от аргументов, переданных при создании объектов.

В29. Можем ли мы переопределить статические методы класса?

Ответ: Мы не можем переопределить статические методы. Статические методы принадлежат классу, а не отдельным объектам, и разрешаются во время компиляции (а не во время выполнения). Даже если мы попытаемся переопределить статический метод, мы не получим ни ошибки соответствия, ни влияния переопределения при запуске код.

Q30. Каким будет результат в приведенном ниже примере?

public class superclass {public void displayResult() {system.out.println("Printing from superclass");}}public class subclass extends superclass {public void displayResult() {system.out.println("Displaying from subClass");super.displayResult();}public static void main(String args[]) {subclass obj = new subclass();obj.displayResult();}}

Ответ : Результат будет:

Отображение из подкласса

Отображение из суперкласса

В31. Является ли String типом данных в Java?

Ответ: String не является примитивным типом данных в java. Когда строка создается в java, на самом деле создается объект класса Java.Lang.String. После создания этого строкового объекта все встроенные методы класса String можно использовать для строкового объекта.

В32. В приведенном ниже примере, сколько объектов String создано?

String s1="I am Java Expert";String s2="I am C Expert";String s3="I am Java Expert";

Ответ: В приведенном выше примере создаются два объекта класса Java.Lang.String. s1 и s3 - это ссылки на один и тот же объект.

В33. Почему строки в Java называются неизменяемыми?

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

В приведенном ниже примере ссылка str относится к строковому объекту, имеющему значение «Значение один».

String str="Value One";

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

str="New Value";

В34. В чем разница между массивом и вектором?

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

В35. Что такое многопоточность?

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

В36. Почему в Java используется Runnable Interface?

Ответ: Runnable интерфейс используется в java для реализации многопоточных приложений. Интерфейс Java.Lang.Runnable реализуется классом для поддержки многопоточности.

В37. Каковы два способа реализации многопоточности в Java?

Ответ: Многопоточные приложения можно разрабатывать на Java, используя любую из следующих двух методологий:

1. Используя интерфейс Java.Lang.Runnable. Классы реализуют этот интерфейс для обеспечения многопоточности. В этом интерфейсе реализован метод Run ().

2. Написав класс, расширяющий класс Java.Lang.Thread.

В38. Когда в данных требуется много изменений, какой из них следует использовать? String или StringBuffer?

Ответ: Поскольку StringBuffer является динамическим по своей природе, и мы можем изменять значения объектов StringBuffer, в отличие от String, который является неизменяемым, всегда полезно использовать StringBuffer, когда данные изменяются слишком сильно. Если мы используем String в таком случае, для каждого изменения данных будет создаваться новый объект String, что приведет к дополнительным накладным расходам.

В39. Какова цель использования Break в каждом случае оператора Switch?

Ответ: Разрыв используется после каждого случая (кроме последнего) в переключателе, так что код прерывается после действительного случая и не течет и в исходящих случаях.

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

В40. Как выполняется сборка мусора в Java?

Ответ: В java, когда на объект больше не ссылаются, происходит сборка мусора и объект автоматически уничтожается. Для автоматической сборки мусора java вызывает метод System.gc () или метод Runtime.gc ().

В41. Как мы можем выполнить любой код даже до основного метода?

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

В42. Может ли класс быть одновременно суперклассом и подклассом? Приведите пример.

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

В приведенном ниже примере континентальный класс является подклассом мирового класса и суперклассом загородного класса.

public class world {… .}public class continenet extends world {… }public class country extends continent {… .}

В43. Как создаются объекты класса, если в классе не определен конструктор?

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

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

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

В45. Можем ли мы вызвать конструктор класса более одного раза для объекта?

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

В46. Есть два класса с именами classA и classB. Оба класса находятся в одном пакете. Может ли частный член classA быть доступен объекту classB?

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

В47. Можем ли мы иметь в классе два метода с одинаковым именем?

Ответ: Мы можем определить два метода в классе с одним и тем же именем, но с разным количеством / типом параметров. Какой метод будет вызван, будет зависеть от переданных параметров.

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

public class methodExample {public void print() {system.out.println("Print method without parameters.");}public void print(String name) {system.out.println("Print method with parameter");}public static void main(String args[]) {methodExample obj1 = new methodExample();obj1.print();obj1.print("xx");}}

В48. Как мы можем сделать копию java-объекта?

Ответ: Мы можем использовать концепцию клонирования для создания копии объекта. Используя clone, мы создаем копии с фактическим состоянием объекта.

Clone () - это метод интерфейса Cloneable, и, следовательно, интерфейс Cloneable должен быть реализован для создания копий объектов.

В49. В чем преимущество использования наследования?

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

В50. Какой спецификатор доступа по умолчанию для переменных и методов класса?

Ответ: Спецификатор доступа по умолчанию для переменных и метода защищен пакетом, т.е. переменные и класс доступны для любого другого класса, но в том же пакете, а не вне пакета.

В51. Приведите пример использования указателей в классе Java.

Ответ: В Java нет указателей. Таким образом, мы не можем использовать концепцию указателей в Java.

В52. Как мы можем ограничить наследование для класса, чтобы ни один класс не мог быть унаследован от него?

Ответ: Если мы хотим, чтобы класс не расширялся никаким классом, мы можем использовать ключевое слово Final с именем класса.

В следующем примере класс Stone является Final и не может быть расширен.

public Final Class Stone {// Class methods and Variables}

В53. Какова область доступа спецификатора защищенного доступа?

Ответ: Когда метод или переменная объявляется со спецификатором защищенного доступа, они становятся доступными в том же классе, в любом другом классе того же пакета, а также в подклассе.

Модификатор

Учебный класс

Упаковка

Подкласс

Мир

общественный

Y

Y

Y

Y

защищенный

Y

Y

Y

N

без модификатора

Y

Y

N

N

частный

Y

N

N

N

В54. В чем разница между стеком и очередью?

Ответ: Stack и Queue используются в качестве заполнителя для сбора данных. Основное различие между стеком и очередью состоит в том, что стек основан на принципе «последним пришел - первым ушел» (LIFO), а очередь - по принципу FIFO («первым пришел - первым ушел»).

В55. Как в java запретить сериализацию переменных?

Ответ: Если мы хотим, чтобы определенные переменные класса не сериализовались, мы можем использовать ключевое слово transient при их объявлении. Например, переменная trans_var ниже является временной переменной и не может быть сериализована:

public class transientExample {private transient trans_var;// rest of the code}

В56. Как мы можем использовать примитивные типы данных в качестве объектов?

Ответ: примитивные типы данных, такие как int, могут обрабатываться как объекты с помощью соответствующих классов-оболочек. Например, Integer - это класс-оболочка для примитивного типа данных int. Мы можем применять различные методы к классу-оболочке, как и к любому другому объекту.

В57. Какие типы исключений перехватываются во время компиляции?

Ответ: Проверенные исключения могут быть обнаружены во время компиляции программы. Проверенные исключения должны обрабатываться с помощью блока try catch в коде для успешной компиляции кода.

В58. Опишите различные состояния потока.

Ответ: Поток в Java может находиться в одном из следующих состояний:

  • Готово: когда поток создается, он находится в состоянии готовности.
  • Выполняется: поток, выполняемый в данный момент, находится в рабочем состоянии.
  • Ожидание: поток, ожидающий, пока другой поток освободит определенные ресурсы, находится в состоянии ожидания.
  • Мертвый: поток, который стал мертвым после выполнения, находится в мертвом состоянии.

В59. Можем ли мы использовать конструктор класса по умолчанию, даже если определен явный конструктор?

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

В60. Можем ли мы переопределить метод, используя одно и то же имя метода и аргументы, но разные типы возвращаемых значений?

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

В61. Что будет на выходе из следующего фрагмента кода?

public class operatorExample {public static void main(String args[]) {int x = 4;system.out.println(x++);}}

Ответ: В этом случае используется оператор postfix ++, который сначала возвращает значение, а затем увеличивает его. Следовательно, на выходе будет 4.

В61. Кто-то говорит, что он успешно скомпилировал java-класс, даже не имея в нем основного метода? Является ли это возможным?

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

В62. Можем ли мы вызвать нестатический метод из статического метода?

Ответ: Нестатические методы принадлежат объектам класса и имеют область видимости на уровне объекта, и для вызова нестатических методов из статического блока (например, из статического основного метода) необходимо создать объект класса. первый. Затем, используя ссылку на объект, эти методы могут быть вызваны.

В63. Какие две переменные среды необходимо установить для запуска любых программ Java?

Ответ: Java-программы могут выполняться на машине только после того, как были правильно установлены следующие две переменные среды:

  1. Переменная PATH
  2. Переменная CLASSPATH

В64. Можно ли использовать переменные в Java без инициализации?

Ответ: В Java, если переменная используется в коде без предварительной инициализации допустимым значением, программа не компилируется и выдает ошибку, поскольку в Java переменным не присваивается значение по умолчанию.

В65. Можно ли унаследовать класс в Java от нескольких классов?

Ответ: В Java класс может быть производным только от одного класса, а не от нескольких классов. Java не поддерживает множественное наследование.

В66. Может ли конструктор иметь другое имя, чем имя класса в Java?

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

В67. Что будет на выходе Round (3.7) и Ceil (3.7)?

Ответ: Round (3.7) возвращает 4, а Ceil (3.7) возвращает 4.

Q68: Можно ли использовать goto в Java для перехода к определенной строке?

Ответ: В Java нет ключевого слова goto, и java не поддерживает эту функцию перехода к определенной отмеченной строке.

В69. Можно ли снова запустить мертвую нить?

Ответ: В java поток, который находится в мертвом состоянии, не может быть запущен снова. Невозможно перезапустить мертвый поток.

В70. Правильно ли следующее объявление класса?

Ответ:

public abstract final class testClass {// Class methods and variables}

Ответ: Приведенное выше объявление класса неверно, поскольку абстрактный класс не может быть объявлен как Final.

В71. Требуется ли JDK на каждой машине для запуска Java-программы?

Ответ: JDK - это комплект для разработки Java, который требуется только для разработки, а для запуска Java-программы на машине JDK не требуется. Требуется только JRE.

В72. В чем разница между сравнением, выполняемым методом равенства и оператором ==?

Ответ: В Java метод equals () используется для сравнения содержимого двух строковых объектов и возвращает истину, если они имеют одинаковое значение, в то время как оператор == сравнивает ссылки двух строковых объектов.

В следующем примере equals () возвращает true, поскольку два строковых объекта имеют одинаковые значения. Однако оператор == возвращает false, поскольку оба строковых объекта ссылаются на разные объекты:

public class equalsTest {public static void main(String args[]) {String str1 = new String("Hello World");String str2 = new String("Hello World");if (str1.equals(str2)){ // this condition is trueSystem.out.println("str1 and str2 are equal in terms of values");}if (str1 == str2) {//This condition is trueSystem.out.println("Both strings are referencing same object");} else{// This condition is NOT trueSystem.out.println("Both strings are referencing different objects");}}}

В73. Можно ли определить метод в классе Java, но обеспечить его реализацию в коде другого языка, такого как C?

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

В74. Как деструкторы определены в Java?

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

В75. Может ли переменная быть локальной и статической одновременно?

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

В76. Можем ли мы иметь статические методы в интерфейсе?

Ответ: Статические методы нельзя переопределить ни в одном классе, в то время как любые методы в интерфейсе по умолчанию являются абстрактными и должны быть реализованы в классах, реализующих интерфейс. Поэтому нет смысла иметь статические методы в интерфейсе на Java.

В77. Можем ли мы изменить значение любой переменной, определенной в интерфейсе, в классе, реализующем интерфейс?

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

В78. Правильно ли сказать, что из-за функции сборки мусора в Java Java-программа никогда не выходит из памяти?

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

Итак, сборка мусора помогает снизить вероятность того, что программе не хватит памяти, но не гарантирует этого.

В79. Можем ли мы иметь любой другой тип возвращаемого значения, кроме void для основного метода?

Ответ: Нет, для успешного выполнения программы основной метод класса Java может иметь только возвращаемый тип void.

Тем не менее, если вам абсолютно необходимо вернуть значение по завершении основного метода, вы можете использовать System.exit (int status)

В80. Я хочу повторно получить доступ к объекту и использовать его после того, как он был собран сборщиком мусора. Как это возможно?

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

В81. В программировании потоков Java, какой метод является обязательной реализацией для всех потоков?

Ответ: Run () - это метод интерфейса Runnable, который должен быть реализован всеми потоками.

В82. Я хочу управлять подключениями к базе данных в своей программе и хочу, чтобы только один поток мог одновременно подключаться к базе данных. Как я могу реализовать эту логику?

Ответ: Это можно реализовать с помощью концепции синхронизации. Код, связанный с базой данных, может быть помещен в метод с ключевым словом hs synchronized, чтобы только один поток мог получить к нему доступ одновременно.

В83. Как программист может вручную сгенерировать исключение?

Ответ: Чтобы вручную вызвать исключение в блоке кода, используется ключевое слово throw . Затем это исключение перехватывается и обрабатывается в блоке catch.

public void topMethod() {try {excMethod();} catch (ManualException e) {}}public void excMethod {String name = null;if (name == null) {throw (new ManualException("Exception thrown manually ");}}

В84. Я хочу, чтобы мой класс был разработан таким образом, чтобы никакой другой класс (даже производный класс) не мог создавать свои объекты. Как я могу это сделать?

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

В85. Как объекты хранятся в Java?

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

В86. Как узнать реальный размер объекта в куче?

Ответ: В java нет возможности узнать точный размер объекта в куче.

В87. Какому из следующих классов будет выделено больше памяти?

Класс A: три метода, четыре переменные, без объекта

Класс B: пять методов, три переменные, без объекта

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

В88. Что произойдет, если в программе не обработано исключение?

Ответ: Если исключение не обрабатывается в программе, использующей блоки try catch, программа прерывается, и никакой оператор не выполняется после оператора, вызвавшего выброс исключения.

В89. У меня есть несколько конструкторов, определенных в классе. Можно ли вызвать конструктор из тела другого конструктора?

Ответ: Если в классе несколько конструкторов, можно вызвать один конструктор из тела другого с помощью this () .

В90. Что подразумевается под анонимным классом?

Ответ: Анонимный класс - это класс, определенный без имени в одной строке кода с использованием ключевого слова new.

Например, в приведенном ниже коде мы определили анонимный класс в одной строке кода:

public java.util.Enumeration testMethod(){return new java.util.Enumeration(){@Overridepublic boolean hasMoreElements(){// TODO Auto-generated method stubreturn false;}@Overridepublic Object nextElement(){// TODO Auto-generated method stubreturn null;}}

В91. Есть ли способ увеличить размер массива после его объявления?

Ответ: Массивы статичны, и как только мы укажем их размер, мы не сможем его изменить. Если мы хотим использовать такие коллекции, в которых может потребоваться изменение размера (количества элементов), мы должны предпочесть вектор массиву.

В92. Если в приложении есть несколько классов, можно ли иметь основной метод более чем в одном классе?

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

В93. Я хочу сохранить данные объектов для дальнейшего использования. Как лучше всего это сделать?

Ответ: лучший способ сохранить данные для будущего использования - это использовать концепцию сериализации.

В94. Что такое локальный класс в Java?

Ответ: В Java, если мы определяем новый класс внутри определенного блока, он называется локальным классом. Такой класс имеет локальную область видимости и не может использоваться за пределами блока, в котором он определен.

Q95. String и StringBuffer представляют объекты String. Можем ли мы сравнить String и StringBuffer в Java?

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

В96. Какой API предоставляет Java для операций с множеством объектов?

Ответ: Java предоставляет API коллекций, который предоставляет множество полезных методов, которые можно применять к набору объектов. Некоторые из важных классов, предоставляемых Collection API, включают ArrayList, HashMap, TreeSet и TreeMap.

В97. Можем ли мы привести любой другой тип к логическому типу с преобразованием типа?

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

Q98. Можем ли мы использовать разные типы возвращаемых значений для методов при переопределении?

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

Например, метод возвращает ссылочный тип.

Class B extends A {A method(int x) {//original method}B method(int x) {//overridden method}}

В99. Какой базовый класс у всех классов исключений?

Ответ: В Java Java.lang.Throwable является суперклассом всех классов исключений, и все классы исключений являются производными от этого базового класса.

Q100. Какой порядок вызова конструкторов в наследовании?

Ответ: В случае наследования, когда создается новый объект производного класса, сначала вызывается конструктор суперкласса, а затем вызывается конструктор производного класса.

Готовьтесь к собеседованию !!! Пройдите по Java Tutorial, чтобы лучше подготовиться.

Этот подробный pdf-файл с вопросами для собеседования по Java поможет вам развеять сомнения по поводу вопросов для собеседования по Java, а также поможет вам пройти собеседование.