100 najlepších otázok a odpovedí na rozhovor v jazyku Java (stiahnuť PDF)

Obsah:

Anonim

Stiahnite si PDF

Zostavili sme najčastejšie kladené otázky a odpovede týkajúce sa rozhovoru v prostredí Java, ktoré vám pomôžu pripraviť sa na základné otázky týkajúce sa rozhovorov v prostredí Java, ktoré by sa vás anketár mohol pýtať počas vášho pohovoru. V tomto zozname základných otázok týkajúcich sa pohovoru v jazyku Java sme podrobne odpovedali na všetky bežne kladené otázky týkajúce sa základných a pokročilých otázok týkajúcich sa pohovoru v jazyku Java, aby sme vám pomohli vyčistiť pracovný pohovor.

Nasledujúci zoznam obsahuje 100 dôležitých otázok týkajúcich sa rozhovoru pre Javu pre nováčikov, ako aj otázky a odpovede s rozhovorom pre Javu pre skúsených programátorov, ktoré im majú pomôcť pripraviť sa na pohovor. Tento podrobný sprievodca otázkami na pohovor pre programovanie v jazyku Java vám pomôže ľahko rozbiť váš pracovný pohovor.

Základné otázky a odpovede týkajúce sa rozhovorov v prostredí Java pre čerstvých a skúsených

Q1. Aký je rozdiel medzi vnútornou triedou a podtriedou?

Odpoveď: Vnútorná trieda je trieda, ktorá je vnorená do inej triedy. Vnútorná trieda má prístupové práva k triede, ktorá ju vnorí, a má prístup ku všetkým premenným a metódam definovaným vo vonkajšej triede.

Podtrieda je trieda, ktorá dedí z inej triedy, ktorá sa nazýva super trieda. Podtrieda má prístup ku všetkým verejným a chráneným metódam a poliam svojej super triedy.

Q2. Aké sú rôzne špecifikátory prístupu pre triedy Java?

Odpoveď: V Jave sú špecifikátory prístupu kľúčové slová použité pred názvom triedy, ktorý definuje rozsah prístupu. Typy špecifikátorov prístupu pre triedy sú:

1. Verejné: Trieda, metóda, pole sú prístupné odkiaľkoľvek.

2. Chránené: K metóde, poľu je možné pristupovať z tej istej triedy, do ktorej patria, alebo z podtried, a z triedy toho istého balíka, nie však zvonku.

3. Predvolené: Metóda, pole, trieda je prístupná iba z rovnakého balíka a nie zvonku jeho natívneho balíka.

4. Súkromné: Metóda, pole je prístupné z rovnakej triedy, do ktorej patrí.

Q3. Aký je účel statických metód a statických premenných?

Odpoveď: Keď existuje požiadavka zdieľať metódu alebo premennú medzi viacerými objektmi triedy namiesto vytvárania samostatných kópií pre každý objekt, pomocou kľúčového slova static urobíme metódu alebo premennú zdieľanú pre všetky objekty.

Q4. Čo je zapuzdrenie údajov a aký je ich význam?

Odpoveď: Zapuzdrenie je koncept v objektovo orientovanom programovaní, ktorý kombinuje vlastnosti a metódy v jednej jednotke.

Zapuzdrenie pomáha programátorom dodržiavať modulárny prístup k vývoju softvéru, pretože každý objekt má svoju vlastnú skupinu metód a premenných a slúži svojim funkciám nezávisle od ostatných objektov. Zapuzdrenie slúži aj na skrytie údajov.

Q5. Čo je to trieda jednotlivcov? Uveďte praktický príklad jeho použitia.

Trieda singleton v jave môže mať iba jednu inštanciu, a preto všetky jej metódy a premenné patria iba do jednej inštancie. Koncept triedy Singleton je užitočný pre situácie, keď je potrebné obmedziť počet objektov pre triedu.

Najlepším príkladom scenára použitia singletonu je situácia, keď existuje obmedzenie existencie iba jedného pripojenia k databáze kvôli niektorým obmedzeniam ovládača alebo kvôli problémom s licenciou.

Q6. Čo sú slučky v Jave? Čo sú tri typy slučiek?

Ans: Smyčka sa používa v programovaní na opakované vykonávanie príkazu alebo bloku výpisu. V Jave existujú tri typy slučiek:

1) Pre slučky

Smyčky for sa používajú v jave na opakované vykonávanie príkazov daný počet opakovaní. Cykly for sa používajú, keď programátor pozná počet vykonaní príkazov.

2) Zatiaľ čo slučky

Cyklus While sa používa, keď je potrebné opakovane vykonávať určité príkazy, kým nie je splnená podmienka. V cykloch while sa najskôr kontroluje stav pred vykonaním príkazov.

3) Robte While Loops

Do While Loop je rovnaká ako While loop s tým rozdielom, že táto podmienka sa kontroluje po vykonaní bloku výpisov. Preto v prípade cyklu do while sa príkazy vykonajú aspoň raz.

Otázka 7: Čo je to nekonečná slučka? Ako je deklarovaná nekonečná slučka?

