Atsisiųsti PDF
Mes surinkome dažniausiai užduodamus „Java“ interviu klausimus ir atsakymus, kurie padės pasirengti pagrindiniams „Java“ interviu klausimams, kuriuos interviu gali užduoti jūsų interviu metu. Šiame pagrindinių „Java“ interviu klausimų sąraše mes apėmėme visus dažniausiai užduodamus pagrindinius ir išplėstinius „Core Java“ interviu klausimus su išsamiais atsakymais, kurie padės išsiaiškinti darbo pokalbį.
Šiame sąraše yra 100 svarbių pagrindinių „Java“ interviu klausimų naujokams, taip pat „Java“ interviu klausimai ir atsakymai patyrusiems programuotojams, kurie padės jiems pasirengti pokalbiui. Šis išsamus „Java“ programavimo interviu klausimų vadovas padės lengvai išspręsti darbo pokalbį.
Pagrindiniai „Java“ interviu klausimai ir atsakymai naujiems ir patyrusiems
Q1. Kuo skiriasi vidinė klasė ir subklasė?
Ans: Vidinė klasė yra klasė, kuri yra įdėta į kitą klasę. Vidinė klasė turi prieigos teises klasei, kuri ją lizdo, ir ji gali pasiekti visus kintamuosius ir metodus, apibrėžtus išorinėje klasėje.
Pogrupis yra klasė, kuri paveldima iš kitos klasės, vadinamos super klase. Pogrupis gali naudotis visais viešaisiais ir saugomais superklasės metodais bei laukais.
Q2. Kokie yra įvairūs „Java“ klasių prieigos specifikatoriai?
Ans: „Java“ prieigos specifikatoriai yra raktiniai žodžiai, naudojami prieš klasės pavadinimą, apibrėžiantį prieigos sritį. Klasių prieigos specifikatorių tipai yra šie:
1. Vieša: klasė, metodas, laukas yra prieinami bet kur.
2. Apsaugota: metodą, lauką galima pasiekti iš tos pačios klasės, kuriai jie priklauso, arba iš subklasių, ir iš to paties paketo klasės, bet ne iš išorės.
3. Numatytasis: metodą, lauką, klasę galima pasiekti tik iš to paties paketo, o ne iš jo pirminio paketo ribų.
4. Privatus: metodas, laukas gali būti pasiekiami iš tos pačios klasės, kuriai jie priklauso.
Q3. Koks yra statinių metodų ir statinių kintamųjų tikslas?
Ans: kai reikalavimas dalytis metodu ar kintamuoju tarp kelių klasės objektų, užuot kūrę atskiras kiekvieno objekto kopijas, mes naudojame statinį raktinį žodį, kad metodas ar kintamasis būtų bendrinamas visiems objektams.
Q4. Kas yra duomenų kaupimas ir kokia jo reikšmė?
Ans: „Encapsulation“ yra į objektą orientuoto programavimo koncepcija, skirta savybėms ir metodams sujungti į vieną vienetą.
Kapsuliavimas padeda programuotojams laikytis modulinio požiūrio į programinės įrangos kūrimą, nes kiekvienas objektas turi savo metodų ir kintamųjų rinkinį ir atlieka savo funkcijas nepriklausomai nuo kitų objektų. Kapsuliavimas taip pat yra duomenų slėpimo tikslas.
Q5. Kas yra pavienė klasė? Pateikite praktinį jo naudojimo pavyzdį.
„Java“ pavienė klasė gali turėti tik vieną egzempliorių, taigi visi jos metodai ir kintamieji priklauso tik vienam egzemplioriui. „Singleton“ klasės koncepcija yra naudinga situacijoms, kai reikia apriboti klasės objektų skaičių.
Geriausias pavienio naudojimo scenarijaus pavyzdys yra tas, kai dėl tam tikrų tvarkyklių apribojimų arba dėl bet kokių licencijavimo problemų yra apribojimas turėti tik vieną ryšį su duomenų baze.
Q6. Kas yra „Java“ kilpos? Kas yra trijų tipų kilpos?
Ans: ciklas naudojamas programuojant, norint pakartotinai vykdyti teiginį ar sakinio bloką. „Java“ yra trijų tipų kilpos:
1) kilpoms
Nes kilpos yra naudojamos java norint pakartotinai vykdyti sakinius tam tikrą skaičių kartų. Kilpos yra naudojamos, kai programuotojas žino, kiek kartų teiginiams vykdyti reikia.
2) Nors kilpos
Nors ciklas naudojamas, kai tam tikrus sakinius reikia vykdyti pakartotinai, kol įvykdoma sąlyga. Esant ciklams, prieš vykdant sakinius, pirmiausia patikrinama sąlyga.
3) Darykite, kol kilpos
„Do while Loop“ yra tas pats, kas „While“ ciklas, turint tik skirtumą, ši sąlyga tikrinama atlikus sakinių bloką. Taigi „do while loop“ atveju sakiniai vykdomi bent kartą.
7 klausimas: kas yra begalinė kilpa? Kaip deklaruojama begalinė kilpa?
Ans: begalinė kilpa eina be jokių sąlygų ir eina be galo. Begalinę kilpą galima nutraukti apibrėžiant bet kokią laužymo logiką teiginių blokų tekste.
Begalinė kilpa deklaruojama taip:
for (;;){// Statements to execute// Add any loop breaking logic}
Q8. Kuo skiriasi „Continue“ ir „break“ pareiškimai?
Ans: pertrauka ir tęskite yra du svarbūs raktiniai žodžiai, naudojami „Loops“. Kai pertraukos raktinis žodis naudojamas cikle, ciklas nutrūksta iškart, kai naudojamas raktinis žodis „tęsti“, dabartinė iteracija nutrūksta ir ciklas tęsiasi kitą kartojimą.
Žemiau pateiktame pavyzdyje kilpa nutrūksta, kai skaitiklis pasiekia 4.
for (counter = 0; counter & lt; 10; counter++)system.out.println(counter);if (counter == 4) {break;}}
Žemiau pateiktame pavyzdyje, kai skaitiklis pasiekia 4, ciklas pereina į kitą kartojimą ir visi teiginiai po raktinio žodžio tęsti praleidžiami pagal dabartinę iteraciją.
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. Kuo skiriasi „Java“ dvigubi ir kintamieji kintamieji?
Ans: „Java“ sistemoje „float“ atima 4 baitus, o „Double“ - 8 baitus. „Float“ yra vieno tikslumo slankiojo kablelio dešimtainis skaičius, o „Double“ - dvigubo tikslumo dešimtainis skaičius.
Q10. Kas yra „Java“ galutinis raktinis žodis? Pateikite pavyzdį.
Ans: java, konstanta deklaruojama naudojant raktinį žodį Galutinė. Vertę galima priskirti tik vieną kartą, o po priskyrimo konstantos vertės pakeisti negalima.
Toliau pateiktame pavyzdyje konstatuojama su pavadinimu const_val ir priskiriama eilutė:
Privatus galutinis int const_val = 100
Kai metodas paskelbiamas galutiniu, poklasiai Negalima jo pakeisti. Šis metodas yra greitesnis nei bet kuris kitas metodas, nes jie išsprendžiami laikantis nustatyto laiko.
Kai klasė paskelbiama galutine, jos negalima skirstyti. Styginių, sveikųjų skaičių ir kitų vyniojimo klasių pavyzdžiai.
Q11. Kas yra trinaris operatorius? Pateikite pavyzdį.
Ans: Ternarinis operatorius, dar vadinamas sąlyginiu operatoriumi, naudojamas nuspręsti, kurią vertę priskirti kintamajam, remiantis Būlo vertės įvertinimu. Tai žymima kaip?
Toliau pateiktame pavyzdyje, jei reitingas yra 1, būsenai priskiriama reikšmė „Atlikta“, kita - „Laukiama“.
public class conditionTest {public static void main(String args[]) {String status;int rank = 3;status = (rank == 1) ? "Done" : "Pending";System.out.println(status);}}
12 klausimas. Kaip galite generuoti atsitiktinius skaičius „Java“?
Ans:
- Naudodami Math.random () galite generuoti atsitiktinius skaičius diapazone, kuris yra didesnis arba lygus 0,1 ir mažesnis nei 1,0
- „Random“ klasės naudojimas pakete java.util
Q13. Kas yra numatytasis jungiklio atvejis? Pateikite pavyzdį.
Ans: jungiklio sakinyje numatytasis atvejis vykdomas, kai neatitinka jokios kitos jungiklio sąlygos. Numatytasis atvejis yra neprivalomas atvejis. Jį galima paskelbti tik užkodavus visus kitus jungiklių atvejus.
Žemiau pateiktame pavyzdyje, kai balas nėra 1 ar 2, naudojamas numatytasis dydis.
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. Kokia yra pagrindinė „Java“ klasė, iš kurios gaunamos visos klasės?
Ans: java.lang.object
Q15. Ar „Java“ metodas gali grąžinti bet kokius duomenis?
Ans: „Java“, pagrindinis () metodas negali grąžinti jokių duomenų, todėl jis visada deklaruojamas negaliojančiu grąžinimo tipu.
Q16. Kas yra „Java“ paketai? Kuo svarbūs paketai?
Ans: „Java“ paketas yra klasių ir sąsajų rinkinys, sujungtas, nes jie yra susiję vienas su kitu. Paketų naudojimas padeda kūrėjams moduliuoti kodą ir grupuoti kodą tinkamam pakartotiniam naudojimui. Kai kodas bus supakuotas į pakuotes, jį bus galima importuoti į kitas klases ir naudoti.
Q17. Ar galime klasę paskelbti abstrakčia neturėdami jokio abstraktaus metodo?
Ans: Taip, mes galime sukurti abstrakčią klasę, prieš klasės pavadinimą naudodami abstraktų raktinį žodį, net jei jame nėra jokio abstraktaus metodo. Tačiau, jei klasėje yra net vienas abstraktus metodas, jis turi būti paskelbtas abstrakčiu, kitaip jis suteiks klaidą.
Q18. Koks skirtumas tarp abstrakčios klasės ir „Java“ sąsajos?
Ans: Pagrindinis skirtumas tarp abstrakčios klasės ir sąsajos yra tas, kad sąsajoje gali būti deklaruojami tik viešieji statiniai metodai be konkretaus įgyvendinimo, o abstrakčioje klasėje gali būti nariai, turintys bet kokius prieigos specifikatorius (viešuosius, privačius ir tt) su konkrečiu įgyvendinimu arba be jo.
Kitas svarbus abstrakčių klasių ir sąsajų naudojimo skirtumas yra tas, kad klasė, diegianti sąsają, turi įgyvendinti visus sąsajos metodus, o iš abstrakčios klasės paveldėjusiai klasei nereikia įgyvendinti visų savo super klasės metodų.
Klasė gali įdiegti kelias sąsajas, tačiau ji gali išplėsti tik vieną abstrakčią klasę.
Q19. Kokia yra sąsajų našumo įtaka abstrakčioms klasėms?
Ans: sąsajos veikia lėčiau, palyginti su abstrakčiomis klasėmis, nes sąsajoms reikalingi papildomi nurodymai. Kitas svarbus veiksnys, į kurį turi atsižvelgti kūrėjai, yra tai, kad bet kuri klasė gali išplėsti tik vieną abstrakčią klasę, o klasė gali įdiegti daug sąsajų.
Sąsajų naudojimas taip pat yra papildoma našta kūrėjams, nes bet kuriuo metu sąsaja yra įdiegta klasėje; kūrėjas yra priverstas įgyvendinti kiekvieną sąsajos metodą.
Q20. Ar importuojant paketą importuojami paketai ir „Java“?
Ans: „Java“ sistemoje, kai paketas yra importuojamas, jo paketai nėra importuojami ir, jei reikia, kūrėjas turi juos importuoti atskirai.
Pvz., Jei kūrėjas importuoja paketinį universitetą. *, Visos paketo, pavadinto universitetas, klasės yra įkeliamos, tačiau jokios klasės iš paketo neįkeliamos. Norėdami įkelti klases iš savo paketo (tarkim, skyriaus), kūrėjas turi jį aiškiai importuoti taip:
Importuoti universitetą. Skyrius. *
Q21. Ar galime pagrindinį savo klasės metodą paskelbti privačiu?
Ans: „Java“, norint tinkamai paleisti bet kurią programą, pagrindinis metodas turi būti viešas. Jei pagrindinis metodas bus paskelbtas privačiu, kūrėjas negaus jokių kompiliavimo klaidų, tačiau jis nebus vykdomas ir pateiks vykdymo laiko klaidą.
Q22. Kaip mes galime perduoti argumentą funkcijai nuoroda, o ne perduoti pagal vertę?
Ans: „Java“ sistemoje argumentą funkcijai galime perduoti tik pagal vertę, o ne pagal nuorodą.
Q23. Kaip objektas serijuojamas „Java“?
Ans: „Java“ sistemoje, norint konvertuoti objektą į baitų srautą serijiniu būdu, klasė įgyvendina sąsają su pavadinimu „Serializable“. Visi serializuojamą sąsają diegiantys klasės objektai serizuojami ir jų būsena išsaugoma baitų sraute.
Q24. Kada turėtume naudoti serializavimą?
An: Serializacija naudojama, kai duomenis reikia perduoti tinklu. Naudojant serializavimą, objekto būsena išsaugoma ir paverčiama baitų srautu. Baitų srautas perduodamas per tinklą ir objektas iš naujo sukuriamas paskirties vietoje.
Q25. Ar privaloma, kad „Try Block“ ir „Java“ blokavimo blokas būtų naudojamas tvarkant išimtis?
Ans: po bandymo bloko turi būti užfiksuotas blokavimas arba pagaliau blokavimas arba abu. Bet kokią išimtį, išmestą iš bandymo bloko, reikia įtraukti arba į sugavimo bloką, arba kitas specifines užduotis, kurias reikia atlikti prieš kodo nutraukimą įtraukiant į bloką „Galiausiai“.
Q26. Ar yra kokiu nors būdu praleisti Galiausiai išimties bloką, net jei išimčių bloke įvyksta kokia nors išimtis?
Ans: Jei bandymo bloke iškeliama išimtis, valdiklis pereina blokuoti bloką, jei yra kitaip, kad galiausiai blokuotų. Pagaliau blokas visada vykdomas, kai įvyksta išimtis, ir vienintelis būdas išvengti bet kokių sakinių vykdymo bloke „Galiausiai“ yra priverstinai nutraukti kodą, bandymo bloko pabaigoje parašant šią kodo eilutę:
System.exit(0);
Q27. Kai pasitelkiamas klasės konstruktorius?
Ans: Klasės konstruktorius iškviečiamas kiekvieną kartą, kai objektas sukuriamas naudojant naują raktinį žodį.
Pavyzdžiui, šioje klasėje du objektai yra sukurti naudojant naują raktinį žodį, taigi konstruktorius iškviečiamas du kartus.
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. Ar klasėje gali būti keli konstruktoriai?
Ans: Taip, klasėje gali būti keli konstruktoriai su skirtingais parametrais. Kuris konstruktorius naudojamas objektų kūrimui, priklauso nuo argumentų, perduotų kuriant objektus.
Q29. Ar galime nepaisyti statinių klasės metodų?
Ans: Mes negalime nepaisyti statinių metodų. Statiniai metodai priklauso klasei, o ne atskiriems objektams ir yra išsprendžiami kompiliavimo metu (ne vykdymo metu). Net jei bandysime nepaisyti statinio metodo, negausime nei komplimentų klaidos, nei nepaisymo įtakos vykdant kodas.
Q30. Žemiau pateiktame pavyzdyje bus išvestis?
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();}}
Ans : Išvestis bus:
Rodoma iš poklasio
Rodoma iš superklasės
Q31. Ar eilutė yra „Java“ duomenų tipas?
Ans: „Java“ eilutė nėra primityvus duomenų tipas. Kai eilutė sukurta „Java“, tai iš tikrųjų sukuriamas „Java.Lang.String“ klasės objektas. Sukūrus šį eilutės objektą, eilutės objekte gali būti naudojami visi integruoti „String“ klasės metodai.
Q32. Žemiau pateiktame pavyzdyje, kiek sukurta styginių objektų?
String s1="I am Java Expert";String s2="I am C Expert";String s3="I am Java Expert";
Ans. Ankstesniame pavyzdyje yra sukurti du „Java.Lang.String“ klasės objektai. s1 ir s3 yra nuorodos į tą patį objektą.
Q33. Kodėl „Java“ eilutės vadinamos nekintamomis?
Ans: „Java“ eilutės objektai vadinami nekintamais, nes kai tik eilutei priskiriama reikšmė, jos pakeisti negalima, o pakeitus sukuriamas naujas objektas.
Žemiau pateiktame pavyzdyje nuoroda str nurodo eilutės objektą, kurio vertė yra „Pirmoji vertė“.
String str="Value One";
Kai jai priskiriama nauja reikšmė, sukuriamas naujas String objektas ir nuoroda perkeliama į naują objektą.
str="New Value";
Q34. Koks skirtumas tarp masyvo ir „Vector“?
An: masyvas grupuoja to paties primityvaus tipo duomenis ir yra statinio pobūdžio, o vektoriai yra dinamiško pobūdžio ir gali laikyti skirtingų tipų duomenis.
Q35. Kas yra daugialypis sriegimas?
Ans: „Multi threading“ yra programavimo koncepcija, leidžianti vienu metu vykdyti kelias užduotis vienoje programoje. Siūlai turi tą patį procesą ir veikia lygiagrečiai. Tai padeda pagerinti bet kurios programos našumą.
Q36. Kodėl „Java“ naudojama „Runnable Interface“?
Ans: „Java“ paleidžiama sąsaja naudojama įgyvendinant daugialypes programas. „Java.Lang.Runnable“ sąsaja yra įdiegta klasėje, kad būtų palaikomas kelių siūlų diegimas.
Q37. Kokie yra du kelių gijų diegimo „Java“ būdai?
Ans: „Java“ gali būti sukurtos daugialypės programos, naudojant bet kurią iš šių dviejų metodikų:
1. Naudodamas „Java.Lang.Runnable Interface“. Klasės įdiegia šią sąsają, kad būtų galima įjungti daugialypį ryšį. Šioje sąsajoje yra metodas Run (), kuris yra įgyvendintas.
2. Rašydami klasę, pratęsiančią „Java.Lang.Thread“ klasę.
Q38. Kuriuos iš jų reikėtų naudoti, kai reikia atlikti daug duomenų pakeitimų? Styginiai ar „StringBuffer“?
Ans: Kadangi „StringBuffers“ yra dinamiško pobūdžio ir mes galime pakeisti „StringBuffer“ objektų vertes, skirtingai nei „String“, kuri yra nekintama, visada yra geras pasirinkimas naudoti „StringBuffer“, kai duomenys per daug keičiami. Jei tokiu atveju naudosime „String“, kiekvienam duomenų pakeitimui bus sukurtas naujas „String“ objektas, kuris bus papildoma pridėtinė suma.
Q39. Koks yra „Break“ naudojimo tikslas kiekvienu „Switch Statement“ atveju?
Ans: pertrauka naudojama po kiekvieno atvejo (išskyrus paskutinį) jungiklyje, kad kodas nutrūktų po galiojančio atvejo ir netekėtų nagrinėjamose bylose.
Jei pertrauka po kiekvieno atvejo nenaudojama, visi įvykiai po galiojančio atvejo taip pat bus įvykdyti, o rezultatai bus neteisingi.
Q40. Kaip atliekos renkamos „Java“?
Ans: „Java“ sistemoje, kai objektui nebebūna nurodoma, atliekos surenkamos ir objektas sunaikinamas automatiškai. Automatiniam šiukšlių surinkimui „Java“ iškviečia metodą „System.gc ()“ arba „Runtime.gc ()“.
Q41. Kaip mes galime vykdyti bet kurį kodą dar prieš pagrindinį metodą?
Ans: Jei mes norime įvykdyti bet kokius teiginius net nesukūrę objektų klasės įkėlimo metu, galime naudoti statinį kodo bloką klasėje. Bet kokie šio statinio kodo bloko teiginiai bus vykdomi vieną kartą klasės įkėlimo metu, net prieš sukuriant objektus pagrindiniame metode.
Q42. Ar klasė gali būti super klasė ir pogrupis tuo pačiu metu? Pateikite pavyzdį.
Ans: Jei naudojama paveldėjimo hierarchija, klasė gali būti super klasė kitai klasei ir pogrupis kitai tuo pačiu metu.
Žemiau pateiktame pavyzdyje žemyno klasė yra pasaulinės klasės subklasė, o šalies klasė - super klasė.
public class world {… .}public class continenet extends world {… }public class country extends continent {… .}
Q43. Kaip kuriami klasės objektai, jei klasėje nėra apibrėžtas konstruktorius?
Ans: Net jei „Java“ klasėje nėra apibrėžtas aiškus konstruktorius, objektai sėkmingai sukuriami, nes numatytasis konstruktorius yra netiesiogiai naudojamas objektų kūrimui. Šis konstruktorius neturi jokių parametrų.
Q44. Vykdydami kelių gijų diegimą, kaip užtikrinti, kad ištekliai nebūtų naudojami keliose gijose vienu metu?
Ans: taikant kelių gijų prieigą prie išteklių, kurie yra bendrai naudojami kelioms gijoms, galima valdyti naudojant sinchronizavimo koncepciją. Naudodami sinchronizuotą raktinį žodį, galime užtikrinti, kad tik viena gija vienu metu gali naudoti bendrinamą šaltinį, o kiti gali valdyti išteklių tik tada, kai jis tampa laisvas nuo kito, kuris jį naudoja.
Q45. Ar galime kelis kartus paskambinti klasės konstruktoriui dėl objekto?
Ans: konstruktorius iškviečiamas automatiškai, kai mes sukuriame objektą naudodami naują raktinį žodį. Objekto sukūrimo metu jis vadinamas tik vieną kartą, taigi, sukūrę objektą, dar kartą negalime jo pakviesti.
Q46. Yra dvi klasės, pavadintos A ir B klase. Abi klasės yra vienoje pakuotėje. Ar privatų A klasės narį gali pasiekti B klasės objektas?
Ans: Privačių klasės narių negalima pasiekti už tos klasės ribų, o bet kuri kita klasė, net tame pačiame pakete, negali jų pasiekti.
Q47. Ar galime turėti du metodus klasėje tuo pačiu pavadinimu?
Ans: Mes galime apibrėžti du metodus klasėje su tuo pačiu pavadinimu, bet su skirtingu parametrų skaičiumi / tipu. Kuris metodas bus naudojamas, priklausys nuo perduotų parametrų.
Pavyzdžiui, žemiau esančioje klasėje mes turime du spausdinimo metodus su tuo pačiu pavadinimu, bet skirtingais parametrais. Atsižvelgiant į parametrus, bus vadinamas tinkamas:
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. Kaip mes galime padaryti Java objekto kopiją?
Ans: Mes galime naudoti klonavimo sąvoką kurdami objekto kopiją. Naudodami kloną, mes sukuriame kopijas su faktine objekto būsena.
„Clone“ () yra „Cloneable“ sąsajos metodas, taigi, norint sukurti objektų kopijas, reikia įdiegti „Cloneable“ sąsają.
Q49. Kokia paveldėjimo nauda?
Ans. Pagrindinė paveldėjimo naudojimo nauda yra pakartotinis kodo naudojimas, nes paveldėjimas leidžia subklasėms pakartotinai naudoti savo super klasės kodą. Polimorfizmas (pratęsiamumas) yra dar vienas didelis pranašumas, leidžiantis įdiegti naują funkcionalumą nedarant poveikio esamoms išvestinėms klasėms.
Q50. Koks yra numatytasis klasės kintamųjų ir metodų prieigos specifikatorius?
Ans: numatytasis kintamųjų ir metodo prieigos specifikatorius yra apsaugotas paketu, ty kintamieji ir klasė yra prieinami bet kuriai kitai klasei, bet tame pačiame pakete, o ne paketo išorėje.
Q51. Pateikite „Pointers“ naudojimo „Java“ klasėje pavyzdį.
Ans: „Java“ nėra rodyklių. Taigi „Java“ negalime naudoti rodyklių sąvokos.
Q52. Kaip mes galime apriboti klasės paveldėjimą, kad nebūtų galima paveldėti jokios klasės?
Ans: Jei norime, kad klasė nebūtų pratęsta jokia klase, mes galime naudoti raktinį žodį Finalas su klasės pavadinimu.
Šiame pavyzdyje akmens klasė yra galutinė ir jos negalima pratęsti
public Final Class Stone {// Class methods and Variables}
Q53. Kokia saugomos prieigos specifikatoriaus prieigos sritis?
Ans: Kai metodas ar kintamasis yra deklaruojamas naudojant saugomos prieigos specifikatorių, jis tampa prieinamas toje pačioje klasėje, bet kurioje kitoje to paties paketo klasėje, taip pat pogrupyje.
Modifikatorius |
Klasė |
Pakuotė |
Poklasis |
Pasaulis |
visuomenės |
Y |
Y |
Y |
Y |
saugomi |
Y |
Y |
Y |
N |
jokio modifikatoriaus |
Y |
Y |
N |
N |
privatus |
Y |
N |
N |
N |
Q54. Koks skirtumas tarp kamino ir eilės?
Ans: „Stack“ ir „Queue“ yra naudojami kaip vietos rezervavimo priemonė duomenims rinkti. Pagrindinis kamino ir eilės skirtumas yra tas, kad kamino pagrindas yra „Last in First out“ (LIFO) principas, o eilė - pagal FIFO („First In First Out“) principą.
Q55. Kaip „Java“ sistemoje galime neleisti kintamųjų serizavimo?
Ans: Jei norime, kad tam tikri klasės kintamieji nebūtų nuoseklūs, juos deklaruodami galime naudoti raktinį žodį trumpalaikis . Pvz., Žemiau pateiktas kintamasis trans_var yra trumpalaikis kintamasis ir jo negalima nuosekliai nustatyti:
public class transientExample {private transient trans_var;// rest of the code}
Q56. Kaip primityvius duomenų tipus galime naudoti kaip objektus?
Ansas: Primityvūs duomenų tipai, pvz., Int, gali būti tvarkomi kaip objektai, naudojant atitinkamas jų paketo klases. Pavyzdžiui, sveikasis skaičius yra pirminio duomenų tipo int apvyniojimo klasė. Mes galime taikyti skirtingus metodus įvyniojimo klasei, kaip ir bet kurį kitą objektą.
Q57. Kurių tipų išimtys užfiksuojamos kompiliavimo metu?
Ans: Pažymėtos išimtys gali būti užfiksuotos programos sudarymo metu. Pažymėtos išimtys turi būti tvarkomos naudojant kodą „try catch“, kad sėkmingai sukompiluotumėte kodą.
Q58. Apibūdinkite skirtingas gijos būsenas.
Ans: „Java“ gija gali būti bet kurioje iš šių būsenų:
- Parengta: kai sukuriama gija, ji yra parengta.
- Vykdoma: šiuo metu vykdoma gija veikia.
- Laukimas: gija, laukianti, kol kita gija atlaisvins tam tikrus išteklius, laukimo būsenoje.
- Dead: gija, kuri mirė po įvykdymo, yra negyva.
Q59. Ar galime naudoti numatytąjį klasės konstruktorių, net jei apibrėžtas aiškus konstruktorius?
Ans: „Java“ pateikia numatytąjį be argumentų konstruktorių, jei „Java“ klasėje nėra apibrėžtas aiškus konstruktorius. Bet jei buvo apibrėžtas aiškus konstruktorius, numatytojo konstruktoriaus negalima iškviesti ir kūrėjas gali naudoti tik tuos konstruktorius, kurie yra apibrėžti klasėje.
Q60. Ar galime nepaisyti metodo naudodami tą patį metodo pavadinimą ir argumentus, bet skirtingus grąžinimo tipus?
Ans: Pagrindinė metodo nepaisymo sąlyga yra ta, kad metodo pavadinimas, argumentai ir grąžinimo tipas turi būti visiškai tokie patys, kaip ir metodo, kuris yra nepaisomas. Taigi naudojant kitą grąžinimo tipą metodas nepaisomas.
Q61. Kokia bus šio kodo dalis?
public class operatorExample {public static void main(String args[]) {int x = 4;system.out.println(x++);}}
Ans: Šiuo atveju naudojamas postfix ++ operatorius, kuris pirmiausia grąžina vertę, o po to didina. Taigi jo išvestis bus 4.
Q61. Asmuo sako, kad jis sėkmingai sudarė java klasę net neturėdamas joje pagrindinio metodo? Ar tai įmanoma?
Ans: pagrindinis metodas yra „Java“ klasės įvesties taškas ir vis dėlto reikalingas programai vykdyti; klasė sėkmingai sukompiliuojama, net jei ji neturi pagrindinio metodo. Vis dėlto jo negalima paleisti.
Q62. Ar galime vadinti nestatinį metodą iš statinio metodo?
Ans: Nestatiniai metodai priklauso klasės objektams ir turi objekto lygio taikymo sritį. Norint iškviesti ne statinius metodus iš statinio bloko (kaip iš pagrindinio statinio metodo), reikia sukurti klasės objektą Pirmas. Tada, naudojant objekto nuorodą, galima pasinaudoti šiais metodais.
Q63. Kokie du aplinkos kintamieji turi būti nustatyti norint paleisti bet kurias „Java“ programas?
Ans: „Java“ programas mašinoje galima vykdyti tik tinkamai nustatius šiuos du aplinkos kintamuosius:
- PATH kintamasis
- CLASSPATH kintamasis
Q64. Ar galima „Java“ kintamuosius naudoti neinicijuojant?
Ans: Jei „Java“ kintamasis naudojamas kode be išankstinio inicializavimo pagal galiojančią reikšmę, programa nekompiliuoja ir pateikia klaidą, nes „Java“ kintamiesiems nėra priskirta numatytoji reikšmė.
Q65. Ar „Java“ klasę galima paveldėti iš daugiau nei vienos klasės?
Ans: „Java“ klasę galima gauti tik iš vienos klasės, o ne iš kelių klasių. „Java“ nepalaiko kelių paveldėjimų.
Q66. Ar konstruktorius gali turėti kitą pavadinimą nei „Java“ klasės pavadinimas?
Ans: „Java“ konstruktorius turi turėti tą patį pavadinimą, kaip ir klasės pavadinimas, o jei pavadinimas skiriasi, jis neveikia kaip konstruktorius, o kompiliatorius mano, kad tai yra įprastas metodas.
Q67. Kokia bus „Round“ (3.7) ir „Ceil“ (3.7) išvestis?
Ans: raundas (3.7) grąžina 4, o Ceil (3.7) - 4.
68 klausimas: ar galime naudoti „Java“ „goto“, norėdami pereiti prie tam tikros eilutės?
Ans: „Java“ nėra „goto“ raktinio žodžio, o „Java“ nepalaiko šios funkcijos pereiti prie tam tikros pažymėtos eilutės.
Q69. Ar galima vėl pradėti negyvą siūlą?
Ans: „Java“ kalboje negyvos gijos negalima pradėti iš naujo. Jokiu būdu negalima paleisti negyvos gijos.
Q70. Ar ši klasės deklaracija yra teisinga?
Ans:
public abstract final class testClass {// Class methods and variables}
Ans: aukščiau pateikta klasės deklaracija yra neteisinga, nes abstrakti klasė negali būti paskelbta galutine.
Q71. Ar reikia JDK kiekvienoje mašinoje paleisti „Java“ programą?
An: JDK yra „Java“ kūrimo rinkinys, reikalingas tik kūrimui ir norint paleisti „Java“ programą mašinoje, JDK nereikia. Reikalingas tik JRE.
Q72. Kuo skiriasi lyginimas, atliktas lygiu metodu, ir == operatorius?
Ans: „Java“ lygus () metodas naudojamas lyginant dviejų eilutės objektų turinį ir grąžina reikšmę „true“, jei abu turi tą pačią reikšmę, o operatorius == lygina dviejų eilutės objektų nuorodas.
Šiame pavyzdyje equals () grąžina true, nes dviejų eilutės objektų reikšmės yra vienodos. Tačiau == operatorius pateikia klaidingą reikšmę, nes abu eilutės objektai nurodo skirtingus objektus:
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. Ar įmanoma apibrėžti metodą „Java“ klasėje, bet pateikti jį kitos kalbos, pvz., C, kodu?
Ans: Taip, mes galime tai padaryti naudodami vietinius metodus. Kuriant vietinį metodu pagrįstą metodą, mes apibrėžiame viešus statinius metodus savo „Java“ klasėje be jo diegimo, o tada diegimas atliekamas kita kalba, pvz., C atskirai.
Q74. Kaip destruktoriai apibrėžiami „Java“?
Ans: „Java“ klasėje nėra apibrėžtų destruktorių, nes to daryti nereikia. „Java“ turi savo šiukšlių surinkimo mechanizmą, kuris darbą atlieka automatiškai, sunaikindamas objektus, kai nebėra nurodymų.
Q75. Ar kintamasis gali būti vietinis ir statinis tuo pačiu metu?
Ans: joks kintamasis negali būti statinis ir lokalus tuo pačiu metu. Apibrėžus vietinį kintamąjį kaip statinį, gaunama kompiliavimo klaida.
Q76. Ar galime sąsajoje turėti statinius metodus?
Ans: Statinių metodų negalima nepaisyti nė vienoje klasėje, o bet kokie sąsajos metodai pagal nutylėjimą yra abstraktūs ir turėtų būti įgyvendinami sąsają diegiančiose klasėse. Taigi nėra prasmės turėti statinius metodus „Java“ sąsajoje.
Q77. Ar klasėje, įgyvendinančioje sąsają, galime pakeisti bet kurio kintamojo, apibrėžto sąsajoje, vertę?
An: Ne, mes negalime pakeisti bet kurio sąsajos kintamojo vertės įgyvendinančioje klasėje, nes visi sąsajoje apibrėžti kintamieji pagal numatytuosius nustatymus yra vieši, statiniai, galutiniai ir galutiniai kintamieji yra tarsi konstantos, kurių vėliau pakeisti negalima.
Q78. Ar teisinga sakyti, kad dėl „Java“ šiukšlių surinkimo funkcijos „Java“ programa niekada neišeikvoja atminties?
Ans: Nors automatinį šiukšlių surinkimą teikia „Java“, tai neužtikrina, kad „Java“ programa neišeikvos atminties, nes yra galimybė, kad „Java“ objektai kuriami sparčiau, palyginti su šiukšlių surinkimu, todėl užpildyti visus turimus atminties išteklius.
Taigi šiukšlių surinkimas padeda sumažinti programos atminties išeikvojimo tikimybę, tačiau to neužtikrina.
Q79. Ar galime turėti kitokį grąžinimo tipą, išskyrus negaliojančius pagrindiniam metodui?
Ans: Ne, „Java“ klasės pagrindinis metodas gali būti tik tuščias grąžinimo tipas, kad programa būtų sėkmingai vykdoma.
Nepaisant to, jei baigdami pagrindinį metodą būtinai turite grąžinti vertę, galite naudoti „System.exit“ (int būsena)
Q80. Noriu vėl pasiekti objektą ir jį naudoti, kai jis jau bus surinktas. Kaip tai įmanoma?
Ans: Kai objektas buvo sunaikintas šiukšlių surinkėjo, jo nebeliko ant krūvos ir jo negalima pasiekti dar kartą. Jokiu būdu negalima į jį dar kartą kreiptis.
Q81. Kuris metodas yra būtinas diegiant „Java“ gijų gijas visoms gijoms?
Ans: Run () yra paleidžiamos sąsajos metodas, kurį turi įgyvendinti visos gijos.
Q82. Noriu valdyti duomenų bazių ryšius savo programoje ir noriu, kad tik viena gija galėtų užmegzti ryšį su duomenų baze vienu metu. Kaip aš galiu įgyvendinti šią logiką?
Ans: Tai galima įgyvendinti naudojant sinchronizavimo koncepciją. Su duomenų baze susijusį kodą galima įdėti į metodą, kuris sinchronizuoja raktinį žodį, kad vienu metu prie jo galėtų prisijungti tik viena gija.
Q83. Kaip programuotojas gali rankiniu būdu išmesti išimtį?
Ans: norint išimtis į kodo bloką rankiniu būdu, naudojamas metimo raktinis žodis. Tada ši išimtis sugaunama ir tvarkoma sugavimo bloke.
public void topMethod() {try {excMethod();} catch (ManualException e) {}}public void excMethod {String name = null;if (name == null) {throw (new ManualException("Exception thrown manually ");}}
Q84. Noriu, kad mano klasė būtų plėtojama taip, kad jokia kita klasė (net išvestinė klasė) negalėtų sukurti savo objektų. Kaip aš galiu tai padaryti?
Ans: Jei paskelbsime, kad klasės konstruktorius yra privatus, prie jo negalės prisijungti jokia kita klasė, taigi jokia kita klasė negalės jo užfiksuoti, o jo objekto formavimas apsiribos tik savimi.
Q85. Kaip objektai saugomi „Java“?
Ans: „Java“ sistemoje kiekvienas sukurtas objektas gauna atminties vietą iš krūvos. Kai daiktą sunaikina šiukšlių surinkėjas, jam iš krūvos skirta vieta vėl paskirstoma į kaupą ir tampa prieinama visiems naujiems objektams.
Q86. Kaip mes galime rasti tikrąjį objekto dydį ant krūvos?
Ansas: Javoje jokiu būdu negalima sužinoti tikslaus daikto dydžio ant krūvos.
Q87. Kuriai iš šių klasių bus skirta daugiau atminties?
A klasė: Trys metodai, keturi kintamieji, be objekto
B klasė: penki metodai, trys kintamieji, be objekto
Ans: atmintis neskiriama prieš sukuriant objektus. Kadangi abiejose klasėse objektų nėra sukurta, todėl krūva jokiai klasei nėra skirta.
Q88. Kas nutiks, jei programoje netaikoma išimtis?
Ans: Jei programoje netaikoma išimtis naudojant bandymo blokavimo blokus, programa nutraukiama ir joks sakinys nevykdomas po teiginio, kuris sukėlė išimtį.
Q89. Turiu kelis konstruktorius, apibrėžtus klasėje. Ar galima paskambinti konstruktoriui iš kito konstruktoriaus kūno?
Ans: Jei klasėje yra keli konstruktoriai, naudojant šį () galima iškviesti vieną konstruktorių iš kito kūno .
Q90. Ką reiškia anoniminė klasė?
Ans: Anoniminė klasė yra klasė, apibrėžta be jokio pavadinimo vienoje kodo eilutėje naudojant naują raktinį žodį.
Pavyzdžiui, žemiau esančiame kode mes apibrėžėme anoniminę klasę vienoje kodo eilutėje:
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. Ar yra būdas padidinti masyvo dydį po jo deklaravimo?
Ans: Masyvai yra statiški ir, kai mes nurodysime jo dydį, mes negalime jo pakeisti. Jei norime naudoti tokias kolekcijas, kuriose gali reikėti pakeisti dydį (elementų nėra), turėtume teikti pirmenybę vektoriui, o ne masyvui.
Q92. Jei programoje yra kelios klasės, ar gerai, kad pagrindinis metodas yra daugiau nei vienoje klasėje?
Ans: Jei „Java“ programoje yra pagrindinis metodas daugiau nei vienoje klasėje, tai nesukels jokių problemų, nes bet kurios programos įėjimo taškas bus konkreti klasė, o kodas prasidės tik nuo tos konkrečios klasės pagrindinio metodo.
Q93. Noriu išsaugoti objektų duomenis vėlesniam naudojimui. Koks yra geriausias būdas tai padaryti?
Ans: Geriausias būdas išsaugoti duomenis būsimam naudojimui yra naudoti serializavimo koncepciją.
Q94. Kas yra „Java“ vietinė klasė?
Ans: Jei „Java“ apibrėžtume naują klasę tam tikro bloko viduje, tai vadinama vietine klase. Tokia klasė yra lokali ir jos negalima naudoti už bloko, kuriame ji apibrėžta.
Q95. „String“ ir „StringBuffer“ reiškia „String“ objektus. Ar galime palyginti „String“ ir „StringBuffer“ sistemoje „Java“?
Ans: Nors „String“ ir „StringBuffer“ abu reiškia „String“ objektus, mes negalime jų palyginti tarpusavyje ir jei bandysime juos palyginti, gausime klaidą.
Q96. Kurį API teikia „Java“ operacijoms su objektų rinkiniu?
Ans: Java pateikia kolekcijos API, kurioje pateikiama daug naudingų metodų, kuriuos galima pritaikyti objektų rinkiniui. Kai kurios svarbios „Collection API“ teikiamos klasės yra „ArrayList“, „HashMap“, „TreeSet“ ir „TreeMap“.
Q97. Ar galime perduoti bet kokį kitą tipą į Būlio tipą su tipo liejimu?
An: Ne, mes negalime perduoti jokio kito primityvaus tipo į Boolean duomenų tipą, nei mes galime perduoti Boolean duomenų tipą į bet kurį kitą primityvų duomenų tipą.
Q98. Ar mes galime naudoti skirtingus grąžinimo tipus metodams, kai nepaisoma?
Ans: Pagrindinis metodo viršijimo reikalavimas „Java“ yra tas, kad nepaisomas metodas turėtų turėti tą patį pavadinimą ir parametrus. Tačiau metodą galima pakeisti kitu grąžinimo tipu, jei naujas grąžinimo tipas pratęsia originalą.
Pavyzdžiui, metodas pateikia nuorodos tipą.
Class B extends A {A method(int x) {//original method}B method(int x) {//overridden method}}
Q99. Kokia yra visų išimčių klasių bazinė klasė?
Ans: „Java“, Java.lang. Throwable yra visų išimčių klasių super klasė, o visos išimčių klasės yra kilusios iš šios pagrindinės klasės.
Q100. Kokia yra statybininkų raginimo paveldėti tvarka?
Ansas: Paveldėjimo atveju, kai sukuriamas naujas išvestinės klasės objektas, pirmiausia iškviečiamas super klasės konstruktorius, o tada - išvestinės klasės konstruktorius.
Pasiruoškite pokalbiui dėl darbo !!! Peržiūrėkite „Java Tutorial“, kad būtumėte geriau pasirengę.
Šis išsamus „Java“ interviu klausimų pdf padės jums išsiaiškinti abejones dėl „Java“ interviu klausimų, taip pat padės nutraukti interviu.