Top 100 Java Interview Questions and Answers (Stáhnout PDF)

Obsah:

Anonim

Stáhnout PDF

Sestavili jsme nejčastěji kladené otázky a odpovědi týkající se rozhovorů v prostředí Java, které vám pomohou připravit se na základní otázky týkající se rozhovorů v jazyce Java, které vám může tazatel položit během rozhovoru. V tomto seznamu základních otázek týkajících se rozhovorů v jazyce Java jsme pokryli všechny běžně kladené otázky týkající se základních a pokročilých otázek rozhovorů v prostředí Java s podrobnými odpověďmi, které vám pomohou vyčistit pracovní pohovor.

Následující seznam obsahuje 100 důležitých otázek týkajících se rozhovorů s jádrem Java pro nováčky, jakož i otázek a odpovědí pro rozhovor s Java pro zkušené programátory, které jim pomohou připravit se na rozhovor. Tento podrobný průvodce otázkami k pohovoru pro programování v Javě vám pomůže snadno rozbít váš pracovní pohovor.

Základní otázky a odpovědi týkající se rozhovorů v jazyce Java pro nováčky a zkušené

Q1. Jaký je rozdíl mezi vnitřní třídou a podtřídou?

Odpověď: Vnitřní třída je třída, která je vnořená do jiné třídy. Vnitřní třída má přístupová práva pro třídu, která ji vnořuje, a má přístup ke všem proměnným a metodám definovaným ve vnější třídě.

Podtřída je třída, která dědí z jiné třídy zvané super třída. Podtřída má přístup ke všem veřejným a chráněným metodám a polím své super třídy.

Q2. Jaké jsou různé specifikátory přístupu pro třídy Java?

Odpověď: V Javě jsou specifikátory přístupu klíčová slova použitá před názvem třídy, která definuje rozsah přístupu. Typy specifikátorů přístupu pro třídy jsou:

1. Veřejné: Třída, metoda, pole je přístupné odkudkoli.

2. Chráněno: K metodě, poli lze přistupovat ze stejné třídy, do které patří, nebo z podtříd a ze třídy stejného balíčku, ale ne zvenčí.

3. Výchozí: Metoda, Pole, třída je přístupná pouze ze stejného balíčku, nikoli zvenčí jeho nativního balíčku.

4. Soukromé: Metoda, do pole lze přistupovat ze stejné třídy, do které patří.

Q3. Jaký je účel statických metod a statických proměnných?

Odpověď: Když existuje požadavek na sdílení metody nebo proměnné mezi více objekty třídy místo vytváření samostatných kopií pro každý objekt, použijeme statické klíčové slovo k vytvoření metody nebo proměnné sdílené pro všechny objekty.

Q4. Co je zapouzdření dat a jaký je jeho význam?

Ans: Zapouzdření je koncept v objektově orientovaném programování pro kombinování vlastností a metod v jedné jednotce.

Zapouzdření pomáhá programátorům sledovat modulární přístup k vývoji softwaru, protože každý objekt má svou vlastní sadu metod a proměnných a slouží svým funkcím nezávisle na ostatních objektech. Zapouzdření slouží také ke skrytí dat.

Q5. Co je třída Singleton? Uveďte praktický příklad jeho použití.

Třída singleton v Javě může mít pouze jednu instanci, a proto všechny její metody a proměnné patří pouze jedné instanci. Koncept třídy Singleton je užitečný pro situace, kdy je potřeba omezit počet objektů pro třídu.

Nejlepším příkladem scénáře využití singletonu je situace, kdy existuje omezení mít pouze jedno připojení k databázi kvůli některým omezením ovladačů nebo kvůli problémům s licencí.

Q6. Co jsou smyčky v Javě? Jaké jsou tři typy smyček?

Ans: Smyčka se používá v programování k opakovanému provádění příkazu nebo bloku příkazu. V Javě existují tři typy smyček:

1) Pro smyčky

Pro smyčky se v Javě používají k opakovanému provádění příkazů pro daný počet opakování. Smyčky for se používají, když programátor zná počet opakování příkazů.

2) Zatímco smyčky

Zatímco smyčka se používá, když je třeba určité příkazy provádět opakovaně, dokud není splněna podmínka. Ve smyčkách while je nejprve zkontrolována podmínka před provedením příkazů.

3) Proveďte While Loops

Smyčka Do While je stejná jako smyčka While s tím rozdílem, že tato podmínka je zkontrolována po provedení bloku příkazů. Proto v případě smyčky do while jsou příkazy prováděny alespoň jednou.

Otázka 7: Co je to nekonečná smyčka? Jak je deklarována nekonečná smyčka?