Odpoveď: Nekonečná slučka beží bez akýchkoľvek podmienok a beží nekonečne dlho. Nekonečnú slučku je možné prerušiť definovaním akejkoľvek logiky prerušenia v tele blokov príkazov.

Nekonečná slučka je deklarovaná takto:

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

Q8. Aký je rozdiel medzi vyhlásením pokračovania a prerušenia?

Odpoveď: prerušiť a pokračovať sú dve dôležité kľúčové slová používané v slučkách. Ak sa v slučke použije kľúčové slovo break, slučka sa okamžite zruší, zatiaľ čo pri použití kľúčového slova continue sa aktuálna iterácia preruší a slučka pokračuje ďalšou iteráciou.

V nasledujúcom príklade je slučka prerušená, keď počítadlo dosiahne 4.

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

V príklade uvedenom nižšie, keď počítadlo dosiahne 4, cyklus skočí na ďalšiu iteráciu a všetky výroky po kľúčovom slove continue sa pre aktuálnu iteráciu preskočia.

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. Aký je rozdiel medzi dvojitými a plávajúcimi premennými v Jave?

Odpoveď: V Jave float zaberá 4 bajty v pamäti, zatiaľ čo Double 8 bajtov v pamäti. Float je desatinné číslo s pohyblivou desatinnou čiarkou s jednou presnosťou, zatiaľ čo Double je desatinné číslo s dvojitou presnosťou.

Q10. Čo je konečné kľúčové slovo v Jave? Uveďte príklad.

Odpoveď: V Jave sa konštanta deklaruje pomocou kľúčového slova Final. Hodnotu je možné priradiť iba raz a po priradení hodnotu konštanty nie je možné zmeniť.

V nasledujúcom príklade je deklarovaná konštanta s názvom const_val a je jej priradená hodnota:

Súkromné ​​konečné int const_val = 100

Keď je metóda deklarovaná ako konečná, NEMôŽE ju prepísať podtriedami. Táto metóda je rýchlejšia ako ktorákoľvek iná metóda, pretože sa vyrieši v dodržanom čase.

Keď je trieda vyhlásená za konečnú, nemožno ju zaradiť do podtriedy. Príklad tried reťazcov, celých čísel a ďalších obalových kódov.

Q11. Čo je ternárny operátor? Uveďte príklad.

Odpoveď: Ternárny operátor, nazývaný tiež podmienený operátor, sa používa na rozhodnutie, ktorú hodnotu priradiť premennej na základe vyhodnotenia boolovskej hodnoty. Je to označené ako?

V príklade uvedenom nižšie, ak je hodnotenie 1, stavu sa priradí hodnota „Hotovo“, inak „Čaká“.

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: Ako môžete generovať náhodné čísla v Jave?

Odpovede:

  • Pomocou Math.random () môžete generovať náhodné čísla v rozsahu od 0,1 do 1,0 a menšiemu ako 1,0
  • Používanie triedy Random v balíku java.util

Q13. Čo je predvolený prípad prepínača? Uveďte príklad.

Odpoveď: Vo vyhlásení o prepnutí sa vykoná predvolený prípad, keď sa nezhoduje žiadna iná podmienka prepnutia. Predvolený prípad je voliteľný prípad. Môže byť deklarovaný až po kódovaní všetkých ostatných prípadov prepínania.

Ak v nasledujúcom príklade nie je skóre 1 alebo 2, použije sa predvolený prí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. Aká je základná trieda v Jave, od ktorej sú odvodené všetky triedy?

Odpovede: java.lang.objekt

Q15. Môže metóda main () v Jave vrátiť akékoľvek dáta?

Odpoveď: V jave metóda main () nemôže vrátiť žiadne údaje, a preto je vždy deklarovaná s návratovým typom void.

Q16. Čo sú to balíčky Java? Aký význam majú balíčky?

Odpoveď: V prostredí Java je balík kolekcia tried a rozhraní, ktoré sú zoskupené, pretože navzájom súvisia. Používanie balíkov pomáha vývojárom modularizovať kód a zoskupiť ho pre správne opätovné použitie. Po zabalení kódu do balíkov ho možno importovať do iných tried a použiť.

Q17. Môžeme triedu vyhlásiť za abstraktnú bez toho, aby sme mali nejakú abstraktnú metódu?

Odpoveď: Áno, abstraktnú triedu môžeme vytvoriť pomocou abstraktného kľúčového slova pred názvom triedy, aj keď nemá žiadnu abstraktnú metódu. Ak má však trieda čo i len jednu abstraktnú metódu, musí sa deklarovať ako abstraktná, inak spôsobí chybu.

Q18. Aký je rozdiel medzi abstraktnou triedou a rozhraním v Jave?

Odpoveď: Primárny rozdiel medzi abstraktnou triedou a rozhraním je v tom, že rozhranie môže obsahovať iba deklaráciu verejných statických metód bez konkrétnej implementácie, zatiaľ čo abstraktná trieda môže mať členov s akýmkoľvek špecifikátorom prístupu (verejným, súkromným atď.) S konkrétnou implementáciou alebo bez nej.

