Топ 100 запитань та відповідей на інтерв’ю Java (Завантажити PDF)

Зміст:

Anonim

Завантажте PDF

Ми зібрали найбільш поширені запитання та відповіді на інтерв’ю Java, які допоможуть вам підготуватися до основних питань інтерв’ю Java, які інтерв’юер може задати вам під час інтерв’ю. У цьому списку основних запитань на співбесіду з Java ми розглянули всі найпоширеніші основні та розширені запитання на співбесіду з базовою Java із детальними відповідями, які допоможуть вам очистити співбесіду.

Наступний список містить 100 важливих основних запитань для співбесіди на Java для більш свіжих, а також запитання та відповіді на інтерв’ю на Java для досвідчених програмістів, які допоможуть їм підготуватися до співбесіди. Цей детальний посібник з питань співбесіди для програмування на Java допоможе вам легко зламати своє співбесіду.

Основні запитання та відповіді на інтерв’ю для Java для більш свіжих та досвідчених

Q1. У чому різниця між внутрішнім класом та підкласом?

Відповідь: Внутрішній клас - це клас, вкладений в інший клас. Внутрішній клас має права доступу для класу, який його вкладає, і він може отримати доступ до всіх змінних та методів, визначених у зовнішньому класі.

Підклас - це клас, який успадковує від іншого класу, який називається суперкласом. Підклас може отримати доступ до всіх загальнодоступних та захищених методів та полів свого суперкласу.

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

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

1. Загальнодоступний: клас, метод, поле доступні з будь-якого місця.

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

3. За замовчуванням: До методу, поля, класу можна отримати доступ лише з одного пакета, а не ззовні його власного пакету.

4. Приватний: метод, поле можна отримати з того самого класу, до якого вони належать.

Q3. Яка мета статичних методів та статичних змінних?

Відповідь: Коли є вимога спільного використання методу або змінної між кількома об'єктами класу, замість того, щоб створювати окремі копії для кожного об'єкта, ми використовуємо статичне ключове слово, щоб зробити метод або змінну спільним для всіх об'єктів.

Q4. Що таке інкапсуляція даних та яке її значення?

Відповідь: Інкапсуляція - це концепція об’єктно-орієнтованого програмування для об’єднання властивостей та методів в одному блоці.

Інкапсуляція допомагає програмістам дотримуватися модульного підходу до розробки програмного забезпечення, оскільки кожен об’єкт має свій власний набір методів та змінних і виконує свої функції незалежно від інших об’єктів. Інкапсуляція також служить для приховування даних.

Q5. Що таке клас-синглтон? Наведіть практичний приклад його використання.

Клас-синглтон у Java може мати лише один екземпляр, а отже всі його методи та змінні належать лише одному екземпляру. Концепція класу Singleton корисна для ситуацій, коли існує потреба обмежити кількість об'єктів для класу.

Найкращим прикладом сценарію використання одиночного типу є випадки, коли існує обмеження лише одного підключення до бази даних через деякі обмеження драйверів або через будь-які проблеми з ліцензуванням.

Q6. Що таке цикли в Java? Що таке три типи петель?

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

1) Для петель

Бо цикли використовуються в Java для повторного виконання операторів протягом заданої кількості разів. Для циклів використовуються, коли кількість разів для виконання інструкцій відома програмісту.

2) Поки петлі

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

3) Виконуйте петлі

Цикл Do While - це те саме, що і цикл While, з тією лише різницею, що умова перевіряється після виконання блоку операторів. Отже, у випадку циклу do while оператори виконуються принаймні один раз.

Q7: Що таке нескінченна петля? Як оголошується нескінченний цикл?

Відповідь: нескінченний цикл працює без будь-яких умов і працює нескінченно. Нескінченний цикл можна розірвати, визначивши будь-яку логіку порушення в тілі блоків операторів.

Нескінченний цикл оголошується наступним чином:

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

Q8. У чому різниця між оператором continue і break?

Відповідь: перерва і продовження - це два важливі ключові слова, що використовуються в циклах. Коли в циклі використовується ключове слово 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. У чому різниця між подвійними та плаваючими змінними в Java?

