A Java-interjú 100 legfontosabb kérdése és válasza (PDF letöltése)

PDF letöltése

Összeállítottuk a leggyakrabban feltett Java interjú kérdéseket és válaszokat, amelyek segítenek felkészülni az alapvető Java interjú kérdésekre, amelyeket egy interjúztató megkérdezhet az interjú során. A Java-alapú interjúk ebben a listájában az összes gyakran feltett alapvető és haladó Core Java-interjúval kapcsolatos kérdést részletesen megválaszoltuk az állásinterjú tisztázása érdekében.

Az alábbi lista 100 fontos Core Java interjú kérdést tartalmaz a friss tanulók számára, valamint Java interjú kérdéseket és válaszokat a tapasztalt programozók számára, amelyek segítenek nekik felkészülni az interjúra. Ez a Java-programozással kapcsolatos interjúkérdések részletes útmutatója segít abban, hogy könnyedén feltörje állásinterjúját.

Java Java-interjú kérdései és válaszai a friss és a tapasztaltak számára

Q1. Mi a különbség a belső osztály és az alosztály között?

Ans: A Belső osztály olyan osztály, amelyet egy másik osztályba ágyaznak. Egy Inner osztály rendelkezik hozzáférési jogokkal a beágyazott osztályhoz, és hozzáférhet a külső osztályban definiált összes változóhoz és módszerhez.

Az alosztály egy olyan osztály, amely egy másik, szuper osztálynak nevezett osztálytól örököl. Az alosztály hozzáférhet szuperosztályának minden nyilvános és védett módszeréhez és mezőjéhez.

Q2. Melyek a Java osztályok különböző hozzáférési specifikációi?

Válasz: A Java-ban a hozzáférési specifikátorok azok a kulcsszavak, amelyeket egy osztálynév előtt használnak, amely meghatározza a hozzáférési hatókört. Az osztályok hozzáférési specifikációinak típusai:

1. Nyilvános: Osztály, módszer, mező bárhonnan elérhető.

2. Védett: A Method, Field ugyanabból az osztályból, ahová tartoznak, vagy az alosztályokból, és ugyanazon csomag osztályából érhető el, kívülről azonban nem.

3. Alapértelmezés: A módszer, mező, osztály csak ugyanabból a csomagból érhető el, a natív csomag kívülről nem.

4. Privát: A módszer, a mező ugyanabból az osztályból érhető el, amelyhez tartoznak.

Q3. Mi a statikus módszerek és statikus változók célja?

Válasz: Ha követelmény van egy módszer vagy egy változó megosztása az osztály több objektuma között ahelyett, hogy minden objektumhoz külön másolatot készítenénk, akkor statikus kulcsszóval metódust vagy változót készítünk az összes objektumhoz.

Q4. Mi az adatkapszulázás és mi a jelentősége?

Ans: A beágyazás az objektumorientált programozás egyik fogalma, amely a tulajdonságokat és a módszereket egyetlen egységben egyesíti.

A beágyazás segít a programozóknak abban, hogy moduláris megközelítést kövessenek a szoftverfejlesztésben, mivel minden objektumnak megvan a maga módszerei és változói, és más objektumoktól függetlenül szolgálja funkcióit. A beágyazás az adatok elrejtését is szolgálja.

Q5. Mi az az egyedülálló osztály? Mondjon gyakorlati példát a használatára.

A java szingulett osztályának csak egy példánya lehet, ezért az összes metódusa és változója csak egy példányhoz tartozik. A Singleton osztálykoncepció hasznos azokban a helyzetekben, amikor korlátozni kell az objektumok számát egy osztály számára.

A legjobb példa az egyedi használatra, amikor bizonyos illesztőprogram-korlátozások vagy licencelési problémák miatt korlátozott az egyetlen kapcsolat az adatbázishoz.

Q6. Mik a hurkok a Java-ban? Mi a három típusú hurok?

Válasz: A hurok használata a programozás során egy utasítás vagy egy mondatblokk ismételt végrehajtására szolgál. Háromféle hurok létezik a Java-ban:

1) Hurkokhoz

A ciklusok ugyanis a java-ban használják az utasítások ismételt végrehajtását egy adott számú alkalommal. A ciklusoknál akkor használják, amikor a programozó ismeri az utasítások végrehajtásának számát.

2) Míg a hurkok

Míg a ciklust akkor használják, amikor bizonyos utasításokat ismételten kell végrehajtani, amíg egy feltétel nem teljesül. A while ciklusokban a feltételeket először ellenőrizzük az utasítások végrehajtása előtt.

3) Hurok közben csináld

A Do While hurok megegyezik a While ciklussal, csak azzal a különbséggel, hogy a feltétel ellenőrzése megtörténik az utasításblokk végrehajtása után. Ezért do while ciklus esetén az utasításokat legalább egyszer végrehajtják.

7. kérdés: Mi a végtelen hurok? Hogyan deklarálják a végtelen hurkot?

Ans: Egy végtelen hurok feltétel nélkül fut, és végtelenül fut. Egy végtelen ciklust meg lehet szakítani bármilyen megszakító logika definiálásával az utasításblokkok törzsében.