Odpověď: Nekonečná smyčka běží bez jakékoli podmínky a běží nekonečně. Nekonečnou smyčku lze přerušit definováním jakékoli logiky rozbití v těle bloků příkazů.

Nekonečná smyčka je deklarována takto:

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

Q8. Jaký je rozdíl mezi příkazem continue a break?

Odpověď: rozdělit a pokračovat jsou dvě důležitá klíčová slova použitá ve smyčkách. Když se ve smyčce použije klíčové slovo break, smyčka se okamžitě rozbije, zatímco když se použije klíčové slovo continue, aktuální iterace se rozbije a smyčka pokračuje s další iterací.

V níže uvedeném příkladu je smyčka přerušena, když čítač dosáhne 4.

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

V níže uvedeném příkladu, když čítač dosáhne 4, smyčka přeskočí na další iteraci a všechny příkazy po klíčovém slovu continue budou pro aktuální iteraci přeskočeny.

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. Jaký je rozdíl mezi double a float proměnnými v Javě?

Odpověď: V Javě float trvá 4 bajty v paměti, zatímco Double bere 8 bajtů v paměti. Float je desetinné číslo s plovoucí desetinnou čárkou s přesnou přesností, zatímco Double je desetinné číslo s dvojitou přesností.

Q10. Co je konečné klíčové slovo v Javě? Uveďte příklad.

Odpověď: V Javě je konstanta deklarována pomocí klíčového slova Final. Hodnotu lze přiřadit pouze jednou a po přiřazení nelze hodnotu konstanty změnit.

V níže uvedeném příkladu je deklarována konstanta s názvem const_val a je jí přiřazena hodnota:

Soukromé konečné int const_val = 100

Když je metoda deklarována jako konečná, nelze ji přepsat podtřídami. Tato metoda je rychlejší než jakákoli jiná metoda, protože jsou vyřešeny v době splnění.

Když je třída deklarována jako konečná, nelze ji podtřídy. Příklad řetězců, celých čísel a dalších tříd obalů.

Q11. Co je ternární operátor? Uveďte příklad.

Ans: Ternární operátor, nazývaný také podmíněný operátor, se používá k rozhodnutí, jakou hodnotu přiřadit proměnné na základě vyhodnocení booleovské hodnoty. Je to označeno jako?

V níže uvedeném příkladu, je-li pořadí 1, je stavu přiřazena hodnota „Hotovo“, jinak „Čeká“.

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

Otázka 12: Jak můžete generovat náhodná čísla v Javě?

Odpověď:

  • Pomocí Math.random () můžete generovat náhodná čísla v rozsahu větším nebo rovném 0,1 a menším než 1,0
  • Používání třídy Random v balíčku java.util

Q13. Co je výchozí případ přepnutí? Uveďte příklad.

Odpověď: V příkazu switch se provede výchozí případ, když se neshodují žádné jiné podmínky switch. Výchozí případ je volitelný případ. Lze jej deklarovat pouze po kódování všech ostatních případů přepnutí.

V níže uvedeném příkladu, pokud skóre není 1 nebo 2, použije se výchozí případ.

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. Jaká je základní třída v Javě, ze které jsou odvozeny všechny třídy?

Odpovědi: java.lang.object

Q15. Může metoda main () v Javě vrátit libovolná data?

Odpověď: V java metoda main () nemůže vrátit žádná data, a proto je vždy deklarována s návratovým typem void.

Q16. Co jsou balíčky Java? Jaký význam mají balíčky?

Odpověď: V Javě je balíček kolekce tříd a rozhraní, která jsou seskupena dohromady, protože spolu souvisejí. Použití balíčků pomáhá vývojářům modularizovat kód a seskupit jej pro správné opětovné použití. Jakmile byl kód zabalen do balíčků, lze jej importovat do jiných tříd a použít.

Q17. Můžeme deklarovat třídu jako abstraktní, aniž bychom měli nějakou abstraktní metodu?

Odpověď: Ano, můžeme vytvořit abstraktní třídu pomocí abstraktního klíčového slova před názvem třídy, i když nemá žádnou abstraktní metodu. Pokud však třída má dokonce jednu abstraktní metodu, musí být deklarována jako abstraktní, jinak způsobí chybu.

Q18. Jaký je rozdíl mezi abstraktní třídou a rozhraním v Javě?

Odpověď: Primárním rozdílem mezi abstraktní třídou a rozhraním je, že rozhraní může mít pouze deklaraci veřejných statických metod bez konkrétní implementace, zatímco abstraktní třída může mít členy s jakýmkoli specifikátorem přístupu (veřejným, soukromým atd.) S konkrétní implementací nebo bez ní.