Ďalším kľúčovým rozdielom v používaní abstraktných tried a rozhraní je, že trieda, ktorá implementuje rozhranie, musí implementovať všetky metódy rozhrania, zatiaľ čo trieda, ktorá dedí z abstraktnej triedy, nevyžaduje implementáciu všetkých metód svojej super triedy.

Trieda môže implementovať viac rozhraní, ale môže rozšíriť iba jednu abstraktnú triedu.

Q19. Aké sú dopady rozhraní na abstraktné triedy na výkon?

Odpoveď: Výkon rozhrania je pomalší v porovnaní s abstraktnými triedami, pretože pre rozhrania sú potrebné ďalšie indirections. Ďalším kľúčovým faktorom, ktorý musia vývojári vziať do úvahy, je, že ktorákoľvek trieda môže rozšíriť iba jednu abstraktnú triedu, zatiaľ čo trieda môže implementovať mnoho rozhraní.

Používanie rozhraní tiež kladie dodatočnú záťaž na vývojárov, pretože kedykoľvek je rozhranie implementované v triede; vývojár je nútený implementovať každú metódu rozhrania.

Q20. Importuje sa import balíka aj do jeho podbalíkov v Jave?

Odpoveď: V Jave sa pri importovaní balíka neimportujú jeho čiastkové balíčky a vývojár ich musí v prípade potreby importovať osobitne.

Napríklad, ak vývojár importuje univerzitu balíkov. *, Načítajú sa všetky triedy v balíčku s názvom univerzita, ale nenačítajú sa žiadne triedy z čiastkového balíka. Ak chcete načítať triedy zo svojho čiastkového balíka (povedzme oddelenia), musí ich vývojár importovať explicitne takto:

Importovať univerzitný odbor. *

Q21. Môžeme vyhlásiť hlavnú metódu našej triedy za súkromnú?

Odpoveď: V jazyku Java musí byť hlavná metóda verejná statická, aby bolo možné správne spustiť ľubovoľnú aplikáciu. Ak je hlavná metóda deklarovaná ako súkromná, vývojár nedostane žiadnu chybu kompilácie, nebude vykonaná a spôsobí runtime chybu.

Q22. Ako môžeme odovzdať argument funkcii odkazom namiesto hodnoty?

Odpoveď: V Jave môžeme argumentu odovzdať funkcii iba hodnotu a nie odkaz.

Q23. Ako je objekt serializovaný v Jave?

Odpoveď: V Jave na prevedenie objektu na bajtový prúd pomocou serializácie je triedou implementované rozhranie s názvom Serializable. Všetky objekty triedy implementujúcej serializovateľné rozhranie sa serializujú a ich stav sa uloží do bajtového toku.

Q24. Kedy by sme mali použiť serializáciu?

Odpoveď: Serializácia sa používa, keď je potrebné prenášať údaje cez sieť. Pomocou serializácie sa stav objektu uloží a prevedie na bajtový prúd. Bajtový prúd sa prenesie cez sieť a objekt sa v mieste určenia znova vytvorí.

Q25. Je povinné, aby za Try Blockom nasledoval Catch Block v Jave na spracovanie výnimiek?

Odpoveď: Za blokom Try (Try Block) musí nasledovať blok Catch Block (blokovanie úlovku) alebo konečne blokovanie bloku konečne alebo obidve možnosti. Akákoľvek výnimka vyvolaná z bloku try musí byť buď zachytená v bloku catch, alebo musí byť vykonaná akákoľvek konkrétna úloha pred vložením potratu do bloku Finally.

Q26. Existuje nejaký spôsob, ako konečne preskočiť blok výnimiek, aj keď sa v bloku výnimiek vyskytne nejaká výnimka?

Odpoveď: Ak je v bloku Try vyvolaná výnimka, riadenie prejde na blok chytenia, ak existuje, aby bol nakoniec blokovaný. Nakoniec sa blok vykoná vždy, keď dôjde k výnimke a jediný spôsob, ako sa vyhnúť vykonaniu akýchkoľvek príkazov v bloku Nakoniec, je násilné prerušenie kódu napísaním nasledujúceho riadku kódu na koniec bloku try:

System.exit(0);

Q27. Keď je vyvolaný konštruktor triedy?

Odpoveď: Konštruktor triedy sa vyvolá zakaždým, keď sa objekt vytvorí pomocou nového kľúčového slova.

Napríklad v nasledujúcej triede sú dva objekty vytvorené pomocou nového kľúčového slova, a preto je konštruktor vyvolaný 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 mať trieda viac konštruktorov?

Odpoveď: Áno, trieda môže mať viac konštruktorov s rôznymi parametrami. Ktorý konštruktor sa použije na vytvorenie objektu, závisí od argumentov odovzdaných pri vytváraní objektov.

Q29. Môžeme prepísať statické metódy triedy?

Odpoveď: Nemôžeme prepísať statické metódy. Statické metódy patria do triedy a nie do jednotlivých objektov a sú vyriešené v čase kompilácie (nie za behu). Aj keď sa pokúsime prepísať statickú metódu, nedostane sa nám chyby v súhlase ani dopadu prepisovania pri spustení kód.

Q30. V nasledujúcom príklade, aký 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();}}

Odpovede : Výstup bude:

Zobrazuje sa z podtriedy

Zobrazuje sa zo nadtriedy

Q31. Je reťazec dátový typ v Jave?

Odpoveď: Reťazec nie je primitívny údajový typ v jave. Keď je reťazec vytvorený v Jave, je to vlastne objekt triedy Java.Lang.String, ktorý sa vytvorí. Po vytvorení tohto objektu reťazca je možné na objekt reťazca použiť všetky vstavané metódy triedy String.

Q32. Koľko v nasledujúcom príklade je vytvorených reťazcových objektov?

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

Odpoveď: Vo vyššie uvedenom príklade sú vytvorené dva objekty triedy Java.Lang.String. s1 a s3 sú odkazy na rovnaký objekt.

Q33. Prečo sa reťazce v Jave nazývajú Immutable?

Odpoveď: V Jave sa reťazcové objekty nazývajú nemenné, pretože reťazec sa po priradení hodnoty nedá zmeniť, a ak sa zmení, vytvorí sa nový objekt.

V nasledujúcom príklade referenčné str odkazuje na reťazcový objekt s hodnotou „Value one“.

String str="Value One";

Keď je k nej priradená nová hodnota, vytvorí sa nový objekt String a referencia sa presunie do nového objektu.

str="New Value";

Q34. Aký je rozdiel medzi poľom a vektorom?

Odpoveď: Pole zoskupuje údaje rovnakého primitívneho typu a má statickú povahu, zatiaľ čo vektory sú dynamickej povahy a môžu obsahovať údaje rôznych dátových typov.

Q35. Čo je to viacvlákno?

Odpoveď: Multi threading je programovací koncept na súčasné spustenie viacerých úloh v jednom programe. Vlákna zdieľajú rovnaký zásobník procesov a súbežne bežia. Pomáha pri zlepšovaní výkonu ľubovoľného programu.

Q36. Prečo sa v Jave používa Runnable Interface?

Odpoveď: Spustiteľné rozhranie sa v jave používa na implementáciu aplikácií s viacerými vláknami. Rozhranie Java.Lang.Runnable je implementované triedou na podporu viacerých vlákien.

Q37. Aké sú dva spôsoby implementácie viacerých vlákien v Jave?

Odpoveď: Viacvláknové aplikácie je možné vyvíjať v prostredí Java pomocou ktorejkoľvek z nasledujúcich dvoch metodík:

1. Pomocou rozhrania Java.Lang.Runnable. Triedy implementujú toto rozhranie na povolenie viacerých vlákien. V tomto rozhraní je implementovaná metóda Run ().

2. Napísaním triedy, ktorá rozširuje triedu Java.Lang.Thread.

Q38. Ak je v údajoch potrebných veľa zmien, ktorá z nich by sa mala uprednostniť? String alebo StringBuffer?

Odpoveď: Pretože StringBuffers má dynamickú povahu a my môžeme meniť hodnoty objektov StringBuffer na rozdiel od Stringu, ktorý je nemenný, je vždy dobrá voľba použiť StringBuffer, keď sa údaje príliš menia. Ak v takom prípade použijeme String, pre každú zmenu údajov sa vytvorí nový objekt String, ktorý bude réžiou navyše.

Q39. Aký je účel použitia príkazu Break v každom prípade príkazu Switch?

Odpoveď: Prerušenie sa používa za každým prípadom (okrem posledného) v prepínači, aby sa kód zlomil za platným prípadom a neprúdil ani v ďalších prípadoch.

Ak sa zlom nepoužije po každom prípade, vykonajú sa aj všetky prípady po platnom prípade, čo vedie k nesprávnym výsledkom.

Q40. Ako sa zhromažďovanie odpadu vykonáva v prostredí Java?

Odpoveď: V Jave, keď sa na objekt už viac neodkazuje, dôjde k odvozu odpadu a objekt sa automaticky zničí. Pre automatický zber odpadu Java volá buď metódu System.gc (), alebo metódu Runtime.gc ().

Q41. Ako môžeme vykonať akýkoľvek kód ešte pred hlavnou metódou?

Odpoveď: Ak chceme vykonať akékoľvek výkazy ešte pred vytvorením objektov v čase načítania triedy, môžeme v triede použiť statický blok kódu. Akékoľvek príkazy vo vnútri tohto statického bloku kódu sa vykonajú raz v čase načítania triedy, ešte pred vytvorením objektov v hlavnej metóde.

Q42. Môže byť trieda súčasne supertriedou a podtriedou? Uveďte príklad.

Odpoveď: Ak sa používa hierarchia dedenia, trieda môže byť super triedou pre inú triedu a podtriedou pre inú triedu súčasne.

V nasledujúcom príklade je trieda kontinentu podtriedou svetovej triedy a je to super trieda triedy krajiny.

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

Q43. Ako sa vytvárajú objekty triedy, ak v triede nie je definovaný žiadny konštruktor?

Odpoveď: Aj keď v triede Java nie je definovaný žiadny explicitný konštruktor, objekty sa úspešne vytvoria ako predvolený konštruktor, na vytvorenie objektu sa implicitne použije. Tento konštruktor nemá žiadne parametre.