A végtelen ciklust a következőképpen deklaráljuk:

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

Q8. Mi a különbség a folytatás és a törés kimutatás között?

Válasz: a Húzás és a folytatás két fontos kulcsszó használatos a hurokban. Ha a break kulcsszót egy ciklusban használják, akkor a hurok azonnal megszakad, míg a folytatás kulcsszó használata esetén az aktuális iteráció megszakad, és a ciklus folytatódik a következő iterációval.

Az alábbi példában a hurok megszakad, amikor a számláló eléri a 4-et.

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

Az alábbi példában, amikor a számláló eléri a 4 értéket, a hurok a következő iterációra ugrik, és a folytatás kulcsszó után minden utasítás kihagyásra kerül az aktuális iterációhoz.

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. Mi a különbség a kettős és az úszó változók között a Java-ban?

Válasz: A java-ban az float 4 bájtot, míg a Double 8 bájtot foglal el a memóriában. Az úszó egyetlen precíziós lebegőpontos tizedesjegy, míg a Dupla kettős pontosságú tizedesjegy.

Q10. Mi az utolsó kulcsszó a Java-ban? Adj egy példát.

Ans: Java-ban egy konstansot a Final kulcsszóval deklarálunk. Az érték csak egyszer rendelhető hozzá, és a hozzárendelés után egy konstans értéke nem változtatható meg.

Az alábbi példában egy konst_val nevű konstans kerül deklarálásra és hozzárendelésre:

Privát végső int const_val = 100

Ha egy metódust véglegesnek nyilvánítanak, akkor azt az alosztályok NEM írhatják felül. Ez a módszer gyorsabb, mint bármelyik másik módszer, mert a megfelelő időben oldják meg őket.

Ha egy osztály véglegesnek nyilvánul, akkor nem lehet alosztályba sorolni. Példa karakterlánc, egész szám és más burkoló osztályok.

Q11. Mi a hármas operátor? Adj egy példát.

Ans: A háromfázisú operátor, más néven feltételes operátor, arra szolgál, hogy eldöntse, melyik értéket rendelje hozzá egy változóhoz logikai értékértékelés alapján. Ezt jelölik?

Az alábbi példában, ha a rang 1, akkor az állapothoz a "Kész", a másik "Függőben" értéket rendeljük.

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

12. kérdés: Hogyan lehet véletlen számokat generálni a Java-ban?

Ans:

  • A Math.random () segítségével véletlenszerű számokat generálhat a 0,1-nél nagyobb vagy azzal egyenlő és 1,0-nél kisebb tartományban
  • A Random osztály használata a java.util csomagban

Q13. Mi az alapértelmezett kapcsoló eset? Mondjon példát.

Válasz: Egy kapcsolási utasításban az alapértelmezett eset akkor kerül végrehajtásra, ha más kapcsolási feltétel nem felel meg. Az alapértelmezett eset opcionális eset. Csak akkor deklarálható, ha az összes többi kapcsolási eset kódolva van.

Az alábbi példában, ha a pontszám nem 1 vagy 2, alapértelmezett betűt használunk.

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. Mi a Java alaposztálya, amelyből az összes osztály származik?

Ans: java.lang.object

Q15. Vissza tudja-e adni a Java (main) metódusát?

Válasz: A java-ban a main () metódus nem adhat vissza adatokat, ezért mindig érvénytelen return-típussal deklarálják.

Q16. Mik azok a Java csomagok? Mi a csomagok jelentősége?

Válasz: A Java-ban a package osztályok és interfészek gyűjteménye, amelyek egymáshoz kapcsolódva vannak összekötve. A csomagok használata segíti a fejlesztőket a kód modulálásában, és a kód csoportosításában a megfelelő újrafelhasználás érdekében. Miután a kód csomagolva lett a Csomagokban, más osztályokba importálható és felhasználható.

Q17. Kihirdethetünk-e egy osztályt absztraktnak anélkül, hogy bármilyen elvont módszerünk lenne?

Válasz: Igen, akkor absztrakt osztályt hozhatunk létre absztrakt kulcsszó használatával az osztály neve előtt, még akkor is, ha nincs absztrakt módszere. Ha azonban egy osztálynak csak egy absztrakt módszere van, akkor absztraktként kell deklarálni, különben hibát ad.

Q18. Mi a különbség az absztrakt osztály és a Java felület között?

Válasz: Az absztrakt osztály és az interfész közötti elsődleges különbség az, hogy egy interfész csak nyilvános statikus módszerek deklarálásával rendelkezik, konkrét megvalósítás nélkül, míg egy absztrakt osztály tagjai lehetnek bármilyen hozzáférési specifikációval (nyilvános, magán stb.), Konkrét megvalósítással vagy anélkül.

Egy másik kulcsfontosságú különbség az absztrakt osztályok és interfészek használatában az, hogy az interfészt megvalósító osztálynak meg kell valósítania az interfész összes módszerét, míg egy absztrakt osztályból örökölt osztály nem igényli a szuperosztályának összes metódusát.