Dalším klíčovým rozdílem v použití abstraktních tříd a rozhraní je, že třída, která implementuje rozhraní, musí implementovat všechny metody rozhraní, zatímco třída, která dědí z abstraktní třídy, nevyžaduje implementaci všech metod své super třídy.

Třída může implementovat více rozhraní, ale může rozšířit pouze jednu abstraktní třídu.

Q19. Jaké jsou výkonové důsledky rozhraní nad abstraktními třídami?

Odpověď: Rozhraní mají pomalejší výkon ve srovnání s abstraktními třídami, protože pro rozhraní jsou vyžadovány další indirekce. Dalším klíčovým faktorem, který musí vývojáři vzít v úvahu, je, že libovolná třída může rozšířit pouze jednu abstraktní třídu, zatímco třída může implementovat mnoho rozhraní.

Použití rozhraní také přináší další zátěž pro vývojáře, protože kdykoli je rozhraní implementováno ve třídě; vývojář je nucen implementovat všechny metody rozhraní.

Q20. Importuje balíček importuje jeho dílčí balíčky také v Javě?

Odpověď: V Javě se při importu balíčku nedovážejí jeho dílčí balíčky a vývojář je musí v případě potřeby samostatně importovat.

Například pokud vývojář importuje univerzitu balíčku. *, Načtou se všechny třídy v balíčku s názvem univerzita, ale nenačtou se žádné třídy z dílčího balíčku. Chcete-li načíst třídy ze svého dílčího balíčku (řekněme oddělení), musí jej vývojář explicitně importovat následujícím způsobem:

Importovat univerzitní oddělení. *

Q21. Můžeme prohlásit hlavní metodu naší třídy za soukromou?

Odpověď: V jazyce Java musí být hlavní metoda veřejná statická, aby bylo možné správně spustit libovolnou aplikaci. Pokud je hlavní metoda deklarována jako soukromá, vývojář nedostane žádnou chybu kompilace, ale nebude spuštěn a způsobí runtime chybu.

Q22. Jak můžeme předat argument funkci odkazem místo hodnoty předáním?

Odpověď: V Javě můžeme argument předat funkci pouze podle hodnoty a ne podle odkazu.

Q23. Jak je objekt serializován v Javě?

Odpověď: V Javě pro převedení objektu na bajtový proud pomocí serializace je třídou implementováno rozhraní s názvem Serializable. Všechny objekty třídy implementující serializovatelné rozhraní se serializují a jejich stav se uloží do bajtového proudu.

Q24. Kdy bychom měli použít serializaci?

Odpověď: Serializace se používá, když je třeba přenášet data po síti. Pomocí serializace se stav objektu uloží a převede na bajtový proud. Bajtový proud se přenese po síti a objekt se znovu vytvoří v místě určení.

Q25. Je povinné, aby za Try Blockem následoval Catch Block v Javě pro zpracování výjimek?

Odpověď: Za blokem Try musí následovat blok Catch nebo Block Block nebo obojí. Jakákoli výjimka vyvolaná z bloku try musí být buď zachycena v bloku catch, nebo jakékoli jiné konkrétní úkoly, které mají být provedeny před vložením potratu kódu do bloku Finally.

Q26. Existuje nějaký způsob, jak konečně přeskočit blok výjimek, i když v bloku výjimek dojde k nějaké výjimce?

Odpověď: Pokud je v bloku Try vyvolána výjimka, ovládací prvek přejde do bloku catch, pokud existuje, jinak bude nakonec blokován. Nakonec se blok provede vždy, když dojde k výjimce, a jediným způsobem, jak se vyhnout provedení jakýchkoli příkazů v bloku Nakonec, je násilné přerušení kódu napsáním následujícího řádku kódu na konci bloku try:

System.exit(0);

Q27. Když je vyvolán konstruktor třídy?

Odpověď: Konstruktor třídy je vyvolán pokaždé, když je objekt vytvořen pomocí nového klíčového slova.

Například v následující třídě jsou dva objekty vytvořeny pomocí nového klíčového slova, a proto je konstruktor vyvolán dvakrát.

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. Může mít třída více konstruktorů?

Odpověď: Ano, třída může mít více konstruktorů s různými parametry. Který konstruktor se použije pro vytvoření objektu, závisí na argumentech předaných při vytváření objektů.

Q29. Můžeme přepsat statické metody třídy?

Odpověď: Nemůžeme přepsat statické metody. Statické metody patří do třídy a ne do jednotlivých objektů a jsou vyřešeny v době kompilace (ne za běhu). I když se pokusíme přepsat statickou metodu, nedostaneme chybu komplikace ani dopad přepsání při spuštění kód.

Q30. V níže uvedeném příkladu, jaký bude výstup?

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

Odpověď : Výstup bude:

Zobrazuji z podtřídy

Zobrazuji ze supertřídy

Q31. Je řetězec datový typ v Javě?

Ans: String není primitivní datový typ v Javě. Když je řetězec vytvořen v Javě, je to vlastně objekt třídy Java.Lang.String, který se vytvoří. Po vytvoření tohoto objektu řetězce lze na objekt řetězce použít všechny vestavěné metody třídy String.

Q32. V níže uvedeném příkladu, kolik řetězcových objektů je vytvořeno?

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

Odpověď: Ve výše uvedeném příkladu jsou vytvořeny dva objekty třídy Java.Lang.String. s1 a s3 jsou odkazy na stejný objekt.

Q33. Proč se řetězce v Javě nazývají Immutable?

Odpověď: V Javě se řetězcové objekty nazývají neměnné, protože jakmile je řetězci přiřazena hodnota, nelze ji změnit a pokud se změní, vytvoří se nový objekt.

V níže uvedeném příkladu reference str odkazuje na objekt řetězce, který má hodnotu „Value one“.

String str="Value One";

Když je jí přiřazena nová hodnota, vytvoří se nový objekt String a odkaz se přesune do nového objektu.

str="New Value";

Q34. Jaký je rozdíl mezi polem a vektorem?

Odpověď: Pole seskupuje data stejného primitivního typu a má statickou povahu, zatímco vektory jsou dynamické a mohou obsahovat data různých datových typů.

Q35. Co je multi-threading?

Ans: Multi threading je programovací koncept pro běh více úkolů současně v rámci jednoho programu. Vlákna sdílejí stejný procesní zásobník a běží paralelně. Pomáhá při zlepšování výkonu jakéhokoli programu.

Q36. Proč se v Javě používá Runnable Interface?

Odpověď: Spustitelné rozhraní se v Javě používá k implementaci vícevláknových aplikací. Rozhraní Java.Lang.Runnable je implementováno třídou na podporu více vláken.

Q37. Jaké jsou dva způsoby implementace více vláken v Javě?

Odpověď: Vícevláknové aplikace lze v Javě vyvíjet pomocí kterékoli z následujících dvou metodik:

1. Pomocí rozhraní Java.Lang.Runnable. Třídy implementují toto rozhraní, aby umožnily více vláken. V tomto rozhraní je implementována metoda Run ().

2. Napsáním třídy, která rozšiřuje třídu Java.Lang.Thread.

Q38. Pokud je v datech vyžadováno mnoho změn, která z nich by měla být přednostně použita? String nebo StringBuffer?

Odpověď: Vzhledem k tomu, že StringBuffers mají dynamickou povahu a můžeme měnit hodnoty objektů StringBuffer na rozdíl od Stringu, který je neměnný, je vždy dobrá volba použít StringBuffer, když se data příliš mění. Pokud v takovém případě použijeme String, pro každou změnu dat bude vytvořen nový objekt String, který bude zvláštní režií.

Q39. Jaký je účel použití Break v každém případě příkazu Switch?

Ans: Break se používá po každém případě (s výjimkou posledního) v přepínači, takže kód se po platném případě rozbije a neteče také v řízení

Pokud se po každém případě nepoužije break, všechny případy po platném případě se také provedou, což má za následek nesprávné výsledky.

Q40. Jak probíhá sběr odpadků v Javě?

Odpověď: V Javě, když se na objekt již neodkazuje, dojde k uvolnění paměti a objekt se automaticky zničí. Pro automatický sběr odpadu Java volá buď metodu System.gc (), nebo metodu Runtime.gc ().

Q41. Jak můžeme provést libovolný kód ještě před hlavní metodou?

Odpověď: Pokud chceme provést jakékoli příkazy před rovnoměrným vytvořením objektů v době načítání třídy, můžeme ve třídě použít statický blok kódu. Jakékoli příkazy uvnitř tohoto statického bloku kódu budou provedeny jednou v době načítání třídy ještě před vytvořením objektů v hlavní metodě.

Q42. Může být třída supertřídou a podtřídou současně? Uveďte příklad.

Odpověď: Pokud se používá hierarchie dědičnosti, může být třída super třídou pro jinou třídu a podtřídou pro jinou současně.

V níže uvedeném příkladu je třída kontinentu podtřídou třídy světové a je to super třída třídy země.

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

Q43. Jak jsou vytvářeny objekty třídy, pokud ve třídě není definován žádný konstruktor?

Odpověď: I když ve třídě Java není definován žádný explicitní konstruktor, objekty se úspěšně vytvoří jako výchozí konstruktor, který se implicitně použije pro vytvoření objektu. Tento konstruktor nemá žádné parametry.