Відповідь: У Java float займає 4 байти пам'яті, а Double - 8 байт пам'яті. Float - десяткове число з плаваючою комою з однією точністю, а Double - десяткове число з подвійною точністю.

Q10. Що таке останнє ключове слово в Java? Наведіть приклад.

Відповідь: У Java константа оголошується за допомогою ключового слова Final. Значення може бути призначене лише один раз, і після присвоєння значення константи не може бути змінено.

У наведеному нижче прикладі константа з ім'ям const_val оголошена і призначена avalue:

Приватний фінал int const_val = 100

Коли метод оголошено остаточним, його НЕ можна замінити підкласами. Цей метод швидший за будь-який інший метод, оскільки він вирішується у відповідний час.

Коли клас оголошується остаточним, його не можна підкласувати. Приклад 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
  • Використання класу Random у пакунку java.util

Q13. Що таке типовий регістр комутатора? Наведіть приклад.

Відповідь: У операторі switch типовий регістр виконується, коли жодна інша умова комутатора не збігається. Типовим випадком є ​​необов'язковий випадок. Він може бути оголошений лише після кодування всіх інших випадків перемикання.

У наведеному нижче прикладі, коли оцінка не 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");}}}

Q14. Який базовий клас у Java, з якого походять усі класи?

Відповідь: java.lang.object

Q15. Чи може метод main () у Java повернути будь-які дані?

Відповідь: У Java метод main () не може повернути будь-які дані, а отже, він завжди оголошується типом повернення void.

Q16. Що таке пакети Java? Яке значення пакунків?

Відповідь: У Java пакет - це сукупність класів та інтерфейсів, які поєднуються, оскільки вони пов’язані між собою. Використання пакетів допомагає розробникам модулювати код та групувати код для правильного повторного використання. Після упаковки коду в Packages його можна імпортувати в інші класи та використовувати.

Q17. Чи можемо ми оголосити клас абстрактним, не маючи жодного абстрактного методу?

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

Q18. Яка різниця між абстрактним класом та інтерфейсом у Java?

Відповідь: Основна різниця між абстрактним класом та інтерфейсом полягає в тому, що інтерфейс може мати лише декларацію загальнодоступних статичних методів без конкретної реалізації, тоді як абстрактний клас може мати членів з будь-якими специфікаторами доступу (public, private тощо) з конкретною реалізацією або без неї.

Інша ключова відмінність у використанні абстрактних класів та інтерфейсів полягає в тому, що клас, який реалізує інтерфейс, повинен реалізовувати всі методи інтерфейсу, тоді як клас, який успадковує абстрактний клас, не вимагає реалізації всіх методів свого суперкласу.

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

Q19. Які наслідки для інтерфейсів для продуктивності мають абстрактні класи?

Відповідь: Інтерфейси мають меншу продуктивність порівняно з абстрактними класами, оскільки для інтерфейсів потрібні додаткові опосередкування. Іншим ключовим фактором, який слід враховувати розробникам, є те, що будь-який клас може розширити лише один абстрактний клас, тоді як клас може реалізувати безліч інтерфейсів.

Використання інтерфейсів також створює додаткове навантаження для розробників, оскільки будь-який час реалізації інтерфейсу в класі; розробник змушений реалізовувати кожен метод інтерфейсу.

Q20. Чи імпортує пакет імпортує свої підпакети також на Java?

Відповідь: У Java, коли пакет імпортується, його підпакети не імпортуються, і розробник повинен імпортувати їх окремо, якщо потрібно.

Наприклад, якщо розробник імпортує пакет університету. *, Усі класи в пакеті з іменем університет завантажуються, але не завантажуються класи з підпакету. Щоб завантажити класи зі свого підпакету (скажімо, відділу), розробник повинен імпортувати його явно наступним чином:

Імпорт університету. Кафедра. *

Q21. Чи можемо ми оголосити основний метод нашого класу приватним?

Відповідь: У Java основний метод повинен бути загальнодоступним, щоб правильно запустити будь-яку програму. Якщо основний метод оголошено приватним, розробник не отримає жодної помилки компіляції, однак, він не буде виконаний і дасть помилку виконання.