Egy osztály több interfészt is megvalósíthat, de csak egy absztrakt osztályt terjeszthet ki.

Q19. Milyen következményei vannak az interfészeknek az elvont osztályokkal szemben?

Válasz: Az interfészek teljesítménye lassabb, mint az absztrakt osztályoké, mivel az interfészekhez további indirekciók szükségesek. Egy másik kulcsfontosságú tényező, amelyet a fejlesztőknek figyelembe kell venniük, hogy bármely osztály csak egy absztrakt osztályt bővíthet, míg egy osztály sok interfészt képes megvalósítani.

Az interfészek használata további terhet ró a fejlesztőkre, mivel bármikor megvalósítják a felületet egy osztályban; A fejlesztő kénytelen az interfész minden egyes módszerét megvalósítani.

Q20. A csomag importálása az alcsomagokat is Java-ba importálja?

Válasz: A Java-ban egy csomag importálásakor az alcsomagjait nem importálják, és a fejlesztőnek külön kell importálnia őket, ha szükséges.

Például, ha egy fejlesztő csomagcsomagot importál. *, Az egyetem nevű csomag összes osztálya betöltődik, de az alcsomagból egyetlen osztály sem töltődik be. Az osztályok alcsomagjából (mondjuk osztály) betöltéséhez a fejlesztőnek kifejezetten az alábbiak szerint kell importálnia:

Import egyetem. Részleg. *

Q21. Kihirdethetjük-e osztályunk fő módszerét privátnak?

Válasz: A java-ban a fő módszernek statikusnak kell lennie az alkalmazás megfelelő futtatásához. Ha a fő metódust privátnak nyilvánítják, a fejlesztő nem kap fordítási hibát, azonban nem hajtja végre, és futásidejű hibát ad.

Q22. Hogyan adhatunk át argumentumot egy függvényre hivatkozással, nem pedig érték alapján?

Ans: A java-ban egy argumentumot csak értékkel, és nem hivatkozással adhatunk át egy függvénynek.

Q23. Hogyan sorosítják az objektumokat a java-ban?

Ans: Java-ban, ha egy objektumot sorosítással bájtfolyammá kíván konvertálni, az osztály Serializable nevű interfészt valósít meg. A sorozatozható felületet megvalósító osztály összes objektuma sorosítottá válik, és állapotukat a bájtfolyamba menti.

Q24. Mikor kell használnunk a sorosítást?

Válasz: A sorosítást akkor alkalmazzák, amikor az adatokat a hálózaton keresztül kell továbbítani. A sorozatosítással az objektum állapotát elmenti és átalakítja bájtfolyammá. A bájtfolyam átvitelre kerül a hálózaton, és az objektum újból létrehozásra kerül a rendeltetési helyen.

Q25. Kötelező-e a Try blokkot követni egy Catch blokkkal a Java-ban a kivétel kezeléséhez?

Válasz: A Try blokkot követnie kell vagy a Catch blokknak, vagy a Végül blokknak, vagy mindkettőnek. A try blokkból eldobott kivételeket vagy a catch blokkban kell rögzíteni, vagy pedig bármilyen konkrét feladatot el kell végeznie, mielőtt a kód abortuszt a Végül blokkba helyeznék.

Q26. Van-e mód arra, hogy átugorja a Végső blokkot akkor is, ha valamilyen kivétel fordul elő a kivételblokkban?

Válasz: Ha a Try blokkban felvetődik egy kivétel, akkor a vezérlő átmegy a blokk blokkolására, ha másképp létezik, hogy végül blokkoljon. Végül a blokk mindig végrehajtásra kerül, amikor kivétel történik, és a Végső blokk egyetlen utasításának végrehajtásának elkerülése az, ha erőszakosan megszakítja a kódot a következő kódsor megírásával a próbablokk végén:

System.exit(0);

Q27. Amikor egy osztály konstruktorára hivatkozunk?

Válasz: Az osztály konstruktorát minden alkalommal meghívják, amikor egy objektum új kulcsszóval jön létre.

Például a következő osztályban két objektum jön létre új kulcsszó használatával, ezért a konstruktort kétszer hívják meg.

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. Lehet egy osztálynak több konstruktora?

Válasz: Igen, egy osztálynak több konstruktora lehet, különböző paraméterekkel. Az, hogy melyik konstruktort használják az objektum létrehozásához, az objektumok létrehozása során átadott argumentumoktól függ.

Q29. Felülírhatjuk-e az osztály statikus módszereit?

Ans: Nem tudjuk felülírni a statikus módszereket. A statikus módszerek egy osztályhoz tartoznak, nem pedig az egyes objektumokhoz, és az összeállítás idején (nem futás közben) oldódnak meg. Még akkor is, ha megpróbáljuk felülbírálni a statikus módszert, nem kapunk bonyolultsági hibát, sem az felülbírálás hatását a kód.

Q30. Az alábbi példában mi lesz a kimenet?

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

Válasz : A kimenet:

Alosztályról megjelenítve

Megjelenítés a szuperosztályról

Q31. A String adattípus a java-ban?

