Laadige alla PDF
Oleme kokku pannud kõige sagedamini küsitavad Java Intervjuu küsimused ja vastused, mis aitavad teil valmistuda Java põhiintervjuu küsimusteks, mida intervjueerija võib teile küsida. Selles Java-intervjuu põhiküsimuste loendis oleme käsitlenud kõiki tavaliselt küsitud Java-põhiintervjuu põhi- ja edasijõudnutele mõeldud küsimusi koos üksikasjalike vastustega, mis aitavad teil tööintervjuu puhastada.
Järgmine loend sisaldab 100 olulist Java-intervjuu küsimust värsketele õppijatele ning Java-intervjuu küsimusi ja vastuseid kogenud programmeerijatele, et aidata neil intervjuuks valmistuda. See Java-programmeerimise intervjuuküsimuste üksikasjalik juhend aitab teil tööintervjuud hõlpsalt lahti saada.
Java intervjuu põhiküsimused ja vastused värskematele ja kogenumatele
Q1. Mis vahe on siseklassi ja alamklassi vahel?
Ans: Sisemine klass on klass, mis on sisestatud teise klassi. Sisemisel klassil on ligipääsuõigused klassile, mis seda pesitseb, ja see pääseb juurde kõigile välisklassis määratletud muutujatele ja meetoditele.
Alamklass on klass, mis pärineb teiselt klassilt, mida nimetatakse superklassiks. Alamklass pääseb ligi kõigile oma superklassi avalikele ja kaitstud meetoditele ja väljadele.
Q2. Millised on Java-klasside erinevad juurdepääsuspetsifikaatorid?
Ans: Javas on pääsuspetsifikaatorid märksõnad, mida kasutatakse enne klassi nime, mis määratleb juurdepääsu ulatuse. Klasside juurdepääsu täpsustajate tüübid on järgmised:
1. Avalik: klass, meetod, väli on kättesaadav kõikjalt.
2. Kaitstud: meetodile, väljale pääseb juurde samast klassist, kuhu nad kuuluvad, või alamklassidest ning sama paketi klassist, kuid mitte väljastpoolt.
3. Vaikimisi: meetodile, väljale, klassile pääseb juurde ainult samast paketist, mitte väljastpoolt selle omapaketti.
4. Privaatne: meetodile, väljale pääseb juurde samast klassist, kuhu nad kuuluvad.
Q3. Mis on staatiliste meetodite ja staatiliste muutujate eesmärk?
Ans: Kui on nõue jagada meetod või muutuja klassi mitme objekti vahel selle asemel, et luua iga objekti jaoks eraldi koopiad, kasutame staatilist märksõna meetodi või muutuja jagamiseks kõigi objektide jaoks.
Q4. Mis on andmete kapseldamine ja mis on selle tähendus?
Ans: kapseldamine on objektorienteeritud programmeerimise mõiste omaduste ja meetodite ühendamiseks ühes üksuses.
Kapseldamine aitab programmeerijatel järgida tarkvaraarenduse modulaarset lähenemist, kuna igal objektil on oma meetodite ja muutujate komplekt ning see täidab oma funktsioone teistest objektidest sõltumata. Kapseldamine täidab ka andmete varjamise eesmärki.
Q5. Mis on üksiklass? Tooge praktiline näide selle kasutamisest.
Java üksikklassil võib olla ainult üks eksemplar ja seega kuuluvad kõik selle meetodid ja muutujad ainult ühte eksemplari. Singletoni klassi kontseptsioon on kasulik olukordades, kus on vaja klassi objektide arvu piirata.
Parim näide üksikkasutusstsenaariumist on see, kui andmebaasiga on ainult ühe ühenduse olemasolu teatud draiveri piirangute tõttu või mis tahes litsentsimisprobleemide tõttu.
Q6. Mis on Java aasad? Mis on kolme tüüpi silmuseid?
Ans: Loopimist kasutatakse programmeerimisel lause või lauseploki korduvaks täitmiseks. Java-s on kolme tüüpi silmuseid:
1) Silmuste jaoks
Tsüklite jaoks kasutatakse javas lausete korduvat täitmist etteantud arvu kordi. Silmuste jaoks kasutatakse juhul, kui programmeerijale on teada, mitu korda avaldusi täidetakse.
2) Silmuste ajal
Kui loopi kasutatakse siis, kui teatud lauseid tuleb korduvalt täita, kuni tingimus on täidetud. Tsüklites while kontrollitakse enne avalduste täitmist kõigepealt tingimust.
3) Tehke aasade ajal
Do while Loop on sama kui While loop ainult erinevusega, seda tingimust kontrollitakse pärast lauseploki täitmist. Seega käsu do while loop korral täidetakse avaldused vähemalt üks kord.
7. küsimus: mis on lõpmatu aas? Kui lõpmatu silmus deklareeritakse?
Ans: lõpmatu silmus töötab ilma igasuguste tingimusteta ja töötab lõpmatult. Lõputu tsükli saab katkestada, määrates mis tahes murdeloogika lauseplokkide kehas.
Lõputu silmus deklareeritakse järgmiselt:
for (;;){// Statements to execute// Add any loop breaking logic}
Q8. Mis vahe on jätkamis- ja katkeavalduse vahel?
Ans: murda ja jätkata on kaks olulist märksõna, mida Loops kasutab. Kui katkestuse märksõna kasutatakse tsüklis, siis katkeb silmus koheselt, jätkuva märksõna kasutamisel katkeb praegune iteratsioon ja tsükkel jätkub järgmise iteratsiooniga.
Allpool toodud näites on silmus katki, kui loendur jõuab 4-ni.
for (counter = 0; counter & lt; 10; counter++)system.out.println(counter);if (counter == 4) {break;}}
Kui loendur jõuab väärtuseni 4, hüpatakse järgmises näites järgmisele iteratsioonile ja kõik jätkamise märksõna järgsed avaldused jäetakse praeguse iteratsiooni jaoks vahele.
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. Mis vahe on Java-s topelt- ja ujukmuutujate vahel?
Ans: Java keeles võtab ujuk mälus 4 baiti, Double aga 8 baiti mälus. Ujuk on ühe täpsusega ujukomaga kümnendarv, samas kui Double on topelttäpsusega kümnendarv.
Q10. Mis on Java lõplik märksõna? Tooge näide.
Ans: Jaavas deklareeritakse konstant märksõna Lõplik abil. Väärtust saab määrata ainult üks kord ja pärast määramist ei saa konstandi väärtust muuta.
Allpool toodud näites deklareeritakse konstant nimega const_val ja omistatakse lavue:
Privaatne lõplik int const_val = 100
Kui meetod on lõplikuks kuulutatud, ei saa seda alaklasside abil tühistada. See meetod on kiirem kui mis tahes muu meetod, kuna need lahendatakse järgitud ajal.
Kui klass kuulutatakse lõplikuks, ei saa seda alamklassidesse liigitada. Näite String, Integer ja muud ümbriste klassid.
Q11. Mis on kolmepoolne operaator? Tooge näide.
Ans: kolmepoolset operaatorit, mida nimetatakse ka tinglikuks operaatoriks, kasutatakse Boole'i väärtuse hindamise põhjal muutujale määramiseks, millise väärtuse määramine. Seda tähistatakse kui?
Kui auaste on 1, määratakse järgmises näites olekuks väärtus „Valmis“, teine on „Ootel“.
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üsimus: kuidas saate Java-s juhuslikke numbreid genereerida?
Ans:
- Kasutades Math.random (), saate genereerida juhuslikke arve, mis on suurem kui 0,1 või väiksem ja väiksem kui 1,0
- Juhusliku klassi kasutamine paketis java.util
Q13. Mis on vaikimisi lüliti juhtum? Tooge näide.
Ans: Lüliti avalduses täidetakse vaikimisi juhtum, kui ükski teine lüliti tingimus ei vasta. Vaiketäht on valikuline juhtum. Selle saab deklareerida alles siis, kui kõik muud lülitusjuhtumid on kodeeritud.
Kui punktisumma pole 1 või 2, kasutatakse allpool toodud näites vaiketähti.
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. Mis on Java põhiklass, millest kõik klassid on tuletatud?
Ans: java.lang.objekt
Q15. Kas Java (main) meetod võib tagastada mis tahes andmeid?
Ans: java keeles ei saa main () meetod tagastada andmeid ja seega deklareeritakse see alati tühise return tüübiga.
Q16. Mis on Java-paketid? Mis on pakendite tähendus?
Ans: Javas on pakett klasside ja liideste kogum, mis on omavahel seotud, kuna need on omavahel seotud. Pakettide kasutamine aitab arendajatel koodi korralikult moduleerida ja koodi õigeks taaskasutamiseks rühmitada. Kui kood on pakenditesse pakitud, saab seda importida teistesse klassidesse ja kasutada.
Q17. Kas saame klassi kuulutada abstraktseks, ilma et meil oleks abstraktset meetodit?
Ans: Jah, saame abstraktse klassi luua, kasutades klassi nime ees abstraktset märksõna, isegi kui sellel pole abstraktset meetodit. Kui klassil on aga kas või üks abstraktne meetod, tuleb see deklareerida abstraktsena, muidu annab see vea.
Q18. Mis vahe on Java abstraktsel klassil ja liidesel?
Ans: Peamine erinevus abstraktse klassi ja liidese vahel on see, et liidesel võib olla ainult avalike staatiliste meetodite deklareerimine ilma konkreetse rakendamiseta, samas kui abstraktsel klassil võivad olla liikmed, kellel on mis tahes juurdepääsuspetsifikaatorid (avalik, privaatne jne) konkreetse rakendusega või ilma.
Teine oluline erinevus abstraktsete klasside ja liideste kasutamisel on see, et liidest rakendav klass peab rakendama kõiki liidese meetodeid, samas kui abstraktsest klassist päritud klass ei nõua kõigi oma superklassi meetodite rakendamist.
Klass võib rakendada mitut liidest, kuid see võib laiendada ainult ühte abstraktset klassi.
Q19. Milline on liideste tulemuslikkuse mõju abstraktsetele klassidele?
Ans: Liidesed toimivad abstraktsete klassidega võrreldes aeglasemalt, kuna liideste jaoks on vaja täiendavaid juhiseid. Teine võtmetegur, mida arendajad peavad arvestama, on see, et iga klass võib laiendada ainult ühte abstraktset klassi, samas kui klass võib rakendada paljusid liideseid.
Liideste kasutamine koormab ka arendajaid lisakoormusega, kuna liides rakendatakse klassis igal ajal; arendaja on sunnitud rakendama kõiki liidese meetodeid.
Q20. Kas paketi importimine impordib selle alampakette ka Java-s?
Ans: Java-s paketi importimisel nende alampakette ei impordita ja arendaja peab need vajadusel eraldi importima.
Näiteks kui arendaja impordib pakettülikooli. *, Laaditakse kõik ülikooli nimega paketis olevad klassid, kuid alampaketist ühtegi klassi ei laadita. Klasside laadimiseks oma alampaketist (näiteks osakonnast) peab arendaja selle importima selgesõnaliselt järgmiselt:
Importida ülikool. Osakond. *
Q21. Kas saame tunnistada oma klassi peamise meetodi privaatseks?
Ans: Java-s peab rakenduse õigeks käitamiseks olema peamine meetod staatiline. Kui põhimeetod on deklareeritud privaatsena, ei saa arendaja kompileerimisviga, kuid seda ei käivitata ja see annab käitamisvea.
Q22. Kuidas saaksime väärtuse edastamise asemel anda funktsioonile argumendi viitega?
Ans: Java-s saame funktsiooni argumenti edastada ainult väärtuse, mitte viite järgi.
Q23. Kuidas objekt Java-s järjestatakse?
Ans: Java-vormingus rakendatakse objekti seriaaliseerimise teel baidivoogu teisendamiseks klassi liides nimega Serializable. Kõik jadatavat liidest rakendava klassi objektid sarjastatakse ja nende olek salvestatakse baitide voos.
Q24. Millal peaksime kasutama jadamist?
Ans: Serialiseerimist kasutatakse siis, kui andmeid on vaja üle võrgu edastada. Jaotamise abil objekti olek salvestatakse ja teisendatakse baidivoogudeks. Baidivoog edastatakse üle võrgu ja objekt luuakse sihtkohas uuesti.
Q25. Kas prooviplokile peab Java erandkäsitluse jaoks järgnema püüdeplokk?
Ans: Proovi blokeerimiseks peab järgnema kas Catch block või Lõpuks blokeerimine või mõlemad. Kõik prooviplokist visatud erandid tuleb kas püügiplokis kinni püüda või muul juhul tuleb teha mis tahes konkreetsed toimingud, mis tuleb teha enne, kui koodiabort tehakse blokki Viimane.
Q26. Kas on võimalik kuidagi erandiplokk lõpuks vahele jätta, isegi kui erandiplokis esineb mõni erand?
Ans: kui prooviblokis tõstatatakse erand, läheb kontroll blokeerimisele, kui blokeerimiseks on teisiti olemas. Lõplik plokk käivitatakse alati erandi ilmnemisel ja ainus viis ploki Lõplik lausete täitmise vältimiseks on katkestada kood sunniviisiliselt, kirjutades proovibloki lõppu järgmine koodirida:
System.exit(0);
Q27. Kui tuginetakse klassi konstruktorile?
Ans: klassi konstruktorit kutsutakse iga kord, kui objekt luuakse uue märksõnaga.
Näiteks järgmises klassis luuakse kaks objekti uue märksõna abil ja seega kutsutakse konstruktorit kaks korda.
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. Kas klassil võib olla mitu konstruktorit?
Ans: Jah, klassil võib olla mitu erineva parameetriga konstruktorit. Millist konstruktorit kasutatakse objektide loomiseks, sõltub objektide loomisel edastatud argumentidest.
Q29. Kas me saame klassi staatilisi meetodeid alistada?
Ans: me ei saa staatilisi meetodeid alistada. Staatilised meetodid kuuluvad klassi, mitte üksikutesse objektidesse ja lahendatakse kompileerimise ajal (mitte käitusajal). Isegi kui proovime staatilist meetodit alistada, ei saa me komplitseerimisviga ega alistamise mõju kood.
Q30. Milline on allpool toodud näide väljundiks?
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 : väljund on:
Alamklassist kuvamine
Kuvatakse superklassist
Q31. Kas string on andmetüüp javas?
Ans: string ei ole Java-failides primitiivne andmetüüp. Kui string luuakse Java-s, on see tegelikult loodud Java.Lang.String-klassi objekt. Pärast selle stringi objekti loomist saab stringi objektil kasutada kõiki klassi String sisseehitatud meetodeid.
Q32. Kui palju stringiobjekte on loodud allpool toodud näites?
String s1="I am Java Expert";String s2="I am C Expert";String s3="I am Java Expert";
Ans: ülaltoodud näites luuakse kaks Java.Lang.String klassi objekti. s1 ja s3 on viited samale objektile.
Q33. Miks nimetatakse Java stringe muutumatuks?
Ans: Java-s nimetatakse stringi objekte muutumatuks, kuna kui stringile on määratud väärtus, ei saa seda muuta ja kui seda muudetakse, luuakse uus objekt.
Allpool toodud näites viitab str stringiobjektile, mille väärtus on "Väärtus üks".
String str="Value One";
Kui sellele määratakse uus väärtus, luuakse uus String-objekt ja viide teisaldatakse uuele objektile.
str="New Value";
Q34. Mis vahe on massiivil ja Vektoril?
Ans: Massiiv rühmitab sama primitiivse tüübi andmeid ja on staatilist laadi, samas kui vektorid on dünaamilised ja mahutavad erinevat tüüpi andmeid.
Q35. Mis on mitmekeermeline?
Ans: Mitme keermestamine on programmeerimiskontseptsioon mitme ülesande samaaegseks käitamiseks ühes programmis. Teemad jagavad sama protsessivirna ja töötavad paralleelselt. See aitab parandada mis tahes programmi jõudlust.
Q36. Miks Java-s kasutatakse käivitatavat liidest?
Ans: Mitmeskeermeliste rakenduste juurutamiseks kasutatakse Java-s käivitatavat liidest. Java.Lang.Runnable liidese rakendab klass, et toetada mitmelõimimist.
Q37. Millised on Java mitmekeelelise rakendamise kaks võimalust?
Ans: Java-s saab välja töötada mitmekeermelisi rakendusi, kasutades mis tahes järgmist meetodit:
1. Kasutades Java.Lang.Runnable Interface'i. Klassid rakendavad seda liidest, et võimaldada mitmekeermestamist. Selles liideses on meetod Run (), mis on rakendatud.
2. Kirjutades klassi, mis laiendab Java.Lang.Thread klassi.
Q38. Milliseid neist tuleks eelistada, kui andmeid on vaja palju muuta? String või StringBuffer?
Ans: Kuna StringBufferid on oma olemuselt dünaamilised ja me võime StringBufferi objektide väärtusi muuta, erinevalt Stringist, mis on muutumatu, on alati hea valik kasutada StringBufferit, kui andmeid liiga palju muudetakse. Kui kasutame sellisel juhul stringi, luuakse iga andmemuudatuse jaoks uus stringiobjekt, mis on lisakulud.
Q39. Mis on Break-i kasutamise eesmärk igal lülitilausel?
Ans: Break kasutatakse lüliti iga juhtumi järel (välja arvatud viimane), nii et kood puruneb pärast kehtivat juhtumit ja ei voola ka menetlusjuhtumites.
Kui pausi pärast iga juhtumit ei kasutata, täidetakse ka kõik kehtiva juhtumi järgsed juhtumid, mille tulemuseks on valed tulemused.
Q40. Kuidas Java-s prügivedu toimub?
Ans: kui Java-s enam objektile ei viidata, toimub prügivedu ja objekt hävitatakse automaatselt. Automaatse prügikoristuse jaoks kutsub Java välja meetodi System.gc () või Runtime.gc ().
Q41. Kuidas saaksime suvalise koodi käivitada juba enne peamist meetodit?
Ans: kui me tahame täita mis tahes lauseid enne objektide loomist isegi klassi laadimise ajal, võime klassis kasutada staatilist koodiplokki. Kõik selles staatilises koodiplokis olevad laused täidetakse üks kord klassi laadimise ajal, isegi enne objektide loomist peamises meetodis.
Q42. Kas klass võib olla korraga nii superklass kui ka alaklass? Tooge näide.
Ans: kui kasutatakse pärimishierarhiat, võib klass olla samaaegselt nii teise kui ka teise klassi jaoks superklass.
Allpool toodud näites on mandri klass maailmatasemel alamklass ja see on maaklassi superklass.
public class world {… .}public class continenet extends world {… }public class country extends continent {… .}
Q43. Kuidas luuakse klassi objektid, kui klassis pole konstruktorit määratletud?
Ans: Isegi kui Java-klassis pole määratletud ühtegi selgesõnalist konstruktorit, kasutatakse objektide loomiseks vaikimisi konstruktoreid edukalt. Sellel konstruktoril pole parameetreid.
Q44. Kuidas tagada mitme lõime pakkumine, et ressurssi ei kasutaks korraga mitu lõime?
Ans: mitme lõime korral saab sünkroonimise kontseptsiooni abil juhtida juurdepääsu mitme lõime vahel jagatud ressurssidele. Sünkroonitud märksõna abil saame tagada, et jagatud ressurssi saab korraga kasutada ainult üks lõim ja teised saavad ressursi kontrolli alla saada alles siis, kui see on selle kasutamisest teisest vabanenud.
Q45. Kas me võime objekti konstruktori jaoks mitu korda helistada?
Ans: Ehitaja kutsutakse automaatselt, kui loome objekti uue märksõna abil. Objekti loomise ajal nimetatakse seda objekti jaoks ainult üks kord ja seetõttu ei saa me objekti pärast selle loomist uuesti konstruktorit kutsuda.
Q46. Seal on kaks klassi A ja B. Mõlemad klassid on ühes pakendis. Kas A-klassi privaatsele liikmele saab juurde pääseda B-klassi objekt?
Ans: Klassi eraliikmetele pole juurdepääs väljaspool selle klassi reguleerimisala ja ükski teine klass, isegi samas paketis, ei pääse neile juurde.
Q47. Kas meil võib sama nimega klassis olla kaks meetodit?
Ans: klassis saame määratleda kaks meetodit, millel on sama nimi, kuid erineva arvu / parameetrite arv. Milline meetod on kutsutud, sõltub läbitud parameetritest.
Näiteks allolevas klassis on meil kaks sama nime, kuid erinevate parameetritega printimismeetodit. Sõltuvalt parameetritest nimetatakse sobivat:
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. Kuidas saame Java objektist koopia teha?
Ans: Saame kloonimise mõistet kasutada objekti koopia loomiseks. Klooni abil loome koopiad objekti tegeliku olekuga.
Clone () on kloonitava liidese meetod ja seetõttu tuleb objektide koopiate tegemiseks rakendada Cloneable liides.
Q49. Mis kasu on pärimise kasutamisest?
Ans: Pärimise kasutamise peamine eelis on koodi korduvkasutus, kuna pärimine võimaldab alamklassidel oma superklassi koodi uuesti kasutada. Polümorfism (laiendatavus) on veel üks suur eelis, mis võimaldab uut funktsionaalsust kasutusele võtta olemasolevaid tuletatud klasse mõjutamata.
Q50. Mis on klassi muutujate ja meetodite vaikepöörduse täpsustaja?
Ans: Muutujate ja meetodi vaikepöörduse täpsustaja on paketiga kaitstud, st muutujad ja klass on saadaval mis tahes muule klassile, kuid samas paketis, mitte väljaspool paketti.
Q51. Tooge näide osutajate kasutamisest Java klassis.
Ans: Java-s pole näpunäiteid. Nii et me ei saa Java-s viidete mõistet kasutada.
Q52. Kuidas saaksime klassi pärimist piirata nii, et sellest ei saaks pärida ühtegi klassi?
Ans: kui tahame, et ühtegi klassi ei pikendataks, siis võime klassi nimega kasutada märksõna Lõplik .
Järgmises näites on Stone klass lõplik ja seda ei saa pikendada
public Final Class Stone {// Class methods and Variables}
Q53. Milline on kaitstud juurdepääsu täpsustaja juurdepääs?
An: kui meetod või muutuja deklareeritakse koos kaitstud juurdepääsu spetsifikaatoriga, muutub see ligipääsetavaks nii samas klassis, sama paketi mis tahes muus klassis kui ka alamklassis.
Muutja |
Klass |
Pakett |
Alamklass |
Maailm |
avalik |
Y |
Y |
Y |
Y |
kaitstud |
Y |
Y |
Y |
N |
pole modifikaatorit |
Y |
Y |
N |
N |
privaatne |
Y |
N |
N |
N |
Q54. Mis vahe on virna ja järjekorra vahel?
Ans: virna ja järjekorda kasutatakse andmete kogumisel kohahoidjana. Peamine erinevus virna ja järjekorra vahel seisneb selles, et virn põhineb põhimõttel Last in First out (LIFO), samal ajal kui järjekord põhineb FIFO (First In First Out) põhimõttel.
Q55. Kuidas saaksime Java-s keelata muutujate järjestamise?
Ans: kui me tahame, et teatud klassi muutujaid ei järjestataks, võime neid deklareerides kasutada märksõna transient . Näiteks on allpool olev muutuja trans_var mööduv muutuja ja seda ei saa järjestada:
public class transientExample {private transient trans_var;// rest of the code}
Q56. Kuidas saame objektidena kasutada primitiivseid andmetüüpe?
Ans: Ürgseid andmetüüpe, nagu int, saab objektidena käsitleda nende vastavate ümbrisklasside abil. Näiteks Integer on primitiivse andmetüübi int ümbrisklass. Me võime rakendada ümbriseklassi jaoks erinevaid meetodeid, nagu ka muid objekte.
Q57. Milliseid erandeid kompileerimise ajal tabatakse?
Ans: Kontrollitud erandeid saab tabada programmi koostamise ajal. Kontrollitud eranditega tuleb koodi edukaks kompileerimiseks kasutada koodis proovimisblokki.
Q58. Kirjeldage lõime erinevaid olekuid.
Ans: Java lõim võib olla ühes järgmistest olekutest:
- Valmis: kui lõim on loodud, on see olekus Valmis.
- Töötab: praegu käivitatav lõim on jooksvas olekus.
- Ootel: lõim, mis ootab teist lõime teatud ressursside vabastamiseks, on ooteseisundis.
- Surnud: pärast hukkamist surnud lõng on surnud olekus.
Q59. Kas saame kasutada klassi vaikekonstruktorit isegi siis, kui on määratletud selgesõnaline konstruktor?
Ans: Java pakub vaikimisi argumentideta konstruktorit, kui Java klassis pole määratletud selgesõnalist konstruktorit. Kuid kui on määratletud selgesõnaline konstruktor, ei saa vaikekonstruktorit kasutada ja arendaja saab kasutada ainult neid konstruktoreid, mis on klassis määratletud.
Q60. Kas me saame meetodi tühistada, kasutades sama meetodi nime ja argumente, kuid erinevaid tagastustüüpe?
Ans: meetodi ülekandmise põhitingimus on see, et nii meetodi nimi, argumendid kui ka tagastuse tüüp peavad olema täpselt samad, mis meetodi alistamisel. Seetõttu ei alista teistsuguse tagastustüübi kasutamine meetodit.
Q61. Mis on järgmise koodijupi väljund?
public class operatorExample {public static void main(String args[]) {int x = 4;system.out.println(x++);}}
Ans: Sel juhul kasutatakse postfix ++ operaatorit, mis kõigepealt tagastab väärtuse ja seejärel kasvab. Seega on selle väljundiks 4.
Q61. Inimene ütleb, et koostas java klassi edukalt, ilma et selles oleks isegi peamist meetodit olnud? Kas see on võimalik?
Ans: peamine meetod on Java-klassi sisenemispunkt ja on siiski vajalik programmi käivitamiseks; klass kompileeritakse edukalt, isegi kui sellel pole peamist meetodit. Seda ei saa siiski käivitada.
Q62. Kas me saame staatilise meetodi seest kutsuda mittestaatilist meetodit?
Ans: mittestaatilised meetodid kuuluvad klassi objektidele ja on objektitaseme ulatusega ning mittestaatiliste meetodite kutsumiseks staatilisest plokist (nagu staatilisest põhimeetodist) tuleb luua klassi objekt kõigepealt. Seejärel saab objektiviidet kasutades neid meetodeid kasutada.
Q63. Millised on kaks keskkonnamuutujat, mis tuleb Java-programmide käitamiseks seada?
Ans: Java-programme saab masinas käivitada ainult siis, kui kaks keskkonnamuutujat on õigesti seatud:
- PATH muutuja
- Muutuja CLASSPATH
Q64. Kas Java-s saab muutujaid kasutada ilma lähtestamiseta?
Ans: Kui Java-s kasutatakse muutujat ilma kehtiva väärtusega eelnevalt initsialiseerimata, siis Java ei kompileeri ja annab vea, kuna Java muutujaile pole vaikeväärtust määratud.
Q65. Kas Java-klassi saab pärida rohkem kui ühest klassist?
Ans: Javas saab klassi tuletada ainult ühest klassist, mitte mitmest klassist. Java ei toeta mitut pärandit.
Q66. Kas konstruktoril võib olla Java-s erinev nimi kui klassi nimel?
Ans: Java konstruktoril peab olema sama nimi kui klassi nimel ja kui nimi on erinev, ei toimi see konstruktorina ja kompilaator peab seda tavaliseks meetodiks.
Q67. Milline on vooru (3.7) ja Ceili (3.7) väljund?
Ans: ümmargune (3.7) tagastab 4 ja Ceil (3.7) tagastab 4.
K68: Kas saame Java-s kasutada konkreetsele reale minemiseks goto-d?
Ans: Java-s pole goto märksõna ja java ei toeta seda funktsiooni, et minna konkreetsele sildistatud reale.
Q69. Kas surnud lõime saab uuesti alustada?
Ans: Jaavas ei saa surnud olekut uuesti käivitada. Surnud lõime pole võimalik taaskäivitada.
Q70. Kas järgmine klassideklaratsioon on õige?
Ans:
public abstract final class testClass {// Class methods and variables}
Ans: ülaltoodud klassi deklaratsioon on vale, kuna abstraktset klassi ei saa lõplikuks kuulutada.
Q71. Kas JDK on Java-programmi käivitamiseks vajalik igas masinas?
Ans: JDK on Java arenduskomplekt ja see on vajalik ainult arendamiseks ja Java-programmi käivitamiseks masinas, JDK-d pole vaja. Vaja on ainult JRE-d.
Q72. Mis vahe on võrdse meetodi võrdluse ja operaatori == vahel?
Ans: Javas kasutatakse meetodi equals () abil kahe stringiobjekti sisu võrdlemist ja tagastatakse väärtus true, kui operaator == võrdleb kahe stringiobjekti viiteid.
Järgmises näites tagastab equals () true, kuna kahel stringi objektil on samad väärtused. Operaator == tagastab vale, kuna mõlemad stringi objektid viitavad erinevatele objektidele:
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. Kas Java-klassis on võimalik meetodit määratleda, kuid pakkuda selle rakendamist mõne muu keele, näiteks C-koodis?
Ans: Jah, me saame seda teha kohalike meetodite abil. Natiivmeetodil põhineva arenduse korral määratleme oma Java-klassis avalikud staatilised meetodid ilma selle rakendamiseta ja seejärel viiakse rakendus sisse mõnes muus keeles, näiteks C.
Q74. Kuidas defineeritakse Java-s hävitajaid?
Ans: Java-s pole klassis ühtegi destruktorit määratletud, kuna seda pole vaja teha. Java-l on oma prügikoristusmehhanism, mis teeb selle töö automaatselt, hävitades objektid, kui neile enam ei viidata.
Q75. Kas muutuja võib olla lokaalne ja staatiline korraga?
Ans: Ükski muutuja ei saa olla nii staatiline kui ka lokaalne korraga. Kohaliku muutuja staatiliseks määramine annab kompileerimisvea.
Q76. Kas meil võib liideses olla staatilisi meetodeid?
Ans: Staatilisi meetodeid ei saa üheski klassis tühistada, samas kui mis tahes liidese meetodid on vaikimisi abstraktsed ja peaksid neid rakendama liidese rakendamise klassides. Seega pole mõtet, kui Java liideses on staatilisi meetodeid.
Q77. Kas liidest rakendavas klassis saame muuta mis tahes liideses määratletud muutuja väärtust?
Ans: ei, me ei saa rakendusklassi liidese ühegi muutuja väärtust muuta, kuna kõik liideses määratletud muutujad on vaikimisi avalikud, staatilised ning lõplikud ja lõplikud muutujad on nagu konstandid, mida ei saa hiljem muuta.
Q78. Kas on õige öelda, et Java-s oleva prügikoristusfunktsiooni tõttu ei kao Java-programm kunagi mälust?
Ans: Kuigi Java tagab automaatse prügivedu, ei taga see, et Java-programm ei läheks mälust tühjaks, kuna on võimalus, et Java-objektide loomine toimub kiiremini kui prügivedu, mille tulemuseks on kõigi saadaolevate mäluressursside täitmine.
Niisiis aitab prügivedu vähendada programmi mälust tühjenemise tõenäosust, kuid see ei taga seda.
Q79. Kas meil võib olla mõni muu tagastustüüp peale põhimeetodi tühine?
Ans: Ei, Java-klassi peamisel meetodil võib programmi edukaks täitmiseks olla ainult tühine tagasitüüp.
Sellegipoolest, kui peate põhimeetodi lõpuleviimisel kindlasti väärtuse tagastama, võite kasutada System.exit (int staatus)
Q80. Ma tahan objektini uuesti jõuda ja seda kasutada, kui see on prügi koristatud. Kuidas see võimalik on?
Ans: Kui prügikoguja on objekti hävitanud, pole seda kuhjas enam olemas ja sellele ei pääse enam juurde. Ei saa kuidagi sellele uuesti viidata.
Q81. Milline meetod on Java lõime programmeerimisel kõigi lõimede jaoks kohustuslik?
Ans: Run () on käivitatava liidese meetod, mida peavad rakendama kõik lõimed.
Q82. Soovin oma programmis andmebaasiühendusi juhtida ja soovin, et korraga saaks andmebaasiühenduse luua ainult üks lõim. Kuidas seda loogikat rakendada?
Ans: seda saab rakendada sünkroniseerimise mõiste abil. Andmebaasiga seotud koodi saab paigutada meetodisse, mis sünkroonib märksõna nii, et korraga saab sellele juurde pääseda ainult üks lõim.
Q83. Kuidas saab programmeerija käsitsi visata erandi?
Ans: Koodiplokki käsitsi erandi viskamiseks kasutatakse viske märksõna. Siis püütakse see erand kinni püütud plokis.
public void topMethod() {try {excMethod();} catch (ManualException e) {}}public void excMethod {String name = null;if (name == null) {throw (new ManualException("Exception thrown manually ");}}
Q84. Ma tahan, et minu klassi arendataks nii, et ükski teine klass (isegi tuletatud klass) ei saaks oma objekte luua. Kuidas ma saan seda teha?
Ans: Kui kuulutame klassi konstruktori privaatseks, ei pääse sellele juurde ükski teine klass ja seega ei saa ükski teine klass seda instantsida ja selle objekti moodustamine piirdub ainult iseendaga.
Q85. Kuidas objekte Java-s salvestatakse?
Ans: Jaavas saab iga loodud objekt hunnikust mäluruumi. Kui prügikoguja hävitab objekti, eraldatakse talle kuhjast eraldatud ruum hunnikule ja see on saadaval uute objektide jaoks.
Q86. Kuidas leiame kuhjast objekti tegeliku suuruse?
Ans: Jaavas pole kuhjaga objekti täpset suurust võimalik teada saada.
Q87. Millistele järgmistest klassidest eraldatakse rohkem mälu?
Klass A: kolm meetodit, neli muutujat, pole objekti
Klass B: viis meetodit, kolm muutujat, objekt puudub
Ans: mälu ei eraldata enne objektide loomist. Kuna mõlema klassi jaoks pole ühtegi objekti loodud, ei ole hunnikule ühegi klassi jaoks mälu eraldatud.
Q88. Mis juhtub, kui erandit programmis ei käsitleta?
Ans: Kui programmis ei tehta erandit proovimispüügi plokkide abil, katkestatakse programm ja ükski lause ei käivitu pärast lauset, mis põhjustas erandi viskamise.
Q89. Mul on klassis määratletud mitu konstruktorit. Kas on võimalik kutsuda konstruktorit teisest konstruktori kehast?
Ans: kui klassil on mitu konstruktorit, on selle () abil võimalik ühte konstruktorit teise kehast helistada .
Q90. Mida tähendab anonüümne klass?
Ans: Anonüümne klass on klass, mis määratakse uue märksõna abil ühes koodireas ilma ühegi nimeta.
Näiteks on kood allpool määratlenud anonüümse klassi ühes koodireas:
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. Kas massiivi suurust on võimalik pärast selle deklareerimist suurendada?
Ans: Massiivid on staatilised ja kui oleme selle suuruse määranud, ei saa me seda muuta. Kui soovime kasutada selliseid kogusid, kus võime nõuda suuruse (üksuste arv) muutmist, peaksime eelistama vektorit massiivi asemel.
Q92. Kui rakendusel on mitu klassi, kas on hea, kui peamist meetodit kasutatakse rohkem kui ühes klassis?
Ans: kui Java-rakenduses on põhimeetod rohkem kui ühes klassis, ei tekita see probleeme, kuna mis tahes rakenduse sisenemispunkt on konkreetne klass ja kood algab ainult selle konkreetse klassi peamisest meetodist.
Q93. Soovin objektide andmed hilisemaks kasutamiseks säilitada. Milline on parim viis seda teha?
Ans: parim viis andmete edaspidiseks kasutamiseks säilitada on serialiseerimise mõiste kasutamine.
Q94. Mis on Java kohalik klass?
Ans: Kui Java-s määratleme konkreetse ploki sees uue klassi, nimetatakse seda kohalikuks klassiks. Sellisel klassil on kohalik ulatus ja seda ei saa kasutada väljaspool seda plokki, kus see on määratletud.
Q95. String ja StringBuffer tähistavad mõlemad stringi objekte. Kas saame võrrelda Stringi ja StringBufferit Java-s?
Ans: Ehkki nii String kui ka StringBuffer esindavad stringi objekte, ei saa me neid omavahel võrrelda ja kui proovime neid võrrelda, saame vea.
Q96. Millise API pakub Java objektide komplekti toiminguteks?
Ans: Java pakub Collection API-d, mis pakub palju kasulikke meetodeid, mida saab objektide komplektile rakendada. Mõned kogumise API pakutavad olulised klassid hõlmavad ArrayList, HashMap, TreeSet ja TreeMap.
Q97. Kas me saame tüübivaluga üle anda ka muud tüüpi Boole'i tüübile?
Ans: ei, me ei saa ühtegi muud primitiivset tüüpi üle anda Boole'i andmetüübile ega Boole'i andmetüüpi ühtegi muud primitiivset tüüpi andmetele.
Q98. Kas saab alistamiseks kasutada meetodite jaoks erinevaid tagastustüüpe?
Ans: Java-s ülimusliku meetodi põhinõue on see, et alistataval meetodil peaks olema sama nimi ja parameetrid. Kuid meetodit saab alistada teise tagastustüübiga, kui uus tagastustüüp laiendab algset.
Näiteks meetod on viite tüübi tagastamine.
Class B extends A {A method(int x) {//original method}B method(int x) {//overridden method}}
Q99. Mis on kõigi erandklasside baasklass?
Ans: Java- s on Java.lang.Throwable kõigi erandiklasside superklass ja kõik erandiklassid on tuletatud sellest baasklassist.
Q100. Milline on ehitajate pärimise järjekord?
Ans: Pärimise korral, kui tuletatud klassi uus objekt luuakse, kutsutakse kõigepealt superklassi konstruktorit ja seejärel tuletatud klassi konstruktorit.
Valmistuge tööintervjuuks ette !!! Parema ettevalmistuse saamiseks läbige Java juhendaja.
See üksikasjalik Java-intervjuu küsimuste pdf aitab teil kõrvaldada kahtlused Java-intervjuu küsimustes ja aitab teil ka intervjuu murda.