Q22. Як ми можемо передати аргумент функції за допомогою посилання замість передачі за значенням?

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

Q23. Як об’єкт серіалізується в Java?

Відповідь: У Java для перетворення об’єкта в байтовий потік шляхом серіалізації клас реалізує інтерфейс з іменем Serializable. Всі об'єкти класу, що реалізують серіалізується інтерфейс, серіалізуються, і їх стан зберігається в байтовому потоці.

Q24. Коли нам слід використовувати серіалізацію?

Відповідь: Серіалізація використовується, коли дані потрібно передавати по мережі. За допомогою серіалізації стан об’єкта зберігається і перетворюється в байтовий потік. Байтовий потік передається по мережі і об’єкт відтворюється за призначенням.

Q25. Чи обов’язковим є те, що за блоком Try слід блоку Catch у Java для обробки винятків?

Відповідь: За блоком Спроба слід слідувати або Блок лову, або Блок нарешті, або обидва. Будь-який виняток, викинутий з блоку try, потрібно або зафіксувати в блоці catch, або ж будь-які конкретні завдання, які потрібно виконати до того, як аборт коду буде поміщений в блок нарешті.

Q26. Чи є спосіб пропустити нарешті блок винятків, навіть якщо якийсь виняток трапляється в блоці винятків?

Відповідь: Якщо в блоці "Спробувати" встановлено виняток, елемент керування передає блок catch, якщо він існує, щоб остаточно блокувати. Блок нарешті завжди виконується, коли виникає виняток, і єдиним способом уникнути виконання будь-яких операторів у блоці Нарешті є примусове переривання коду шляхом написання наступного рядка коду в кінці блоку спроби:

System.exit(0);

Q27. Коли викликається конструктор класу?

Відповідь: Конструктор класу викликається кожного разу, коли об’єкт створюється за допомогою нового ключового слова.

Наприклад, у наступному класі два об'єкти створюються з використанням нового ключового слова, отже, конструктор викликається два рази.

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();}}

Q28. Чи може клас мати кілька конструкторів?

Відповідь: Так, клас може мати кілька конструкторів з різними параметрами. Який конструктор використовуватиметься для створення об'єкта, залежить від аргументів, переданих під час створення об'єктів.

Q29. Чи можемо ми замінити статичні методи класу?

Відповідь: Ми не можемо замінити статичні методи. Статичні методи належать до класу, а не до окремих об'єктів і вирішуються під час компіляції (не під час виконання). Навіть якщо ми спробуємо замінити статичний метод, ми не отримаємо помилки комплітації, а також впливу перевизначення під час запуску код.

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();}}

Відповідь : Результатом буде:

Відображення з підкласу

Відображення з суперкласу

Q31. Чи є String типом даних у Java?

Відповідь: Рядок не є примітивним типом даних у Java. Коли рядок створюється в Java, це фактично об'єкт класу Java.Lang.String, який створюється. Після створення цього рядкового об'єкта всі вбудовані методи класу String можна використовувати на об'єкті string.

Q32. У наведеному нижче прикладі, скільки об’єктів String створено?

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

Відповідь: У наведеному вище прикладі створено два об’єкти класу Java.Lang.String. s1 та s3 - посилання на один і той же об'єкт.

Q33. Чому рядки в Java називаються незмінними?

Відповідь: У Java об'єкти рядка називаються незмінними, оскільки після того, як значення було присвоєне рядку, його неможливо змінити, і якщо його змінити, створюється новий об'єкт.

У наведеному нижче прикладі посилання str посилається на рядовий об'єкт, що має значення "Value one".

String str="Value One";

Коли йому присвоєно нове значення, створюється новий об’єкт String і посилання переміщується до нового об’єкта.

str="New Value";

Q34. Яка різниця між масивом та вектором?

Відповідь: Масив групує дані одного примітивного типу і має статичний характер, тоді як вектори мають динамічний характер і можуть містити дані різних типів даних.

Q35. Що таке багатопоточність?