Válasz: A karakterlánc nem primitív adattípus a java-ban. Amikor egy karakterlánc Java-ban jön létre, az valójában a Java.Lang.String osztály objektuma, amely létrejön. A string objektum létrehozása után a String osztály összes beépített metódusa felhasználható a string objektumon.

Q32. Az alábbi példában hány string objektum jön létre?

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

Válasz: A fenti példában a Java.Lang.String osztály két objektuma jön létre. s1 és s3 ugyanazon objektumra való hivatkozások.

Q33. Miért hívják a Java karakterláncokat megváltoztathatatlannak?

Válasz: A java-ban a karakterlánc-objektumokat megváltoztathatatlannak nevezik, mivel amint egy sztringhez értéket rendeltek, azt nem lehet megváltoztatni, és ha megváltoztatja, akkor új objektum jön létre.

Az alábbi példában az str hivatkozás egy "string one" értékű string objektumra utal.

String str="Value One";

Ha új értéket rendel hozzá, létrejön egy új String objektum, és a hivatkozás az új objektumra kerül.

str="New Value";

Q34. Mi a különbség egy tömb és a vektor között?

Ans: Egy tömb azonos primitív típusú adatokat csoportosít és statikus jellegű, míg a vektorok dinamikus jellegűek, és különböző adattípusok adatait tárolhatják.

Q35. Mi az a többszálas menet?

Válasz: A többszálas programozás egy olyan programozási koncepció, amely több feladatot egyidejűleg futtat egyetlen programon belül. A szálak ugyanazt a folyamathalmot használják, és párhuzamosan futnak. Segít bármely program teljesítményének javításában.

Q36. Miért használják a futható felületet a Java-ban?

Válasz: A futható felületet a java-ban többszálas alkalmazások megvalósításához használják. A Java.Lang.Runnable felületet egy osztály valósítja meg, hogy támogassa a többszálas szálkezelést.

Q37. Mi a két módszer a multi-threading megvalósítására a Java-ban?

Válasz: Többszálas alkalmazások fejleszthetők Java-ban a következő két módszer bármelyikének alkalmazásával:

1. A Java.Lang.Runnable Interface használatával. Az osztályok ezt a kezelőfelületet valósítják meg a többszálas szálak engedélyezéséhez. Ezen a felületen van egy Run () metódus, amelyet megvalósítottak.

2. Írva egy olyan osztályt, amely kiterjeszti a Java.Lang.Thread osztályt.

Q38. Ha sok változásra van szükség az adatokban, melyiket kell előnyben részesíteni? String vagy StringBuffer?

Válasz: Mivel a StringBufferek dinamikus jellegűek, és a StringBuffer objektumok értékeit megváltoztathatjuk a String-kel ellentétben, amely megváltoztathatatlan, mindig jó választás a StringBuffer használata, amikor az adatok túlságosan megváltoznak. Ha ilyen esetben String-et használunk, minden adatcseréhez új String-objektum jön létre, amely extra általános költséget jelent.

Q39. Mi a célja a Break használatának minden egyes Switch utasításban?

Válasz: A szünetet a kapcsolóban minden eset után (az utolsó kivételével) használjuk, hogy a kód az érvényes eset után megszakadjon, és az eljárás eseteiben sem folyjon.

Ha az egyes esetek után nem használjuk a törést, akkor az érvényes esetet követő összes eset végrehajtásra kerül, ami rossz eredményeket eredményez.

Q40. Hogyan történik a szemétszállítás Java-ban?

Ans: A java-ban, amikor egy objektumra már nincs hivatkozás, szemétgyűjtés történik, és az objektum automatikusan megsemmisül. Az automatikus szemétszállításhoz a java vagy a System.gc (), vagy a Runtime.gc () metódust hívja meg.

Q41. Hogyan tudunk bármilyen kódot végrehajtani még a fő módszer előtt?

Válasz: Ha bármilyen állítást meg akarunk hajtani, még mielőtt objektumokat is létrehoznánk az osztály betöltési idején, használhatunk egy statikus kódblokkot az osztályban. A statikus kódblokkban található utasítások egyszer végrehajtásra kerülnek az osztály betöltésekor, még az objektumok létrehozása előtt a fő módszerben.

Q42. Lehet-e egy osztály egyszerre szuperosztály és alosztály? Mondjon példát.

Válasz: Ha az öröklési hierarchiát használják, akkor egy osztály lehet egy másik osztály szuper osztálya, egy másik pedig egy alosztálya.

Az alábbi példában a kontinensosztály a világklasszis osztálya és a szuperosztályú országosztály.

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

Q43. Hogyan jönnek létre egy osztály objektumai, ha az osztályban nincs definiálva konstruktor?

Válasz: Még akkor is, ha egy java osztályban nincs meghatározva explicit konstruktor, az objektumok sikeresen létrehozásra kerülnek, mivel alapértelmezett konstruktorként implicit módon használják az objektumok létrehozására. Ennek a konstruktornak nincsenek paraméterei.

Q44. A többszálas szálakban hogyan lehet biztosítani, hogy egy erőforrást ne egyszerre több szál használjon?