Q44. Jak můžeme v multi-threadingu zajistit, aby prostředek nepoužíval více vláken současně?

Odpověď: Ve vícevláknovém přístupu lze přístup k prostředkům sdíleným mezi více vlákny řídit pomocí konceptu synchronizace. Pomocí synchronizovaného klíčového slova můžeme zajistit, že sdílený prostředek může současně používat pouze jedno vlákno a ostatní mohou získat kontrolu nad prostředkem, až se uvolní od druhého, který jej používá.

Q45. Můžeme pro objekt volat konstruktor třídy vícekrát?

Odpověď: Konstruktor se volá automaticky, když vytvoříme objekt pomocí nového klíčového slova. Volá se pouze jednou pro objekt v době vytváření objektu, a proto nemůžeme po jeho vytvoření znovu vyvolat konstruktor pro objekt.

Q46. Existují dvě třídy s názvem classA a classB. Obě třídy jsou ve stejném balíčku. Může soukromý člen třídy A získat přístup k objektu třídy B?

Odpověď: Soukromí členové třídy nejsou přístupní mimo rozsah dané třídy a žádná jiná třída, ani ve stejném balíčku, k nim nemá přístup.

Q47. Můžeme mít ve třídě se stejným názvem dvě metody?

Odpověď: Můžeme definovat dvě metody ve třídě se stejným názvem, ale s odlišným počtem / typem parametrů. Která metoda je vyvolána, bude záviset na předaných parametrech.

Například v níže uvedené třídě máme dvě metody tisku se stejným názvem, ale různými parametry. V závislosti na parametrech se bude nazývat vhodný:

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. Jak můžeme vytvořit kopii java objektu?

Odpověď: Můžeme použít koncept klonování k vytvoření kopie objektu. Pomocí klonu vytváříme kopie se skutečným stavem objektu.

Clone () je metoda Cloneable rozhraní, a proto je nutné Cloneable interface implementovat pro vytváření kopií objektů.

Q49. Jaké jsou výhody používání dědictví?

Odpověď: Klíčovou výhodou používání dědičnosti je opětovná použitelnost kódu, protože dědičnost umožňuje podtřídám znovu použít kód své super třídy. Polymorfismus (rozšiřitelnost) je další velká výhoda, která umožňuje zavedení nových funkcí bez ovlivnění existujících odvozených tříd.

Q50. Jaký je výchozí specifikátor přístupu pro proměnné a metody třídy?

Odpověď: Výchozí specifikátor přístupu pro proměnné a metodu je chráněn balíčkem, tj. Proměnné a třída jsou k dispozici jakékoli jiné třídě, ale ve stejném balíčku, nikoli mimo balíček.

Q51. Uveďte příklad použití ukazatelů ve třídě Java.

Odpověď: V Javě nejsou žádné ukazatele. Takže v Javě nemůžeme použít koncept ukazatelů.

Q52. Jak můžeme omezit dědičnost třídy tak, aby z ní nemohla být zděděna žádná třída?

Odpověď: Pokud chceme, aby třída nebyla dále rozšiřována o žádnou třídu, můžeme použít klíčové slovo Final s názvem třídy.

V následujícím příkladu je třída Stone Final a nelze ji rozšířit

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

Q53. Jaký je rozsah přístupu specifikátoru chráněného přístupu?

Odpověď: Když je metoda nebo proměnná deklarována se specifikovaným chráněným přístupem, stane se přístupnou ve stejné třídě, jakékoli jiné třídě stejného balíčku i v podtřídě.

Modifikátor

Třída

Balík

Podtřída

Svět

veřejnost

Y

Y

Y

Y

chráněný

Y

Y

Y

N

žádný modifikátor

Y

Y

N

N

soukromé

Y

N

N

N

Q54. Jaký je rozdíl mezi Stack a Queue?

Ans: Stack a Queue both are used as placeholder for a collection of data. Primární rozdíl mezi zásobníkem a frontou spočívá v tom, že zásobník je založen na principu Last in First out (LIFO), zatímco fronta je založena na principu FIFO (First In First Out).

Q55. Jak můžeme v Javě zakázat serializaci proměnných?

Odpověď: Pokud chceme, aby určité proměnné třídy nebyly serializovány, můžeme při jejich deklaraci použít přechodné klíčové slovo . Například proměnná trans_var níže je přechodná proměnná a nelze ji serializovat:

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

Q56. Jak můžeme použít primitivní datové typy jako objekty?

Odpověď: Primitivní datové typy jako int lze zpracovat jako objekty pomocí jejich příslušných tříd obálky. Například Integer je obalová třída pro primitivní datový typ int. Na třídu obalů můžeme použít různé metody, stejně jako na jakýkoli jiný objekt.