Відповідь: Багатопотоковість - це концепція програмування для одночасного запуску декількох завдань в рамках однієї програми. Потоки мають однаковий стек процесів і працюють паралельно. Це допомагає підвищити продуктивність будь-якої програми.

Q36. Чому запущений інтерфейс використовується в Java?

Відповідь: Запуск інтерфейсу використовується в Java для реалізації багатопотокових програм. Інтерфейс Java.Lang.Runnable реалізований класом для підтримки багатопоточності.

Q37. Які два способи реалізації багатопоточності в Java?

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

1. За допомогою інтерфейсу Java.Lang.Runnable. Класи реалізують цей інтерфейс, щоб увімкнути багатопоточність. У цьому інтерфейсі є метод Run (), який реалізований.

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

Q38. Коли потрібно багато змін у даних, яку перевагу слід використовувати? String або StringBuffer?

Відповідь: Оскільки StringBuffers носять динамічний характер, і ми можемо змінювати значення StringBuffer-об'єктів на відміну від String, який є незмінним, завжди є гарним вибором використовувати StringBuffer, коли дані змінюються занадто сильно. Якщо ми використовуємо String у такому випадку, для кожної зміни даних створюватиметься новий об’єкт String, який буде додатковою накладною витратою.

Q39. Яка мета використання Break у кожному випадку Statement Switch?

Відповідь: Break використовується після кожного випадку (крім останнього) у комутаторі, щоб код ламався після дійсного випадку і не протікав також у наступних випадках.

Якщо перерва не використовується після кожного випадку, усі випадки після дійсного випадку також виконуються, що призводить до неправильних результатів.

Q40. Як здійснюється збір сміття на Java?

Відповідь: У Java, коли на об’єкт більше немає посилань, відбувається збір сміття, і об’єкт автоматично знищується. Для автоматичного збору сміття java викликає метод System.gc () або метод Runtime.gc ().

Q41. Як ми можемо виконати будь-який код навіть до основного методу?

Відповідь: Якщо ми хочемо виконати будь-які оператори ще до створення об’єктів під час завантаження класу, ми можемо використовувати статичний блок коду в класі. Будь-які оператори всередині цього статичного блоку коду виконуються один раз під час завантаження класу ще до створення об'єктів в основному методі.

Q42. Чи може клас одночасно бути суперкласом і підкласом? Наведіть приклад.

Відповідь: Якщо використовується ієрархія успадкування, клас може бути одночасно суперкласом для іншого класу та підкласом для іншого.

У наведеному нижче прикладі клас континент - це підклас світового класу, і це супер клас сільського класу.

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

Q43. Як створюються об’єкти класу, якщо в класі не визначено конструктор?

Відповідь: Навіть якщо в класі Java не визначено жодного явного конструктора, об'єкти створюються успішно, оскільки конструктор за замовчуванням неявно використовується для створення об'єкта. Цей конструктор не має параметрів.

Q44. У багатопотоковості, як ми можемо забезпечити, щоб ресурс не використовувався кількома потоками одночасно?

Відповідь: У багатопотоковості доступ до ресурсів, які розподіляються між кількома потоками, можна контролювати, використовуючи концепцію синхронізації. Використовуючи синхронізоване ключове слово, ми можемо гарантувати, що лише один потік може одночасно використовувати спільний ресурс, а інші можуть отримати контроль над ресурсом лише після того, як він звільниться від іншого, що його використовує.

Q45. Чи можемо ми не раз викликати конструктор класу для об’єкта?

Відповідь: Конструктор викликається автоматично, коли ми створюємо об'єкт за допомогою нового ключового слова. Він викликається лише один раз для об’єкта під час створення об’єкта, отже, ми не можемо знову викликати конструктор для об’єкта після його створення.

Q46. Є два класи з назвою classA та classB. Обидва класи знаходяться в одному пакеті. Чи може приватний член класу A отримати доступ до об'єкта класу B?

Відповідь: Приватні члени класу недоступні поза сферою дії цього класу, і будь-який інший клас, навіть в тому ж пакеті, не може отримати до них доступ.