Válasz: Több szálon keresztül a több szál között megosztott erőforrásokhoz való hozzáférés a szinkronizálás koncepciójának segítségével szabályozható. A szinkronizált kulcsszó használatával biztosíthatjuk, hogy egyszerre csak egy szál használhassa a megosztott erőforrásokat, mások pedig csak akkor kaphassák meg az erőforrás irányítását, ha az már szabaddá vált a másiktól.

Q45. Felhívhatjuk-e egy osztály konstruktorát többször is egy objektumra?

Válasz: A konstruktort automatikusan meghívjuk, amikor új kulcsszóval létrehozunk egy objektumot. Egy objektumra csak egyszer hívják meg az objektum létrehozása idején, ezért nem lehet a konstruktort újból meghívni egy objektumra a létrehozása után.

Q46. Két osztály van, amelyek neve A és B osztály. Mindkét osztály ugyanabban a csomagban található. Hozzáférhet egy A osztályú magán taghoz egy B osztályú objektum?

Válasz: Egy osztály magántagjai nem férhetnek hozzá az adott osztályon kívülre, és bármely más, még ugyanabban a csomagban lévő osztály sem férhet hozzá.

Q47. Két módszerünk lehet egy azonos nevű osztályban?

Válasz: Két módszert határozhatunk meg egy osztályban, azonos névvel, de eltérő számú / típusú paraméterekkel. Melyik módszert kell meghívni, az átadott paraméterektől függ.

Például az alábbi osztályban két nyomtatási módszerünk van, azonos névvel, de különböző paraméterekkel. A paraméterektől függően a megfelelőt hívjuk:

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. Hogyan készíthetünk másolatot egy java objektumról?

Ans: Használhatjuk a klónozás fogalmát az objektum másolatának létrehozására. A klón segítségével másolatokat készítünk egy objektum tényleges állapotáról.

A Clone () a Cloneable interface metódusa, ezért az Cloneable interfészt kell megvalósítani az objektum másolatok készítéséhez.

Q49. Mi az öröklés használatának előnye?

Válasz: Az öröklés használatának fő előnye a kód újrafelhasználhatósága, mivel az öröklés lehetővé teszi az alosztályok számára a szuper osztályának kódjának újrafelhasználását. A polimorfizmus (kiterjeszthetőség) egy másik nagy előny, amely lehetővé teszi új funkciók bevezetését anélkül, hogy a meglévő származtatott osztályokat befolyásolná.

Q50. Mi az alapértelmezett hozzáférési specifikátor egy osztály változóihoz és metódusaihoz?

Válasz: A változók és a módszer alapértelmezett hozzáférési specifikációja csomagvédett, azaz a változók és az osztály bármely más osztály számára elérhető, de ugyanabban a csomagban, nem a csomagon kívül.

Q51. Mondjon példát a mutatók használatára a Java osztályban.

Válasz: A Java-ban nincsenek mutatók. Tehát nem használhatjuk a mutatók fogalmát a Java-ban.

Q52. Hogyan korlátozhatjuk egy osztály öröklődését úgy, hogy egyetlen osztály sem örökölhető legyen belőle?

Válasz: Ha azt akarjuk, hogy egy osztályt ne hosszabbítson tovább egyetlen osztály sem, használhatjuk a Végleges kulcsszót az osztály nevével.

A következő példában a Stone osztály végleges és nem bővíthető

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

Q53. Mi a védett hozzáférés specifikátor hozzáférési területe?

Válasz: Amikor egy metódust vagy egy változót védett hozzáférési specifikátorral deklarálunk, akkor hozzáférhetővé válik ugyanabban az osztályban, ugyanannak a csomagnak bármely más osztályában, valamint egy alosztályban.

Módosító

Osztály

Csomag

Alosztály

Világ

nyilvános

Y

Y

Y

Y

védett

Y

Y

Y

N

nincs módosító

Y

Y

N

N

magán

Y

N

N

N

Q54. Mi a különbség a verem és a várólista között?

Válasz: A verem és a várólista helyőrzőként szolgálnak egy adatgyűjtéshez. Az elsődleges különbség a verem és a sor között az, hogy a verem a Last in First out (LIFO) elvre épül, míg a sor a FIFO (First In First Out) elvre épül.

Q55. A java-ban hogyan utasíthatjuk el a változók sorosítását?

Válasz: Ha azt akarjuk, hogy egy osztály bizonyos változói ne legyenek sorosítva, akkor a tranziens kulcsszót használhatjuk, miközben deklaráljuk őket. Például az alábbi transz_var változó tranziens változó, és nem sorosítható:

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

Q56. Hogyan használhatjuk a primitív adattípusokat objektumként?

Válasz: Az olyan primitív adattípusok, mint az int, objektumként kezelhetők a megfelelő burkolóosztályaik használatával. Például az Integer az int primitív adattípus burkoló osztálya. Különböző módszereket alkalmazhatunk egy burkoló osztályra, akárcsak bármely más objektumot.

Q57. Milyen típusú kivételeket találunk a fordításkor?