Q57. Které typy výjimek jsou zachyceny v době kompilace?

Odpověď: Zaškrtnuté výjimky lze zachytit v době kompilace programu. Zaškrtnuté výjimky je nutné zpracovat pomocí bloku try catch v kódu, aby byl kód úspěšně zkompilován.

Q58. Popište různé stavy vlákna.

Odpověď: Vlákno v Javě může být v kterémkoli z následujících stavů:

  • Připraveno: Když je vlákno vytvořeno, je ve stavu Připraveno.
  • Spuštěno: Vlákno, které se aktuálně provádí, je ve spuštěném stavu.
  • Čekání: Vlákno čekající na uvolnění určitých prostředků jiným vláknem je ve stavu čekání.
  • Mrtvé: Vlákno, které po provedení zemřelo, je v mrtvém stavu.

Q59. Můžeme použít výchozí konstruktor třídy, i když je definován explicitní konstruktor?

Ans: Java poskytuje výchozí konstruktor bez argumentů, pokud ve třídě Java není definován žádný explicitní konstruktor. Ale pokud byl definován explicitní konstruktor, nelze vyvolat výchozí konstruktor a vývojář může použít pouze ty konstruktory, které jsou definovány ve třídě.

Q60. Můžeme přepsat metodu pomocí stejného názvu metody a argumentů, ale různých typů návratů?

Odpověď: Základní podmínkou přepsání metody je, že název metody, argumenty i návratový typ musí být přesně stejné jako u přepsané metody. Proto použití jiného typu návratu nepřepíše metodu.

Q61. Jaký bude výstup následující části kódu?

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

Odpověď: V tomto případě se použije operátor postfix ++, který nejprve vrátí hodnotu a poté zvýší. Proto bude jeho výstup 4.

Q61. Osoba říká, že úspěšně sestavil třídu java, aniž by v ní měla hlavní metodu? Je to možné?

Ans: main method is a entry point of Java class and is required for execution of the program however; třída se úspěšně zkompiluje, i když nemá hlavní metodu. Nelze to však spustit.

Q62. Můžeme volat nestatickou metodu zevnitř statické metody?

Odpověď: Nestatické metody jsou vlastněny objekty třídy a mají rozsah na úrovni objektu. Aby bylo možné volat nestatické metody ze statického bloku (jako ze statické hlavní metody), je třeba vytvořit objekt třídy První. Potom pomocí odkazu na objekt lze tyto metody vyvolat.

Q63. Jaké jsou dvě proměnné prostředí, které je nutné nastavit, aby bylo možné spouštět jakékoli programy Java?

Odpověď: Programy Java lze ve stroji spustit, pouze pokud byly správně nastaveny následující dvě proměnné prostředí:

  1. Proměnná PATH
  2. Proměnná CLASSPATH

Q64. Lze proměnné použít v Javě bez inicializace?

Odpověď: Pokud je v Javě použita proměnná v kódu bez předchozí inicializace platnou hodnotou, program se nezkompiluje a dá chybu, protože proměnným v Javě není přiřazena žádná výchozí hodnota.

Q65. Může být třída v Javě zděděna z více než jedné třídy?

Odpověď: V Javě lze třídu odvodit pouze z jedné třídy, nikoli z více tříd. Java nepodporuje více dědičností.

Q66. Může mít konstruktor jiný název než název třídy v Javě?

Ans: Constructor in Java must have same name as the class name and if the name is different, it doesn't act as a constructor and compiler thinking of it as a normal method.

Q67. Jaký bude výstup Round (3.7) a Ceil (3.7)?

Odpověď: Round (3.7) vrátí 4 a Ceil (3.7) vrátí 4.

Q68: Můžeme použít goto v Javě k přechodu na konkrétní řádek?

Odpověď: V Javě neexistuje klíčové slovo goto a java nepodporuje tuto funkci přechodu na konkrétní označený řádek.

Q69. Může být mrtvá nit spuštěna znovu?

Odpověď: V Javě nelze vlákno, které je v mrtvém stavu, znovu spustit. Neexistuje způsob, jak restartovat mrtvé vlákno.

Q70. Je následující deklarace třídy správná?

Odpověď:

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

Odpověď: Výše ​​uvedená deklarace třídy je nesprávná, protože abstraktní třídu nelze deklarovat jako konečnou.

Q71. Je ke spuštění programu Java na každém stroji vyžadována JDK?

Ans: JDK is development Kit of Java and is required for development only and to run a Java program on a machine, JDK isn't required. Vyžaduje se pouze JRE.

Q72. Jaký je rozdíl mezi porovnáním metodou equals a operátorem ==?