Q47. Чи можемо ми мати два методи в класі з однаковою назвою?

Відповідь: Ми можемо визначити два методи в класі з однаковим іменем, але з різною кількістю / типом параметрів. Який метод викликати, буде залежати від переданих параметрів.

Наприклад, у наведеному нижче класі ми маємо два методи друку з однаковим іменем, але різними параметрами. Залежно від параметрів буде називатися відповідний:

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");}}

Q48. Як ми можемо зробити копію об’єкта Java?

Відповідь: Ми можемо використовувати концепцію клонування для створення копії об’єкта. За допомогою клону ми створюємо копії з фактичним станом об’єкта.

Clone () - це метод інтерфейсу Cloneable, а отже, інтерфейс Cloneable повинен бути реалізований для створення об'єктних копій.

Q49. Яка вигода від використання спадщини?

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

Q50. Який специфікатор доступу за замовчуванням для змінних та методів класу?

Відповідь: Специфікатор доступу за замовчуванням для змінних та методу захищений пакетом, тобто змінні та клас доступні для будь-якого іншого класу, але в тому ж пакеті, не за межами пакету.

Q51. Наведіть приклад використання покажчиків у класі Java.

Відповідь: На Java немає покажчиків. Тож ми не можемо використовувати поняття покажчиків у Java.

Q52. Як ми можемо обмежити успадкування для класу, щоб жоден клас не міг бути успадкованим від нього?

Відповідь: Якщо ми хочемо, щоб клас не поширювався далі жодним класом, ми можемо використовувати ключове слово Final з назвою класу.

У наступному прикладі клас Stone є Final і не може бути розширений

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

Q53. Яка область доступу специфікатора захищеного доступу?

Відповідь: Коли метод або змінна оголошені за допомогою специфікатора захищеного доступу, вони стають доступними в тому ж класі, будь-якому іншому класі того самого пакета, а також підкласі.

Модифікатор

Клас

Пакет

Підклас

Світ

громадськості

Y

Y

Y

Y

захищений

Y

Y

Y

N

немає модифікатора

Y

Y

N

N

приватний

Y

N

N

N

Q54. Яка різниця між Stack та Queue?

Відповідь: стек і черга використовуються як заповнювач для збору даних. Основна різниця між стеком та чергою полягає в тому, що стек базується на принципі Last in First out (LIFO), а черга - на принципі FIFO (First In First Out).

Q55. У Java, як ми можемо заборонити серіалізацію змінних?

Відповідь: Якщо ми хочемо, щоб певні змінні класу не були серіалізованими, ми можемо використовувати ключове слово перехідний під час їх оголошення. Наприклад, змінна trans_var нижче є перехідною змінною і не може бути серіалізованою:

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

Q56. Як ми можемо використовувати примітивні типи даних як об’єкти?

Відповідь: Примітивні типи даних, такі як int, можуть оброблятися як об’єкти за допомогою відповідних класів обгортки. Наприклад, Integer - це клас обгортки для примітивного типу даних int. Ми можемо застосовувати різні методи до класу обгортки, як і будь-який інший об'єкт.

Q57. Які винятки виявляються під час компіляції?

Відповідь: Перевірені винятки можна виявити під час складання програми. Для успішної компіляції коду необхідно обробляти перевірені винятки за допомогою блоку try catch у коді.

Q58. Опишіть різні стани нитки.

Відповідь: Потік на Java може знаходитись у будь-якому з таких станів:

  • Готовий: Коли потік створений, він знаходиться в стані Готовий.
  • Запуск: Потік, який виконується в даний час, знаходиться в робочому стані.
  • Очікування: Потік, який чекає, щоб інший потік звільнив певні ресурси, знаходиться в стані очікування.
  • Мертвий: Нитка, яка загинула після страти, знаходиться в мертвому стані.

Q59. Чи можемо ми використовувати конструктор за замовчуванням класу, навіть якщо визначений явний конструктор?

Відповідь: Java надає конструктор аргументів за замовчуванням, якщо в класі Java не визначено явного конструктора. Але якщо був визначений явний конструктор, конструктор за замовчуванням не може бути викликаний, і розробник може використовувати лише ті конструктори, які визначені в класі.