Q44. Ako môžeme vo viacerých vláknach zabezpečiť, aby zdroj nepoužívali viaceré vlákna súčasne?

Odpoveď: V prípade viacerých vlákien je možné riadiť prístup k zdrojom zdieľaným medzi viacerými vláknami pomocou koncepcie synchronizácie. Pomocou synchronizovaného kľúčového slova môžeme zaistiť, že zdieľané prostriedky môže súčasne používať iba jedno vlákno a ostatní môžu získať kontrolu nad týmto zdrojom až potom, čo sa od druhého, ktorý ich použije, uvoľní kontrolu.

Q45. Môžeme pre objekt zavolať konštruktor triedy viackrát?

Odpoveď: Konštruktor sa volá automaticky, keď vytvoríme objekt pomocou nového kľúčového slova. Volá sa iba raz pre objekt v čase vytvárania objektu, a preto po jeho vytvorení nemôžeme znova vyvolať konštruktor pre objekt.

Q46. Existujú dve triedy s názvom classA a classB. Obidve triedy sú v rovnakom balíku. Môže mať súkromný člen triedy A prístup k objektu triedy B?

Odpoveď: Súkromní členovia triedy nie sú prístupní mimo rozsahu tejto triedy a žiadna iná trieda, ani v rovnakom balíku, k nim nemá prístup.

Q47. Môžeme mať v triede s rovnakým názvom dve metódy?

Odpoveď: V triede môžeme definovať dve metódy s rovnakým názvom, ale s rôznym počtom / typom parametrov. Ktorá metóda sa má vyvolať, bude závisieť od odovzdaných parametrov.

Napríklad v triede nižšie máme dve tlačové metódy s rovnakým názvom, ale rôznymi parametrami. V závislosti od parametrov sa bude volať 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. Ako môžeme vytvoriť kópiu java objektu?

Odpoveď: Koncept klonovania môžeme použiť na vytvorenie kópie objektu. Pomocou klonu vytvárame kópie so skutočným stavom objektu.

Clone () je metóda klonovateľného rozhrania, a preto je potrebné klonovanie rozhrania implementovať na vytváranie kópií objektov.

Q49. Aká je výhoda použitia dedičstva?

Odpoveď: Kľúčovou výhodou použitia dedičnosti je opätovná použiteľnosť kódu, pretože dedičnosť umožňuje podtriedam opätovné použitie kódu svojej super triedy. Polymorfizmus (rozšíriteľnosť) je ďalšou veľkou výhodou, ktorá umožňuje zavádzanie nových funkcií bez ovplyvnenia existujúcich odvodených tried.

Q50. Aký je predvolený špecifikátor prístupu pre premenné a metódy triedy?

Odpoveď: Predvolený špecifikátor prístupu pre premenné a metódu je chránený balíkom, tj. Premenné a trieda sú k dispozícii akejkoľvek inej triede, ale v rovnakom balíku, nie mimo balíka.

Q51. Uveďte príklad použitia ukazovateľov v triede Java.

Odpoveď: V Jave nie sú žiadne ukazovatele. Takže v Jave nemôžeme použiť koncept ukazovateľov.

Q52. Ako môžeme obmedziť dedenie po triede tak, aby z nej nebolo možné dediť nijakú triedu?

Odpoveď: Ak chceme, aby sa trieda ďalej nerozširovala o žiadnu triedu, môžeme použiť kľúčové slovo Final s názvom triedy.

V nasledujúcom príklade je trieda Stone Final a nedá sa rozšíriť

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

Q53. Aký je rozsah prístupu špecifikátora chráneného prístupu?

Odpoveď: Keď je metóda alebo premenná deklarovaná so špecifikátorom chráneného prístupu, stane sa prístupnou v rovnakej triede, akejkoľvek inej triede rovnakého balíka aj podtriede.

Modifikátor

Trieda

Balíček

Podtrieda

Svet

verejné

Y

Y

Y

Y

chránené

Y

Y

Y

N

žiadny modifikátor

Y

Y

N

N

súkromné

Y

N

N

N

Q54. Aký je rozdiel medzi Stackom a Queue?

Odpoveď: Stack a Queue sa používajú ako zástupný symbol pre zber údajov. Primárny rozdiel medzi zásobníkom a radom je v tom, že zásobník je založený na princípe Last in First out (LIFO), zatiaľ čo rad je založený na princípe FIFO (First In First Out).

Q55. Ako môžeme v Jave zakázať serializáciu premenných?

Odpoveď: Ak chceme, aby určité premenné triedy neboli serializované, môžeme pri ich deklarácii použiť kľúčové slovo prechodné . Napríklad premenná trans_var uvedená nižšie je prechodná premenná a nemožno ju serializovať:

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

Q56. Ako môžeme použiť primitívne dátové typy ako objekty?

Odpoveď: S primitívnymi dátovými typmi, ako je int, sa dá manipulovať ako s objektmi pomocou ich príslušných obalových tried. Napríklad Integer je obálka triedy pre primitívny údajový typ int. Na triedu obálky môžeme použiť rôzne metódy, rovnako ako na akýkoľvek iný objekt.

