Изтеглете PDF
Събрахме най-често задаваните въпроси и отговори за интервю за Java, които ще ви помогнат да се подготвите за основните въпроси за интервю за Java, които интервюиращият може да ви зададе по време на интервюто. В този списък с основни въпроси за интервю за Java сме обхванали всички често задавани основни и усъвършенствани въпроси за интервю за Core 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) Докато Loops
Цикълът while се използва, когато някои оператори трябва да се изпълняват многократно, докато условието бъде изпълнено. В циклите while състоянието се проверява първо преди изпълнението на операторите.
3) Правете докато цикли
Do While Loop е същото като цикъла While, само с разлика, че условието се проверява след изпълнение на блок от инструкции. Следователно в случай на цикъл do while операторите се изпълняват поне веднъж.
Въпрос 7: Какво е безкраен цикъл? Как се декларира безкраен цикъл?
Отговор: Безкраен цикъл работи без никакви условия и работи безкрайно. Един безкраен цикъл може да бъде прекъснат, като се дефинира всяка логика на прекъсване в тялото на блоковете с оператори.
Безкрайният цикъл се декларира, както следва:
for (;;){// Statements to execute// Add any loop breaking logic}
Q8. Каква е разликата между оператора continue и break?
Отговори: break and continue са две важни ключови думи, използвани в Loops. Когато се използва ключова дума break в цикъл, цикълът се прекъсва незабавно, докато когато се използва ключова дума continue, текущата итерация се прекъсва и цикълът продължава със следващата итерация.
В долния пример Loop се прекъсва, когато броячът достигне 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");}
В9. Каква е разликата между двойни и плаващи променливи в Java?
Отговор: В java, float отнема 4 байта в памет, докато Double взема 8 байта в паметта. Float е десетично число с плаваща запетая с единична точност, докато Double е десетично число с двойна точност.
Q10. Какво е последната ключова дума в Java? Дай пример.
Отговор: В java се декларира константа с помощта на ключовата дума Final. Стойността може да бъде присвоена само веднъж и след присвояване стойността на константата не може да се променя.
В долния пример се декларира константа с името const_val и му се присвоява avalue:
Частен финал int const_val = 100
Когато методът е деклариран като окончателен, той НЕ може да бъде заменен от подкласовете.Този метод е по-бърз от всеки друг метод, тъй като те се разрешават по спазено време.
Когато клас е деклариран като окончателен, той не може да бъде подкласиран. Примерни низове, цяло число и други класове обвивки.
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);}}
В12: Как можете да генерирате произволни числа в Java?
Отговор:
- С помощта на Math.random () можете да генерирате произволни числа в диапазона, по-голям или равен на 0,1 и по-малък от 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");}}}
Q14. Какъв е основният клас в Java, от който са получени всички класове?
Отговор: java.lang.object
Q15. Може ли методът main () в Java да върне всякакви данни?
Отговор: В java методът main () не може да върне никакви данни и следователно винаги се декларира с тип void return.
Q16. Какво представляват Java пакетите? Какво е значението на пакетите?
Отговор: В Java пакетът е колекция от класове и интерфейси, които са свързани заедно, тъй като са свързани помежду си. Използването на пакети помага на разработчиците да модулират кода и да групират кода за правилно повторно използване. След като кодът е опакован в Packages, той може да бъде импортиран в други класове и използван.
Q17. Можем ли да обявим клас като Абстрактен, без да имаме какъвто и да е абстрактен метод?
Отговор: Да, можем да създадем абстрактен клас, като използваме абстрактна ключова дума преди името на класа, дори ако той няма никакъв абстрактен метод. Ако обаче клас има дори един абстрактен метод, той трябва да бъде деклариран като абстрактен, в противен случай ще даде грешка.
Q18. Каква е разликата между абстрактния клас и интерфейса в Java?
Отговор: Основната разлика между абстрактния клас и интерфейса е, че интерфейсът може да притежава декларация само за публични статични методи без конкретна реализация, докато абстрактният клас може да има членове с каквито и да било спецификатори за достъп (публични, частни и т.н.) със или без конкретна реализация.
Друга ключова разлика в използването на абстрактни класове и интерфейси е, че клас, който реализира интерфейс, трябва да реализира всички методи на интерфейса, докато клас, който наследява от абстрактния клас, не изисква изпълнение на всички методи на своя супер клас.
Един клас може да реализира множество интерфейси, но може да разшири само един абстрактен клас.
Q19. Какви са последиците за производителността на интерфейсите върху абстрактните класове?
Отговори: Интерфейсите са с по-ниска производителност в сравнение с абстрактните класове, тъй като за интерфейсите са необходими допълнителни индирекции. Друг ключов фактор, който разработчиците трябва да вземат под внимание, е, че всеки клас може да разшири само един абстрактен клас, докато клас може да реализира много интерфейси.
Използването на интерфейси също така поставя допълнителна тежест върху разработчиците, тъй като всеки път, когато интерфейс е внедрен в клас; разработчикът е принуден да приложи всеки метод за интерфейс.
Q20. Импортирането на пакет ли импортира своите подпакети също в Java?
Отговор: В java, когато пакетът се импортира, неговите подпакети не се импортират и разработчикът трябва да ги импортира отделно, ако е необходимо.
Например, ако разработчик импортира пакетни университети. *, Всички класове в пакета с име университет се зареждат, но не се зареждат класове от подпакета. За да зареди класовете от своя подпакет (да кажем отдел), разработчикът трябва да го импортира изрично, както следва:
Внос университетски отдел. *
Q21. Можем ли да обявим основния метод на нашия клас като частен?
Отговор: В Java основният метод трябва да е публичен статичен, за да се изпълнява правилно всяко приложение. Ако основният метод е деклариран като частен, разработчикът няма да получи грешка при компилацията, но няма да се изпълни и ще даде грешка по време на изпълнение.
Q22. Как можем да предадем аргумент на функция чрез препратка вместо чрез предаване по стойност?
Отговор: В java можем да предадем аргумент на функция само по стойност, а не по препратка.
Q23. Как се сериализира обект в Java?
Отговор: В java, за да конвертирате обект в байтов поток чрез сериализация, интерфейсът с името Serializable се реализира от класа. Всички обекти от клас, изпълняващ сериализуем интерфейс, се сериализират и състоянието им се записва в байтов поток.
Q24. Кога трябва да използваме сериализация?
Отговор: Сериализацията се използва, когато данните трябва да се предават по мрежата. Използвайки сериализация, състоянието на обекта се записва и преобразува в байтов поток. Байтовият поток се прехвърля през мрежата и обектът се пресъздава по местоназначение.
Q25. Задължително ли е опитният блок да бъде последван от блок за улавяне в Java за обработка на изключения?
Отговор: Опитайте блока трябва да бъде последван от блока Catch или накрая или от двете. Всяко изключение, хвърлено от блока try, трябва да бъде хванато в блока catch, или някакви специфични задачи, които трябва да бъдат изпълнени преди абортът на кода да бъде поставен в блока Final.
Q26. Има ли някакъв начин да пропуснете накрая блок на изключение, дори ако възникне някакво изключение в блока на изключението?
Отговор: Ако в блока Try се изведе изключение, контролът преминава към 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?
Отговор: String не е примитивен тип данни в java. Когато низ е създаден в java, той всъщност е обект на клас Java.Lang.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 се отнася до низ обект със стойност "Стойност едно".
String str="Value One";
Когато му се присвоява нова стойност, се създава нов String обект и препратката се премества в новия обект.
str="New Value";
Q34. Каква е разликата между масив и вектор?
Отговор: Масивът групира данни от същия примитивен тип и има статичен характер, докато векторите са динамични и могат да съдържат данни от различни типове данни.
Q35. Какво е многопоточност?
Отговор: Мулти резбата е концепция за програмиране за изпълнение на множество задачи по едновременен начин в рамките на една програма. Нишките споделят един и същ стек от процеси и работят паралелно. Помага за подобряване на производителността на всяка програма.
Q36. Защо Runnable Interface се използва в Java?
Отговор: Изпълнителният интерфейс се използва в java за внедряване на многонишкови приложения. Java.Lang.Runnable интерфейсът е реализиран от клас, за да поддържа многопоточност.
Q37. Кои са двата начина за внедряване на многопоточност в Java?
Отговор: Многонишковите приложения могат да бъдат разработени в Java чрез използване на някоя от следните две методологии:
1. С помощта на Java.Lang.Runnable Interface. Класовете изпълняват този интерфейс, за да позволят многопоточност. В този интерфейс има метод Run (), който е внедрен.
2. Като напишете клас, който разширява класа Java.Lang.Thread.
Q38. Когато се изискват много промени в данните, кое трябва да бъде предпочитание да се използва? String или StringBuffer?
Отговор: Тъй като StringBuffers имат динамичен характер и можем да променяме стойностите на StringBuffer обекти за разлика от String, който е неизменен, винаги е добър избор да използваме StringBuffer, когато данните се променят твърде много. Ако използваме String в такъв случай, за всяка промяна на данните ще бъде създаден нов String обект, който ще бъде допълнителен режим.
Q39. Каква е целта на използването на Break във всеки случай на Switch Statement?
Отговор: 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. И двата класа са в един и същ пакет. Може ли частен член на classA да бъде достъпен от обект на classB?
Отговор: Частни членове на клас не са достъпни извън обхвата на този клас и всеки друг клас, дори в същия пакет, няма достъп до тях.
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. Какъв е обхватът на достъпа на спецификатора за защитен достъп?
Отговор: Когато метод или променлива са декларирани със спецификатор Protected access, те стават достъпни в същия клас, всеки друг клас от същия пакет, както и подклас.
Модификатор |
Клас |
Пакет |
Подклас |
Свят |
публично |
Y. |
Y. |
Y. |
Y. |
защитен |
Y. |
Y. |
Y. |
н |
няма модификатор |
Y. |
Y. |
н |
н |
частни |
Y. |
н |
н |
н |
Q54. Каква е разликата между стека и опашката?
Отговор: И стекът, и опашката се използват като заместител за събиране на данни. Основната разлика между стека и опашката е, че стекът се основава на принципа 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 може да бъде в едно от следните състояния:
- Готов: Когато се създаде нишка, тя е в състояние на готовност.
- Изпълнява се: Изпълняваната в момента нишка е в работещо състояние.
- Изчакване: Нишка, която чака друга нишка за освобождаване на определени ресурси, е в състояние на изчакване.
- Dead: Нишка, която е умряла след екзекуцията, е в мъртво състояние.
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 програмите могат да се изпълняват в машина само след като две променливи на средата са били правилно зададени:
- Променлива PATH
- CLASSPATH променлива
Q64. Могат ли променливите да се използват в Java без инициализация?
Отговор: В Java, ако променлива се използва в код без предварителна инициализация от валидна стойност, програмата не се компилира и дава грешка, тъй като не е зададена стойност по подразбиране за променливите в Java.
Q65. Може ли клас в Java да се наследи от повече от един клас?
Отговор: В Java клас може да се извлече само от един клас, а не от множество класове. Множество наследства не се поддържат от Java.
Q66. Може ли конструктор да има различно име от име на клас в Java?
Отговор: Конструкторът в Java трябва да има същото име като името на класа и ако името е различно, той не действа като конструктор и компилаторът го смята за нормален метод.
Q67. Какъв ще бъде резултатът от Round (3.7) и Ceil (3.7)?
Отговор: Round (3.7) връща 4, а Ceil (3.7) връща 4.
В68: Можем ли да използваме goto в Java, за да преминем към определен ред?
Отговор: В Java няма ключова дума goto и java не поддържа тази функция за преминаване към определен етикетиран ред.
Q69. Може ли мъртва нишка да се стартира отново?
Отговор: В java нишка, която е в мъртво състояние, не може да бъде стартирана отново. Няма начин да рестартирате мъртва нишка.
Q70. Правилна ли е следната декларация за клас?
Отговор:
public abstract final class testClass {// Class methods and variables}
Отговор: Горната декларация за клас е неправилна, тъй като абстрактният клас не може да бъде деклариран като окончателен.
Q71. Изисква ли се JDK на всяка машина за стартиране на Java програма?
Отговор: JDK е комплект за разработка на Java и е необходим само за разработка и за стартиране на Java програма на машина, JDK не се изисква. Изисква се само JRE.
Q72. Каква е разликата между сравнението, извършено по метода на равно и оператора ==?
Отговор: В 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. В клас, изпълняващ интерфейс, можем ли да променим стойността на която и да е променлива, дефинирана в интерфейса?
Отговор: Не, не можем да променим стойността на която и да е променлива на интерфейс в изпълнението на класа, тъй като всички променливи, дефинирани в интерфейса, по подразбиране са публични, статичните и Final и final променливите са като константи, които не могат да бъдат променяни по-късно.
Q78. Правилно ли е да се каже, че поради функцията за събиране на боклук в Java, Java програма никога не излиза от паметта?
Отговор: Въпреки че автоматичното събиране на боклука се осигурява от Java, това не гарантира, че Java програма няма да изчезне от паметта, тъй като съществува възможност създаването на Java обекти да се извършва с по-бързи темпове в сравнение със събирането на боклука, което води до попълване на всички налични ресурси памет.
Така че събирането на боклука помага за намаляване на шансовете програма да остане без памет, но не гарантира това.
Q79. Можем ли да имаме друг тип връщане освен void за основния метод?
Отговор: Не, основният метод на класа Java може да има само тип връщане void, за да може програмата да бъде успешно изпълнена.
Независимо от това, ако абсолютно трябва да върнете стойност при завършване на основния метод, можете да използвате System.exit (int status)
Q80. Искам да достигна отново и да използвам обект, след като бъде събран боклук. Как е възможно?
Отговор: След като обектът бъде унищожен от събирача на боклук, той вече не съществува в купчината и не може да бъде достъпен отново. Няма начин да го препратите отново.
Q81. В Java програмирането на нишки, кой метод е задължително изпълнение за всички нишки?
Отговор: Run () е метод на интерфейс за изпълнение, който трябва да бъде реализиран от всички нишки.
Q82. Искам да контролирам връзките с база данни в моята програма и искам само една нишка да може да осъществява връзка с база данни в даден момент. Как мога да приложа тази логика?
Отговор: Това може да се реализира чрез използване на концепцията за синхронизация. Кодът, свързан с базата данни, може да бъде поставен в метод, който има синхронизирана ключова дума, така че само една нишка да има достъп до нея наведнъж.
Q83. Как може да се хвърли изключение ръчно от програмист?
Отговор: За да се хвърли изключение в блок от код ръчно, се използва ключова дума throw . Тогава това изключение се улавя и обработва в блока за хващане.
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. Кой от следните класове ще разполага с повече памет?
Клас А: Три метода, четири променливи, без обект
Клас 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 за събиране, който предоставя много полезни методи, които могат да бъдат приложени върху набор от обекти. Някои от важните класове, предоставени от API за събиране, включват ArrayList, HashMap, TreeSet и TreeMap.
Q97. Можем ли да прехвърлим всеки друг тип в Boolean Type с кастинг на тип?
Отговор: Не, не можем нито да приложим друг примитивен тип към булев тип данни, нито да приложим булев тип данни към друг примитивен тип данни.
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 Tutorial, за да се подготвите по-добре.
Този подробен pdf въпрос за интервю за Java ще ви помогне да изчистите съмненията относно въпросите за интервю за Java и ще ви помогне да пропуснете интервюто.