Q60. Чи можемо ми замінити метод, використовуючи те саме ім'я методу та аргументи, але різні типи повернення?

Відповідь: Основною умовою перевизначення методу є те, що ім'я методу, аргументи, а також тип повернення повинні бути точно такими ж, як і у методу, який замінюється. Отже, використання іншого типу повернення не замінює метод.

Q61. Яким буде результат наступного фрагмента коду?

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

Відповідь: У цьому випадку використовується оператор postfix ++, який спочатку повертає значення, а потім збільшує. Отже, його вихід буде 4.

Q61. Людина каже, що він успішно склав клас Java, навіть не маючи в ньому основного методу? Це можливо?

Відповідь: основний метод є точкою входу класу Java і необхідний для виконання програми; клас успішно компілюється, навіть якщо у нього немає основного методу. Це неможливо запустити.

Q62. Чи можемо ми викликати нестатичний метод зсередини статичного методу?

Відповідь: Нестатичні методи належать об'єктам класу і мають обсяг на рівні об'єкта, і для виклику нестатичних методів із статичного блоку (як із статичного основного методу) потрібно створити об'єкт класу спочатку. Потім, використовуючи посилання на об’єкт, ці методи можна викликати.

Q63. Які дві змінні середовища необхідно встановити для запуску будь-яких програм Java?

Відповідь: Програми Java можуть виконуватися в машині лише після того, як наступні дві змінні середовища були правильно встановлені:

  1. Змінна PATH
  2. Змінна CLASSPATH

Q64. Чи можна використовувати змінні в Java без ініціалізації?

Відповідь: У Java, якщо змінна використовується в коді без попередньої ініціалізації дійсним значенням, програма не компілюється і видає помилку, оскільки значення змінної в Java не присвоюються.

Q65. Чи можна клас у Java успадкувати від кількох класів?

Відповідь: У Java клас може бути отриманий лише з одного класу, а не з декількох класів. Кілька спадкоємств не підтримується Java.

Q66. Чи може конструктор мати інше ім'я, ніж ім'я класу в Java?

Відповідь: Конструктор в Java повинен мати те саме ім'я, що і ім'я класу, і якщо ім'я інше, воно не діє як конструктор, і компілятор вважає це звичайним методом.

Q67. Яким буде результат Round (3.7) та Ceil (3.7)?

Відповідь: Раунд (3.7) повертає 4, а Ceil (3.7) повертає 4.

Q68: Чи можемо ми використовувати goto в Java, щоб перейти до певного рядка?

Відповідь: У Java немає ключового слова goto, і Java не підтримує цю функцію переходу до певного позначеного рядка.

Q69. Чи можна запустити мертву нитку знову?

Відповідь: У Java, потік у мертвому стані не може бути запущений знову. Неможливо перезапустити мертву нитку.

Q70. Чи правильним є наступне оголошення класу?

Відповідь:

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

Відповідь: Вищезазначена декларація класу є неправильною, оскільки абстрактний клас не може бути оголошений Final.

Q71. Чи потрібен JDK на кожній машині для запуску програми Java?

Відповідь: JDK - це набір для розробки Java і необхідний лише для розробки та запуску програми Java на машині, JDK не потрібен. Потрібно лише JRE.

Q72. Яка різниця між порівнянням, виконаним методом equals, та оператором ==?

Відповідь: У Java метод equals () використовується для порівняння вмісту двох рядкових об'єктів і повертає true, якщо два мають однакове значення, а оператор == порівнює посилання на два рядкові об'єкти.

У наступному прикладі 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");}}}

Q73. Чи можна визначити метод у класі Java, але забезпечити його реалізацію в коді іншої мови, як C?

Відповідь: Так, ми можемо зробити це, використовуючи власні методи. У випадку розробки на основі власних методів, ми визначаємо загальнодоступні статичні методи в нашому класі Java без його реалізації, а потім реалізація здійснюється іншою мовою, такою як C окремо.

Q74. Як визначаються деструктори в Java?