Válasz: Az ellenőrzött kivételeket a program összeállításakor lehet megfogni. Az ellenőrzött kivételeket úgy kell kezelni, hogy a kódot sikeresen lefordítják a kódban a try catch blokk használatával.

Q58. Írja le a szál különböző állapotait.

Válasz: A Java szála a következő állapotok bármelyikében lehet:

  • Kész: Egy szál létrehozásakor kész állapotban van.
  • Futás: A jelenleg végrehajtott szál futó állapotban van.
  • Várakozás: Egy szál, amely egy másik szálra vár bizonyos erőforrások felszabadítására, várakozási állapotban van.
  • Dead: A szál, amely a végrehajtás után elpusztult, halott állapotban van.

Q59. Használhatunk-e egy osztály alapértelmezett konstruktorát akkor is, ha explicit konstruktort definiálunk?

Válasz: A Java egy alapértelmezett argumentum nélküli konstruktort biztosít, ha a Java osztályban nincs definiálva kifejezett konstruktor. De ha explicit konstruktort definiáltunk, akkor az alapértelmezett konstruktort nem lehet meghívni, és a fejlesztő csak azokat a konstruktorokat használhatja, amelyek az osztályban definiálva vannak.

Q60. Felülírhatunk-e egy metódust ugyanazon metódusnév és argumentumok, de különböző visszatérési típusok használatával?

Válasz: A metódus felülbírálásának alapfeltétele, hogy a metódus nevének, argumentumainak és visszatérési típusának pontosan meg kell egyeznie a felülbírált metóduséval. Ezért egy másik visszatérési típus használata nem írja felül a módszert.

Q61. Mi lesz a következő kódrészlet kimenete?

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

Válasz: Ebben az esetben a postfix ++ operátort használják, amely először visszaadja az értéket, majd növekszik. Ezért a kimenete 4 lesz.

Q61. Egy személy azt mondja, hogy sikeresen összeállított egy java osztályt anélkül, hogy fő módszer lenne benne? Lehetséges?

Ans: a fő módszer a Java osztály belépési pontja, és szükséges a program futtatásához; egy osztály sikeresen összeáll, még akkor is, ha nincs fő módszere. Ez azonban nem futtatható.

Q62. Hívhatunk nem statikus módszert statikus módszer belsejéből?

Ans: A nem statikus módszerek egy osztály objektumainak tulajdonában vannak, objektum szintű hatókörrel rendelkeznek, és a nem statikus metódusok statikus blokkból történő meghívásához (például statikus fő metódusból) létre kell hozni egy osztály objektumát első. Ezután objektumhivatkozás segítségével ezek a módszerek meghívhatók.

Q63. Mi az a két környezeti változó, amelyet be kell állítani a Java programok futtatásához?

Válasz: A Java programokat csak akkor lehet futtatni egy gépen, ha a következő két környezeti változót megfelelően beállítottuk:

  1. PATH változó
  2. CLASSPATH változó

Q64. Használhatók-e változók inicializálás nélkül a Java-ban?

Ans: Ha a Java-ban egy változót egy érvényes érték előzetes inicializálása nélkül használnak egy kódban, akkor a program nem fordít és hibát ad, mivel a Java változókhoz nincs hozzárendelve alapértelmezett érték.

Q65. Örökölhető-e egy Java-osztály több osztályból is?

Ans: A Java-ban egy osztály csak egy osztályból származhat, és nem több osztályból. Több örökséget a Java nem támogat.

Q66. Lehet-e egy konstruktornak más neve, mint egy Java-osztálynév?

Válasz: A Java-ban a konstruktornak ugyanazzal a névvel kell rendelkeznie, mint az osztály neve, és ha a név különbözik, akkor nem úgy működik, mint egy konstruktor, és a fordító normális módszerként gondolja rá.

Q67. Mi lesz a Round (3.7) és a Ceil (3.7) kimenete?

Ans: A kör (3.7) értéke 4, Ceil (3.7) értéke pedig 4.

68. kérdés: Használhatjuk a Java-ban a goto-t egy adott sorra lépéshez?

Válasz: A Java-ban nincs goto kulcsszó, és a java nem támogatja ezt a funkciót, hogy egy adott címkézett sorra lépjen.

Q69. Újra el lehet kezdeni egy holt szálat?

Ans: Javában egy halott állapotú szálat nem lehet újraindítani. Egy holt szálat nem lehet újraindítani.

Q70. Helyes a következő osztálydeklaráció?

Ans:

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

Válasz: A fenti osztálydeklaráció helytelen, mivel egy absztrakt osztályt nem lehet véglegesnek nyilvánítani.

Q71. Szükség van-e JDK-ra minden gépen egy Java-program futtatásához?

Válasz: A JDK a Java fejlesztőkészlete, és csak a fejlesztéshez és a Java program futtatásához szükséges egy gépen, a JDK nem szükséges. Csak JRE szükséges.

Q72. Mi a különbség az egyenlő módszerrel végzett összehasonlítás és az == operátor között?

Ans: A Java-ban az equals () metódus két karakterlánc-objektum tartalmának összehasonlítására szolgál, és igaz értéket ad vissza, ha a kettő értéke azonos, míg az == operátor összehasonlítja két karakterlánc-objektum referenciáit.