Ans: V Javě se metoda equals () používá k porovnání obsahu dvou řetězcových objektů a vrací true, pokud mají dva stejnou hodnotu, zatímco operátor == porovnává odkazy dvou řetězcových objektů.

V následujícím příkladu equals () vrací true, protože dva objekty řetězce mají stejné hodnoty. Operátor == však vrátí hodnotu false, protože oba objekty řetězce odkazují na různé objekty:

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. Je možné definovat metodu ve třídě Java, ale poskytnout její implementaci v kódu jiného jazyka, jako je C?

Odpověď: Ano, můžeme to udělat pomocí nativních metod. V případě vývoje založeného na nativních metodách definujeme veřejné statické metody v naší třídě Java bez její implementace a pak se implementace provádí v jiném jazyce, jako je C samostatně.

Q74. Jak jsou v Javě definovány destruktory?

Odpověď: V Javě nejsou ve třídě definovány žádné destruktory, protože to není nutné. Java má svůj vlastní mechanismus sběru odpadků, který provádí práci automaticky tím, že zničí objekty, když už na ně nebude odkazováno.

Q75. Může být proměnná současně lokální i statická?

Odpověď: Žádná proměnná nemůže být zároveň statická i lokální. Definování lokální proměnné jako statické dává chybu kompilace.

Q76. Můžeme mít v rozhraní statické metody?

Odpověď: Statické metody nelze přepsat v žádné třídě, zatímco všechny metody v rozhraní jsou ve výchozím nastavení abstraktní a mají být implementovány ve třídách, které implementují rozhraní. Nemá tedy smysl mít statické metody v rozhraní v Javě.

Q77. Můžeme ve třídě implementující rozhraní změnit hodnotu jakékoli proměnné definované v rozhraní?

Odpověď: Ne, nemůžeme změnit hodnotu žádné proměnné rozhraní v implementační třídě, protože všechny proměnné definované v rozhraní jsou ve výchozím nastavení veřejné, statické a konečné a konečné proměnné jsou jako konstanty, které nelze později změnit.

Q78. Je správné říci, že kvůli funkci sběru odpadu v Javě program java nikdy nevyjde z paměti?

Odpověď: I když Java poskytuje automatický sběr odpadků, nezajišťuje to, že program Java neztratí paměť, protože existuje možnost, že vytváření objektů Java se provádí rychlejším tempem ve srovnání s odvozem odpadu naplnění všech dostupných paměťových prostředků.

Takže uvolňování paměti pomáhá snižovat šance, že programu dojde paměť, ale to nezajišťuje.

Q79. Můžeme mít pro hlavní metodu jiný návratový typ než neplatný?

Odpověď: Ne, hlavní metoda třídy Java může mít pouze úspěšný návratový typ void pro úspěšné provedení programu.

Pokud však po dokončení hlavní metody musíte absolutně vrátit hodnotu, můžete použít System.exit (int status)

Q80. Chci znovu dosáhnout a použít objekt, jakmile byl odebrán odpadky. Jak je to možné

Odpověď: Jakmile byl objekt zničen garbage collectorem, již na haldě neexistuje a nelze k němu znovu získat přístup. Neexistuje způsob, jak to znovu odkázat.

Q81. Která metoda je v programování podprocesů Java nezbytnou implementací pro všechna vlákna?

Ans: Run () je metoda Runnable rozhraní, která musí být implementována všemi vlákny.

Q82. Chci ovládat databázová připojení v mém programu a chci, aby pouze jedno vlákno mělo být schopné navázat připojení k databázi najednou. Jak mohu implementovat tuto logiku?

Odpověď: Toho lze dosáhnout pomocí konceptu synchronizace. Kód související s databází lze umístit do metody, která hs synchronizuje klíčové slovo, takže k němu může najednou přistupovat pouze jedno vlákno.

Q83. Jak může programátor ručně vyvolat výjimku?

Odpověď: Aby bylo možné výjimku v bloku kódu vyvolat ručně, použije se klíčové slovo throw . Pak je tato výjimka zachycena a zpracována v bloku zachycení.

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

Q84. Chci, aby moje třída byla vyvinuta takovým způsobem, že žádná jiná třída (ani odvozená třída) nemůže vytvářet své objekty. Jak to mohu udělat?

Odpověď: Pokud deklarujeme konstruktor třídy jako soukromý, nebude přístupný pro žádnou jinou třídu, a proto žádná jiná třída nebude schopna jej vytvořit instanci a formování jejího objektu bude omezeno pouze na sebe.

Q85. Jak jsou objekty uloženy v Javě?

Odpověď: V Javě dostane každý vytvořený objekt paměťový prostor z haldy. Když je objekt zničen garbage collectorem, místo, které mu bylo přiděleno z haldy, je znovu přiděleno haldě a stane se dostupným pro všechny nové objekty.