Відповідь: У Java у класі немає деструкторів, оскільки немає необхідності це робити. Java має власний механізм збору сміття, який виконує цю роботу автоматично, знищуючи об'єкти, на які більше немає посилань.

Q75. Чи може змінна бути локальною та статичною одночасно?

Відповідь: Жодна змінна не може бути одночасно статичною, а також локальною. Визначення локальної змінної як статичної дає помилку компіляції.

Q76. Чи можемо ми мати статичні методи в інтерфейсі?

Відповідь: Статичні методи не можуть бути замінені в будь-якому класі, тоді як будь-які методи в інтерфейсі за замовчуванням абстрактні і повинні бути реалізовані в класах, що реалізують інтерфейс. Тому немає сенсу мати статичні методи в інтерфейсі на Java.

Q77. У класі, що реалізує інтерфейс, чи можемо ми змінити значення будь-якої змінної, визначеної в інтерфейсі?

Відповідь: Ні, ми не можемо змінити значення будь-якої змінної інтерфейсу в реалізовуючому класі, оскільки всі змінні, визначені в інтерфейсі, за замовчуванням є загальнодоступними, статичними, а остаточні та кінцеві змінні схожі на константи, які неможливо змінити пізніше.

Q78. Чи правильно говорити, що через функцію збору сміття в Java програма Java ніколи не втрачає пам’ять?

Відповідь: Незважаючи на те, що автоматичний збір сміття забезпечується Java, це не гарантує, що програма Java не втратить пам'ять, оскільки існує ймовірність того, що створення об'єктів Java здійснюється більш швидкими темпами порівняно зі збором сміття, що призводить до заповнення всіх доступних ресурсів пам'яті.

Отже, збір сміття допомагає зменшити шанс програми втратити пам’ять, але це не гарантує.

Q79. Чи можемо ми мати будь-який інший тип повернення, ніж void для основного методу?

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

Тим не менше, якщо вам абсолютно потрібно повернути значення до завершення основного методу, ви можете використовувати System.exit (статус int)

Q80. Я хочу знову дістатись і використовувати об’єкт, як тільки він буде зібраний сміття. Як це можливо?

Відповідь: Після того, як об’єкт було знищено збирачем сміття, він більше не існує в купі, і до нього більше не можна отримати доступ. Немає можливості посилатися на нього ще раз.

Q81. Який метод у програмуванні ниток Java є обов’язковою реалізацією для всіх потоків?

Відповідь: Run () - це метод інтерфейсу Runnable, який повинен бути реалізований усіма потоками.

Q82. Я хочу контролювати підключення до бази даних у своїй програмі і хочу, щоб одночасно могло здійснювати підключення до бази даних лише один потік. Як я можу реалізувати цю логіку?

Відповідь: Це можна реалізувати, використовуючи концепцію синхронізації. Код, пов'язаний з базою даних, може бути розміщений у методі, який синхронізує ключове слово, щоб одночасно мати доступ до нього лише один потік.

Q83. Як може програміст вручну створити виняток?

Відповідь: Для того, щоб вручну викинути виняток у блок коду, використовується ключове слово 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 ");}}

Q84. Я хочу, щоб мій клас був розроблений таким чином, що жоден інший клас (навіть похідний клас) не може створювати свої об'єкти. Як я можу це зробити?

Відповідь: Якщо ми оголосимо конструктор класу приватним, він не буде доступний будь-якому іншому класу, а отже, жоден інший клас не зможе створити його за допомогою екземпляра, а формування його об'єкта буде обмежено лише самим собою.

Q85. Як об’єкти зберігаються в Java?

Відповідь: У Java кожен об'єкт при створенні отримує простір пам'яті з купи. Коли об'єкт знищується збирачем сміття, простір, виділений йому з купи, перерозподіляється в купу і стає доступним для будь-яких нових об'єктів.

Q86. Як ми можемо знайти фактичний розмір об’єкта на купі?

Відповідь: У Java неможливо дізнатися точний розмір об’єкта в купі.

Q87. У якому з наведених класів буде виділено більше пам'яті?

Клас A: Три методи, чотири змінні, без об’єкта