A következő példában az equals () true értékkel tér vissza, mivel a két karakterlánc objektum értéke megegyezik. Az == operátor azonban hamis értéket ad vissza, mivel mindkét karakterlánc objektum különböző objektumokra hivatkozik:

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. Lehetséges-e meghatározni egy módszert a Java osztályban, de megvalósítani egy másik nyelv, például a C kódjában?

Válasz: Igen, ezt natív módszerek segítségével tehetjük meg. Natív módszer alapú fejlesztés esetén a nyilvános statikus módszereket definiáljuk Java osztályunkban annak megvalósítása nélkül, majd a megvalósítás külön egy másik nyelven, például C-ben történik.

Q74. Hogyan definiálják a destruktorokat a Java-ban?

Válasz: A Java-ban nincs definiáló definiálva az osztályban, mivel erre nincs szükség. A Java saját szemétszedési mechanizmussal rendelkezik, amely automatikusan elvégzi a munkát azáltal, hogy elpusztítja az objektumokat, amikor már nincsenek rá hivatkozva.

Q75. Lehet-e egy változó egyszerre lokális és statikus?

Válasz: Egy változó sem lehet statikus, valamint lokális egyszerre. A helyi változó statikusként történő meghatározása fordítási hibát eredményez.

Q76. Rendelkezhetnek statikus módszerekkel egy interfészen?

Válasz: A statikus módszereket nem lehet felülbírálni egyetlen osztályban sem, míg az interfész bármelyik módszere alapértelmezés szerint absztrakt, és feltételezhetően a felületet megvalósító osztályokban kell megvalósítani. Tehát nincs értelme statikus módszereket használni a Java felületén.

Q77. Interfészt megvalósító osztályban megváltoztathatjuk-e a felületen definiált bármely változó értékét?

Válasz: Nem, nem tudjuk megváltoztatni az interfész egyik változójának értékét az implementációs osztályban, mivel az interfészben definiált összes változó alapértelmezés szerint nyilvános, a statikus, valamint a végső és a végső változó olyan, mint az állandó, amelyet később nem lehet megváltoztatni.

Q78. Helyes azt állítani, hogy a Java szemétgyűjtő szolgáltatása miatt a java program soha nem fogy ki a memóriából?

Válasz: Annak ellenére, hogy az automatikus szemétszedést a Java biztosítja, ez nem biztosítja, hogy a Java program ne fogyjon ki a memóriából, mivel fennáll annak a lehetősége, hogy a Java objektumok létrehozása gyorsabb ütemben történik, mint a szemétszállítás, ami az összes rendelkezésre álló memóriaforrás kitöltése.

Tehát a szemétszállítás segít csökkenteni annak esélyét, hogy egy program kimerüljön a memóriában, de ezt nem biztosítja.

Q79. Lehet-e más visszatérési típusunk, mint a void for main metódus?

Válasz: Nem, a Java osztály fő metódusának csak érvénytelen return típusa lehet a program sikeres végrehajtásához.

Mindazonáltal, ha a fő módszer befejezésekor mindenképpen vissza kell adnia egy értéket, használhatja a System.exit (int status)

Q80. Újra el akarok érni egy objektumot, és használnom kell azt, miután szemetet gyűjtöttek. Hogyan lehetséges?

Ans: Miután egy tárgyat a szemétgyűjtő megsemmisített, az már nem létezik a kupacban, és nem lehet hozzá újra hozzáférni. Nincs rá mód, hogy újra hivatkozhassunk rá.

Q81. Melyik módszer szükséges a Java szálprogramozásban az összes szálhoz?

Ans: A Run () a Futható felület metódusa, amelyet minden szálnak végre kell hajtania.

Q82. Szeretném vezérelni az adatbázis-kapcsolatokat a programomban, és azt szeretném, hogy egyszerre csak egy szál legyen képes adatbázis-kapcsolat létrehozására. Hogyan tudom megvalósítani ezt a logikát?

Válasz: Ez a szinkronizálás fogalmával valósítható meg. Az adatbázissal kapcsolatos kód elhelyezhető egy olyan módszerben, amely szinkronizálja a kulcsszót, így egyszerre csak egy szál férhet hozzá.

Q83. Hogyan dobhat ki kivételeket egy programozó manuálisan?

Válasz: Annak érdekében, hogy a kivételt manuálisan dobja be a kódblokkba, a dob kulcsszót használják. Ezután ezt a kivételt elkapják és kezelik a fogási blokkban.

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

Q84. Szeretném, ha az osztályomat úgy fejlesztenék, hogy más osztály (még a származtatott osztály sem) hozza létre objektumait. Hogyan tehetném?

Ans: Ha egy osztály konstruktorát privátnak nyilvánítjuk, akkor más osztály számára nem lesz hozzáférhető, ezért egyetlen más osztály sem lesz képes példányosítani, és az objektum kialakítása csak önmagára korlátozódik.

Q85. Hogyan tárolják az objektumokat a Java-ban?