Q57. Ktoré typy výnimiek sa zachytia v čase kompilácie?

Odpoveď: Zaškrtnuté výnimky sa dajú zachytiť v čase kompilácie programu. Skontrolované výnimky sa musia spracovať pomocou bloku try catch v kóde, aby sa kód úspešne skompiloval.

Q58. Popíšte rôzne stavy vlákna.

Odpoveď: Vlákno v jazyku Java môže byť v ktoromkoľvek z nasledujúcich stavov:

  • Pripravené: Keď sa vytvorí vlákno, je v stave Pripravené.
  • Spustené: Vlákno, ktoré sa práve vykonáva, je v spustenom stave.
  • Čakanie: Vlákno čakajúce na ďalšie vlákno na uvoľnenie určitých zdrojov je v stave čakania.
  • Mŕtve: Vlákno, ktoré po vykonaní umrelo, je v mŕtvom stave.

Q59. Môžeme použiť predvolený konštruktor triedy, aj keď je definovaný explicitný konštruktor?

Odpoveď: Java poskytuje predvolený konštruktor bez argumentov, ak v triede Java nie je definovaný žiadny explicitný konštruktor. Ale ak bol definovaný explicitný konštruktor, nie je možné vyvolať predvolený konštruktor a vývojár môže použiť iba tie konštruktory, ktoré sú definované v triede.

Q60. Môžeme prepísať metódu použitím rovnakého názvu metódy a argumentov, ale rôznych typov návratov?

Odpoveď: Základnou podmienkou prepísania metódy je, že názov metódy, argumenty aj návratový typ musia byť presne rovnaké ako v prípade prepísanej metódy. Preto použitie iného typu návratu neprepíše metódu.

Q61. Aký bude výstup z nasledujúceho kódu?

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

Odpoveď: V tomto prípade sa použije operátor postfix ++, ktorý najskôr vráti hodnotu a potom prírastky. Preto bude mať výstup hodnotu 4.

Q61. Osoba hovorí, že úspešne zostavil triedu java bez toho, aby v nej bola hlavná metóda? Je to možné?

Odpoveď: hlavná metóda je vstupným bodom triedy Java a je však nevyhnutná na vykonanie programu; trieda sa úspešne skompiluje, aj keď nemá hlavnú metódu. To sa však nedá spustiť.

Q62. Môžeme zavolať nestatickú metódu zvnútra statickej metódy?

Odpoveď: Nestatické metódy vlastnia objekty triedy a majú rozsah na úrovni objektov. Aby bolo možné zavolať nestatické metódy zo statického bloku (ako zo statickej hlavnej metódy), je potrebné vytvoriť objekt triedy najprv. Potom pomocou odkazu na objekt je možné tieto metódy vyvolať.

Q63. Aké sú dve premenné prostredia, ktoré je potrebné nastaviť, aby sa dali spustiť akékoľvek programy Java?

Odpoveď: Programy Java je možné v stroji vykonávať iba po správnom nastavení nasledujúcich dvoch premenných prostredia:

  1. Premenná PATH
  2. Premenná CLASSPATH

Q64. Dajú sa premenné použiť v Jave bez inicializácie?

Odpoveď: Ak je v Jave použitá premenná v kóde bez predchádzajúcej inicializácie platnou hodnotou, program sa nezkompiluje a dá chybu, pretože premenným v Jave nie je priradená žiadna predvolená hodnota.

Q65. Dá sa trieda v Jave dediť z viac ako jednej triedy?

Odpoveď: V prostredí Java môže byť trieda odvodená iba z jednej triedy, a nie z viacerých tried. Java nepodporuje viacnásobné dedičstvo.

Q66. Môže mať konštruktér iný názov ako názov triedy v Jave?

Odpoveď: Konštruktor v Jave musí mať rovnaké meno ako názov triedy a ak je iný, nepôsobí ako konštruktér a prekladač to považuje za normálnu metódu.

Q67. Aký bude výstup z programu Round (3.7) a Ceil (3.7)?

Odpoveď: Round (3,7) vráti 4 a Ceil (3,7) vráti 4.

Q68: Môžeme použiť goto v Jave na prechod na konkrétny riadok?

Odpoveď: V prostredí Java neexistuje kľúčové slovo goto a java nepodporuje túto funkciu prechodu na konkrétny označený riadok.

Q69. Môže sa mŕtva niť znovu spustiť?

Odpoveď: V Jave sa vlákno, ktoré je v mŕtvom stave, nedá znova spustiť. Neexistuje spôsob, ako reštartovať mŕtve vlákno.

Q70. Je nasledujúce vyhlásenie triedy správne?

Odpovede:

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

Odpoveď: Vyššie uvedená deklarácia triedy je nesprávna, pretože abstraktnú triedu nemožno vyhlásiť za konečnú.

Q71. Vyžaduje sa na každom stroji JDK na spustenie programu Java?

Odpoveď: JDK je vývojová súprava Java a je potrebná iba na vývoj a na spustenie programu Java na počítači. JDK sa nevyžaduje. Vyžaduje sa iba JRE.

Q72. Aký je rozdiel medzi porovnaním vykonaným metódou equals a operátorom ==?