Клас B: П'ять методів, три змінні, без об'єкта

Відповідь: Пам'ять не виділяється до створення об'єктів. Оскільки для обох класів немає створених об'єктів, тому пам'ять не виділяється в купі для будь-якого класу.

Q88. Що станеться, якщо у програмі не обробляється виняток?

Відповідь: Якщо в програмі не обробляється виняток із використанням блоків try catch, програма переривається, і жоден оператор не виконується після оператора, який спричинив виникнення винятків.

Q89. У мене є кілька конструкторів, визначених у класі. Чи можна викликати конструктор з тіла іншого конструктора?

Відповідь: Якщо клас має кілька конструкторів, можна викликати один конструктор із тіла іншого, використовуючи this () .

Q90. Що означає анонімний клас?

Відповідь: Анонімний клас - це клас, визначений без будь-якого імені в одному рядку коду за допомогою нового ключового слова.

Наприклад, у наведеному нижче коді ми визначили анонімний клас в одному рядку коду:

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;}}

Q91. Чи є спосіб збільшити розмір масиву після його оголошення?

Відповідь: Масиви статичні, і як тільки ми вказали його розмір, ми не можемо його змінити. Якщо ми хочемо використовувати такі колекції, де нам може знадобитися зміна розміру (без елементів), нам слід віддавати перевагу вектору над масивом.

Q92. Якщо додаток містить кілька класів, чи нормально мати основний метод у декількох класах?

Відповідь: Якщо в Java-програмі є основний метод у декількох класах, це не спричинить жодної проблеми, оскільки точкою входу для будь-якої програми буде конкретний клас, а код почнеться лише з основного методу цього конкретного класу.

Q93. Я хочу зберегти дані об'єктів для подальшого використання. Який найкращий підхід для цього?

Відповідь: Найкращий спосіб зберегти дані для подальшого використання - це використовувати концепцію серіалізації.

Q94. Що таке локальний клас на Java?

Відповідь: У Java, якщо ми визначаємо новий клас всередині певного блоку, це називається локальним класом. Такий клас має локальний обсяг і не може бути використаний поза блоком, де це визначено.

Q95. String і StringBuffer представляють об'єкти String. Чи можна порівняти String та StringBuffer в Java?

Відповідь: Незважаючи на те, що String і StringBuffer представляють об'єкти String, ми не можемо порівняти їх між собою, і якщо ми спробуємо порівняти їх, ми отримаємо помилку.

Q96. Який API надається Java для операцій з набором об'єктів?

Відповідь: Java пропонує API колекції, який надає багато корисних методів, які можна застосувати до набору об'єктів. Деякі важливі класи, які надає Collection API, включають ArrayList, HashMap, TreeSet і TreeMap.

Q97. Чи можемо ми передати будь-який інший тип у логічний тип за допомогою лиття типу?

Відповідь: Ні, ми не можемо передати будь-який інший примітивний тип до логічного типу даних, а також не може привести тип логічного типу до будь-якого іншого примітивного типу даних.

Q98. Чи можемо ми використовувати різні типи повернень для методів, якщо їх замінено?

Відповідь: Основною вимогою перевизначення методу в Java є те, що перевизначений метод повинен мати одне і те ж ім'я та параметри. Але метод може бути замінений іншим типом повернення, якщо новий тип повернення розширює оригінал.

Наприклад, метод повертає посилальний тип.

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

Q99. Який базовий клас усіх класів винятків?

Відповідь: У Java Java.lang.Throwable є суперкласом усіх класів винятків, і всі класи винятків є похідними від цього базового класу.

Q100. Який порядок виклику конструкторів при успадкуванні?

Відповідь: У разі успадкування, коли створюється новий об'єкт похідного класу, спочатку викликається конструктор суперкласу, а потім викликається конструктор похідного класу.

Підготуйтеся до співбесіди !!! Пройдіть підручник з Java, щоб бути краще підготовленими.

Цей детальний запитання щодо інтерв’ю на Java pdf допоможе вам зняти сумніви щодо питань інтерв’ю на Java, а також допоможе зламати інтерв’ю.