Q86. Jak zjistíme skutečnou velikost objektu na haldě?

Odpověď: V Javě neexistuje způsob, jak zjistit přesnou velikost objektu na haldě.

Q87. Ve které z následujících tříd bude přiděleno více paměti?

Třída A: Tři metody, čtyři proměnné, žádný objekt

Třída B: Pět metod, tři proměnné, žádný objekt

Odpověď: Paměť není přidělena před vytvořením objektů. Vzhledem k tomu, že pro obě třídy nejsou vytvořeny žádné objekty, takže pro žádnou třídu není na haldě přidělena žádná paměť.

Q88. Co se stane, pokud v programu není zpracována výjimka?

Odpověď: Pokud není v programu zpracována výjimka pomocí bloků try catch, program se přeruší a po příkazu, který způsobil vyvolání výjimky, se neprovede žádný příkaz.

Q89. Mám několik konstruktorů definovaných ve třídě. Je možné volat konstruktor z těla jiného konstruktoru?

Odpověď: Pokud má třída více konstruktorů, je možné pomocí this () volat jednoho konstruktora z těla jiného .

Q90. Co znamená anonymní třída?

Ans: Anonymous class is a class defined without any name in a single line of code using new keyword.

Například v níže uvedeném kódu jsme definovali anonymní třídu v jednom řádku kódu:

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. Existuje způsob, jak zvětšit velikost pole po jeho deklaraci?

Odpověď: Pole jsou statická a jakmile zadáme jeho velikost, nemůžeme ji změnit. Pokud chceme použít takové kolekce, kde můžeme požadovat změnu velikosti (počet položek), měli bychom upřednostňovat vektor před polem.

Q92. Pokud má aplikace více tříd, je v pořádku mít hlavní metodu ve více než jedné třídě?

Odpověď: Pokud existuje hlavní metoda ve více než jedné třídě v aplikaci Java, nezpůsobí to žádný problém, protože vstupním bodem pro libovolnou aplikaci bude konkrétní třída a kód bude začínat pouze z hlavní metody dané konkrétní třídy.

Q93. Chci přetrvávat data objektů pro pozdější použití. Jaký je nejlepší přístup?

Odpověď: Nejlepší způsob, jak uchovat data pro budoucí použití, je použít koncept serializace.

Q94. Co je místní třída v Javě?

Odpověď: Pokud v Javě definujeme novou třídu uvnitř konkrétního bloku, říká se jí místní třída. Taková třída má místní rozsah a není použitelná mimo blok, kde je definována.

Q95. String a StringBuffer představují objekty String. Můžeme porovnat String a StringBuffer v Javě?

Odpověď: Ačkoli String a StringBuffer oba představují objekty String, nemůžeme je navzájem porovnávat a pokud se je pokusíme porovnat, zobrazí se chyba.

Q96. Jaké API poskytuje Java pro operace se sadou objektů?

Ans: Java poskytuje Collection API, které poskytuje mnoho užitečných metod, které lze aplikovat na sadu objektů. Některé z důležitých tříd poskytovaných Collection API zahrnují ArrayList, HashMap, TreeSet a TreeMap.

Q97. Můžeme s typovým litím vrhnout jakýkoli jiný typ na Booleanský typ?

Odpověď: Ne, nemůžeme vrhnout žádný jiný primitivní typ na booleovský datový typ ani nemůžeme vrhat booleovský datový typ na žádný jiný primitivní datový typ.

Q98. Můžeme použít různé typy návratů pro metody, když jsou přepsány?

Odpověď: Základním požadavkem přepsání metody v Javě je, že přepsaná metoda by měla mít stejný název a parametry. Metodu lze ale přepsat jiným návratovým typem, pokud nový návratový typ rozšiřuje originál.

Například metoda vrací referenční typ.

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

Q99. Jaká je základní třída všech tříd výjimek?

Odpověď: V Javě je Java.lang.Throwable super třídou všech tříd výjimek a všechny třídy výjimek jsou odvozeny od této základní třídy.

Q100. Jaké je pořadí volání konstruktérů v dědičnosti?

Odpověď: V případě dědičnosti se při vytvoření nového objektu odvozené třídy nejprve vyvolá konstruktor super třídy a poté se vyvolá konstruktor odvozené třídy.

Připravte se na svůj pracovní pohovor !!! Projděte si výukový program Java a buďte lépe připraveni.

Tento podrobný dotaz na otázky týkající se Javy ve formátu PDF vám pomůže odstranit pochybnosti o otázkách týkajících se rozhovoru na Javě a také vám pomůže rozbít rozhovor.