Odpoveď: V prostredí Java sa metóda equals () používa na porovnanie obsahu dvoch reťazcových objektov a vráti hodnotu true, ak majú dva rovnaké hodnoty, zatiaľ čo operátor == porovnáva odkazy na dva reťazcové objekty.

V nasledujúcom príklade funkcia equals () vracia hodnotu true, pretože dva reťazcové objekty majú rovnaké hodnoty. Operátor == však vráti hodnotu false, pretože oba objekty reťazca odkazujú na rôzne 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é definovať metódu v triede Java, ale zabezpečiť jej implementáciu v kóde iného jazyka ako C?

Odpoveď: Áno, môžeme to urobiť pomocou natívnych metód. V prípade vývoja založeného na natívnych metódach definujeme verejné statické metódy v našej triede Java bez jej implementácie a implementácia sa potom vykonáva v inom jazyku ako C osobitne.

Q74. Ako sú definované deštruktory v Jave?

Odpoveď: V Jave nie sú v triede definované žiadne deštruktory, pretože to nie je potrebné robiť. Java má svoj vlastný mechanizmus na zhromažďovanie odpadu, ktorý vykonáva prácu automaticky tak, že zničí objekty, keď už na ne nebude odkaz.

Q75. Môže byť premenná lokálna a statická súčasne?

Odpoveď: Žiadna premenná nemôže byť súčasne statická aj lokálna. Definovanie lokálnej premennej ako statickej spôsobí chybu kompilácie.

Q76. Môžeme mať v rozhraní statické metódy?

Odpoveď: Statické metódy nemôžu byť prepísané v žiadnej triede, zatiaľ čo akékoľvek metódy v rozhraní sú predvolene abstraktné a majú sa implementovať v triedach, ktoré implementujú rozhranie. Takže nemá zmysel mať statické metódy v rozhraní v Jave.

Q77. Môžeme v triede implementujúcej rozhranie zmeniť hodnotu akejkoľvek premennej definovanej v rozhraní?

Odpoveď: Nie, nemôžeme zmeniť hodnotu žiadnej premennej rozhrania v implementačnej triede, pretože všetky premenné definované v rozhraní sú predvolene verejné, statické a záverečné a konečné premenné sú ako konštanty, ktoré sa neskôr nedajú zmeniť.

Q78. Je správne povedať, že kvôli funkcii zberu odpadu v Jave program Java nikdy nevyjde z pamäte?

Odpoveď: Aj keď Java poskytuje automatický zber odpadu, nezabezpečuje to, že program Java nevyjde z pamäte, pretože existuje možnosť, že vytváranie objektov Java sa deje rýchlejším tempom v porovnaní so zberom odpadu, čo vedie k naplnenie všetkých dostupných pamäťových zdrojov.

Zber odpadu teda pomáha znižovať šance, že programu dôjde pamäť, ale to nezabezpečuje.

Q79. Môžeme mať pre hlavnú metódu iný návratový typ ako neplatný?

Odpoveď: Nie, hlavná metóda triedy Java môže mať iba úspešný návratový typ void, aby sa program mohol úspešne vykonať.

Ak však musíte nevyhnutne vrátiť hodnotu po dokončení hlavnej metódy, môžete použiť System.exit (stav int)

Q80. Chcem znova dosiahnuť a použiť objekt, ktorý bol zhromaždený v odpadkoch. Ako je to možné

Odpoveď: Akonáhle je objekt zničený garbage collectorom, už na halde neexistuje a nemožno k nemu znovu získať prístup. Neexistuje spôsob, ako na to znova odkazovať.

Q81. Ktorá metóda je v programovaní vlákien Java nevyhnutná pre všetky vlákna?

Ans: Run () je metóda spustiteľného rozhrania, ktorú musia implementovať všetky vlákna.

Q82. Chcem vo svojom programe ovládať databázové pripojenia a chcem, aby bolo možné vytvoriť databázové pripojenie naraz iba v jednom vlákne. Ako môžem implementovať túto logiku?

Odpoveď: Toto je možné implementovať pomocou konceptu synchronizácie. Kód súvisiaci s databázou je možné umiestniť spôsobom, ktorý hs synchronizuje kľúčové slovo, takže k nemu môže naraz pristupovať iba jedno vlákno.

Q83. Ako môže programátor ručne hodiť výnimku?

Odpoveď: Na ručné použitie výnimky v bloku kódu sa používa kľúčové slovo throw . Potom sa táto výnimka zachytí a spracuje sa v bloku zachytenia.

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

Q84. Chcem, aby bola moja trieda vyvinutá tak, aby žiadna iná trieda (ani odvodená) nemohla vytvárať svoje objekty. Ako to môžem urobiť?

Odpoveď: Ak deklarujeme konštruktor triedy ako súkromný, nebude prístupný pre nijakú inú triedu, a preto ho nebude môcť vytvoriť žiadna iná trieda a formovanie jej objektu bude obmedzené iba na seba.

Q85. Ako sú objekty uložené v Jave?

Odpoveď: V Jave získa každý objekt po vytvorení pamäťový priestor z haldy. Keď je objekt zničený zberačom odpadu, priestor, ktorý mu bol pridelený z haldy, sa znova pridelí halde a stane sa dostupným pre všetky nové objekty.