Ans: A java-ban minden objektum létrehozásakor memóriaterületet kap egy kupacból. Amikor egy objektumot egy szemétgyűjtő megsemmisít, a halomból kiosztott helyet újra elosztják a kupacban, és minden új objektum számára elérhetővé válik.

Q86. Hogyan találhatjuk meg az objektum tényleges méretét a kupacon?

Ans: A java-ban nincs mód megtudni a halomon lévő objektumok pontos méretét.

Q87. Az alábbi osztályok közül melyik kap több memóriát?

A osztály: Három módszer, négy változó, nincs objektum

B osztály: Öt módszer, három változó, nincs objektum

Válasz: A memória nem kerül kiosztásra objektumok létrehozása előtt. Mivel mindkét osztály esetében nincsenek objektumok létrehozva, így egyetlen osztályhoz sem tartozik memória a kupacban.

Q88. Mi történik, ha egy programban nem kezelnek kivételt?

Válasz: Ha egy programban nem kezelnek kivételt a try catch blokkok használatával, akkor a program megszakad, és egyetlen utasítás sem hajt végre olyan utasítás után, amely kivételt okozott.

Q89. Több konstruktorom van definiálva egy osztályban. Lehetséges-e hívni egy konstruktort egy másik konstruktor testéből?

Válasz: Ha egy osztálynak több konstruktora van, akkor ennek () használatával felhívhatunk egy konstruktort egy másik testéből .

Q90. Mit értünk névtelen osztály alatt?

Ans: Az anonim osztály olyan név, amelyet név nélkül határoztak meg egyetlen kódsorban új kulcsszóval.

Például az alábbi kódban egy névtelen osztályt definiáltunk egy kódsorban:

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. Van-e mód egy tömb méretének növelésére a deklarálása után?

Válasz: A tömbök statikusak, és ha megadtuk a méretét, nem tudjuk megváltoztatni. Ha olyan gyűjteményeket akarunk használni, ahol szükség lehet a méret (tételszám) megváltoztatására, akkor a vektort kell előnyben részesítenünk a tömb helyett.

Q92. Ha egy alkalmazásnak több osztálya van, akkor rendben van, ha egy fő módszer több osztályban van?

Válasz: Ha egy java alkalmazásban egynél több osztályban van fő módszer, az nem okoz problémát, mivel bármely alkalmazás belépési pontja egy adott osztály lesz, és a kód csak az adott osztály fő módszeréből indul ki.

Q93. Meg akarom őrizni az objektumok adatait későbbi felhasználás céljából. Mi a legjobb módszer erre?

Válasz: Az adatok későbbi felhasználás céljából történő megőrzésének legjobb módja a szerializáció fogalmának használata.

Q94. Mi a helyi osztály a Java-ban?

Válasz: Ha Java-ban definiálunk egy új osztályt egy adott blokkon belül, akkor helyi osztálynak hívjuk. Egy ilyen osztály helyi hatókörű, és nem használható azon a blokkon kívül, ahol definiálva van.

Q95. A String és a StringBuffer egyaránt String objektumokat képvisel. Összehasonlíthatjuk a Stringet és a StringBuffert Java-ban?

Ans: Bár a String és a StringBuffer egyaránt String objektumokat képvisel, nem tudjuk összehasonlítani őket egymással, és ha megpróbáljuk összehasonlítani őket, hibát kapunk.

Q96. Melyik API-t biztosítja a Java az objektumok halmazán végzett műveletekhez?

Válasz: A Java egy Collection API-t kínál, amely számos hasznos módszert kínál, amelyek objektumok halmazán alkalmazhatók. A Collection API néhány fontos osztálya az ArrayList, HashMap, TreeSet és TreeMap.

Q97. Átvihetünk bármilyen más típust logikai típusba típusú öntéssel?

Válasz: Nem, nem tudunk más primitív típust átadni logikai adattípusra, és nem vethetünk logikai adattípust sem más primitív adattípusra.

Q98. Használhatunk-e különféle visszatérési típusokat a felülbíráláshoz?

Válasz: A módszer felülírásának alapvető követelménye a Java-ban az, hogy az felülbírált metódusnak azonos névvel és paraméterekkel kell rendelkeznie. De egy metódus felülírható egy másik visszatérési típussal mindaddig, amíg az új visszatérési típus kiterjeszti az eredetit.

Például a method egy referencia típust ad vissza.

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

Q99. Mi az összes kivételosztály alaposztálya?

Válasz: Java-ban a Java.lang.Throwable az összes kivételosztály szuperosztálya, és minden kivételosztály ebből az alaposztályból származik.

Q100. Mi a kivitelezők hívási sorrendje az öröklésben?

Ans: Öröklés esetén, amikor egy származtatott osztály új objektuma jön létre, először a szuper osztály konstruktorát, majd a származtatott osztály konstruktorát hívják meg.

Készülj fel az állásinterjúra !!! Keresse fel a Java oktatóanyagot, hogy jobban felkészülhessen.

Ez a részletes Java interjúkérdések pdf segít tisztázni a Java interjúval kapcsolatos kétségeket, és segít az interjú feltörésében is.

érdekes cikkek...