Q86. Ako môžeme zistiť skutočnú veľkosť objektu na halde?

Odpoveď: V Jave neexistuje spôsob, ako zistiť presnú veľkosť objektu na halde.

Q87. V ktorej z nasledujúcich tried bude pridelených viac pamäte?

Trieda A: Tri metódy, štyri premenné, žiadny objekt

Trieda B: Päť metód, tri premenné, žiadny objekt

Odp .: Pamäť nie je alokovaná pred vytvorením objektov. Pretože pre obe triedy nie sú vytvorené žiadne objekty, takže pre každú triedu nie je na halde pridelená pamäť.

Q88. Čo sa stane, ak sa v programe nespracuje výnimka?

Odpoveď: Ak sa v programe pomocou blokov try catch výnimka nespracuje, program sa preruší a po vyhlásení, ktoré spôsobilo vyvolanie výnimky, sa nevykoná žiadny príkaz.

Q89. V triede mám definovaných viac konštruktorov. Je možné zavolať konštruktéra z tela iného konštruktéra?

Odpoveď: Ak má trieda viac konštruktorov, pomocou tohto () je možné zavolať jedného konštruktora z tela druhého .

Q90. Čo sa myslí pod anonymnou triedou?

Odpoveď: Anonymná trieda je trieda definovaná bez názvu v jednom riadku kódu pomocou nového kľúčového slova.

Napríklad v nasledujúcom kóde sme definovali anonymnú triedu v jednom riadku 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 spôsob, ako zväčšiť veľkosť poľa po jeho vyhlásení?

Odpoveď: Polia sú statické a keď určíme jeho veľkosť, nemôžeme ho zmeniť. Ak chceme použiť také kolekcie, kde môžeme požadovať zmenu veľkosti (počet položiek), mali by sme uprednostniť vektor pred poľom.

Q92. Ak má aplikácia viac tried, je v poriadku mať hlavnú metódu vo viac ako jednej triede?

Odpoveď: Ak existuje hlavná metóda vo viac ako jednej triede v aplikácii Java, nespôsobí to žiadny problém, pretože vstupným bodom pre ľubovoľnú aplikáciu bude konkrétna trieda a kód sa bude začínať iba od hlavnej metódy tejto konkrétnej triedy.

Q93. Chcem uchovať údaje o objektoch pre ďalšie použitie. Aký je najlepší prístup?

Odpoveď: Najlepším spôsobom, ako uchovať údaje pre ďalšie použitie, je použitie konceptu serializácie.

Q94. Čo je to miestna trieda v Jave?

Odpoveď: Ak v Jave definujeme novú triedu v konkrétnom bloku, nazýva sa to lokálna trieda. Takáto trieda má miestny rozsah a nie je použiteľná mimo bloku, kde je definovaná.

Q95. String aj StringBuffer predstavujú objekty String. Môžeme porovnávať String a StringBuffer v Jave?

Odpoveď: Aj keď String aj StringBuffer predstavujú objekty String, nemôžeme ich navzájom porovnávať a ak sa ich pokúsime porovnať, zobrazí sa chyba.

Q96. Ktoré API poskytuje Java na operácie so sadou objektov?

Ans: Java poskytuje API Collection, ktoré poskytuje mnoho užitočných metód, ktoré je možné použiť na množinu objektov. Niektoré z dôležitých tried poskytovaných API Collection zahŕňajú ArrayList, HashMap, TreeSet a TreeMap.

Q97. Môžeme s typovým odlievaním vhodiť akýkoľvek iný typ na Boolean Type?

Odpoveď: Nie, nemôžeme vrhnúť žiadny iný primitívny typ na boolovský dátový typ ani nemôžeme vrhať boolovský dátový typ na žiadny iný primitívny dátový typ.

Q98. Môžeme použiť rôzne typy návratov pre metódy, keď sú prepísané?

Odpoveď: Základnou požiadavkou prepísania metódy v Jave je, aby mala prepísaná metóda rovnaký názov a parametre. Metódu je však možné prepísať iným návratovým typom, pokiaľ nový návratový typ predlžuje pôvodný.

Napríklad metóda vracia referenčný typ.

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

Q99. Aká je základná trieda všetkých tried výnimiek?

Odpoveď: V prostredí Java je Java.lang.Throwable super triedou všetkých tried výnimiek a všetky triedy výnimiek sú odvodené od tejto základnej triedy.

Q100. Aké je poradie volaní konštruktérov v dedičstve?

Odpoveď: V prípade dedenia, keď sa vytvorí nový objekt odvodenej triedy, najskôr sa vyvolá konštruktor super triedy a potom sa vyvolá konštruktor odvodenej triedy.

Pripravte sa na pracovný pohovor !!! Prejdite si Java Tutorial a buďte lepšie pripravení.

Tento podrobný dokument o otázkach týkajúcich sa Java rozhovoru vo formáte pdf vám pomôže vyriešiť pochybnosti o otázkach týkajúcich sa pohovoru v prostredí Java a pomôže vám tiež pri rozhovore.