100 + Java Intervjuu küsimused ja vastused (2026)
Java Programmeerimisintervjuu küsimused ja vastused värsketele
1) Mis vahe on siseklassil ja alamklassil?
Sisemine klass on klass, mis on pesastatud teise klassi sisse. Sisemisel klassil on juurdepääsuõigused seda pesastavale klassile ja see pääseb juurde kõikidele välisklassis määratletud muutujatele ja meetoditele.
Alamklass on klass, mis pärib teiselt klassilt, mida nimetatakse superklassiks. Alamklassil on juurdepääs kõigile oma superklassi avalikele ja kaitstud meetoditele ja väljadele.
👉 Tasuta PDF-i allalaadimine: Java Intervjuu Intervjuu küsimused ja vastused >>
2) Mille jaoks on erinevad juurdepääsu spetsifikaatorid Java klassid?
In Java, on juurdepääsu määrajad märksõnad, mida kasutatakse enne klassi nime, mis määrab juurdepääsu ulatuse. Klasside juurdepääsuspetsifikaatorite tüübid on järgmised:
1) Avalik: Klass, meetod, väli on juurdepääsetav kõikjalt.
2) Kaitstud: Meetod,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 ja mitte väljastpoolt selle algpaketti.
4) Privaatne: Meetod,väljale pääseb juurde samast klassist, kuhu nad kuuluvad.
3) Mis on staatiliste meetodite ja staatiliste muutujate eesmärk?
Kui on nõue jagada meetodit või muutujat klassi mitme objekti vahel, selle asemel et luua iga objekti jaoks eraldi koopiaid, kasutame staatilist märksõna, et luua meetod või muutuja, mida jagatakse kõigi objektide jaoks.
4) Mis on andmete kapseldamine ja mis on selle tähtsus?
Kapseldamine on objektorienteeritud programmeerimise kontseptsioon atribuutide ja meetodite ühendamiseks ühes üksuses.
Kapseldamine aitab programmeerijatel järgida tarkvaraarenduses modulaarset lähenemisviisi, kuna igal objektil on oma meetodite ja muutujate komplekt ning see täidab oma funktsioone teistest objektidest sõltumatult. Kapseldamine teenib ka andmete peitmise eesmärki.
5) Mis on üksikklassi klass? Tooge selle kasutamise praktiline näide.
Java üksikul klassil võib olla ainult üks eksemplar ja seetõttu kuuluvad kõik selle meetodid ja muutujad ainult ühte eksemplari. Singleton klassi kontseptsioon on kasulik olukordades, kus on vaja piirata klassi objektide arvu.
Üksikkasutuse stsenaariumi parim näide on see, kui teatud draiveripiirangute või litsentsimisprobleemide tõttu on andmebaasiga piiratud ainult üks ühendus.
6) Milles on silmused Java? Mis on kolme tüüpi silmuseid?
Looping kasutatakse programmeerimisel lause või lauseploki korduvaks täitmiseks. Neid on kolm. silmuste tüübid sisse Java:
1) Loopide jaoks
For silmuseid kasutatakse Javas lausete korduvaks täitmiseks teatud arvu kordi. For silmuseid kasutatakse siis, kui lausete täitmise kordade arv on programmeerijale teada.
2) Kuigi Loops
Kuigi tsüklit kasutatakse siis, kui teatud lauseid tuleb korduvalt täita, kuni tingimus on täidetud. While-tsüklites kontrollitakse tingimust enne lausete täitmist.
3) Tee While Loops
Do While Loop on sama, mis While loop, ainult selle erinevusega, et tingimust kontrollitakse pärast lauseploki täitmist. Seega käivitatakse tsükli do while korral laused vähemalt üks kord.
7) Mis on lõpmatu silmus? Kuidas deklareeritakse lõpmatu tsükkel?
Lõpmatu tsükkel jookseb ilma ühegi tingimuseta ja jookseb lõputult. Lõpmatu tsükli saab katkestada, defineerides lauseplokkide põhiosas mis tahes katkestusloogika.
Lõpmatu tsükkel deklareeritakse järgmiselt:
for (;;)
{
// Statements to execute
// Add any loop breaking logic
}
8) Mis vahe on jätku- ja katkestuslausel?
pausi ja jätka on kaks olulist märksõna, mida kasutatakse Loopsis. Kui tsüklis kasutatakse katkestusmärksõna, katkeb silmus koheselt, samas kui jätkamise märksõna kasutamisel katkeb praegune iteratsioon ja tsükkel jätkub järgmise iteratsiooniga.
Allolevas näites katkeb silmus, kui loendur jõuab 4-ni.
for (counter = 0; counter & lt; 10; counter++)
system.out.println(counter);
if (counter == 4) {
break;
}
}
Allolevas näites, kui loendur jõuab 4-ni, hüppab silmus järgmisele iteratsioonile ja kõik jätku märksõnale järgnevad 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");
}
9) Mis vahe on topelt- ja ujuvmuutujatel? Java?
Javas võtab float mälus samal ajal 4 baiti Double võtab mällu 8 baiti. Ujuk on ühe täpsusega ujukoma kümnendnumber while Double on kahekordse täpsusega kümnendnumber.
10) Mis on lõplik märksõna? Java? Too näide.
Javas deklareeritakse konstant märksõnaga Final. Väärtust saab määrata ainult üks kord ja pärast määramist ei saa konstandi väärtust muuta.
Allolevas näites deklareeritakse konstant nimega const_val ja sellele määratakse väärtus:
Privaatne Final int const_val=100
Kui meetod on kuulutatud lõplikuks, EI saa seda alamklassid alistada. See meetod on kiirem kui ükski teine meetod, kuna need lahendatakse järgitud ajal.
Kui klass kuulutatakse lõplikuks, ei saa seda alamklassidesse liigitada. Stringi, täisarvu ja muude ümbrisklasside näide.
11) Mis on kolmekordne operaator? Too näide.
Ternaarset operaatorit , mida nimetatakse ka tingimuslikuks operaatoriks, kasutatakse Boole'i väärtuse hindamise põhjal muutujale määratava väärtuse otsustamiseks. See on tähistatud kui ?
Allolevas näites, kui auaste on 1, määratakse olekule väärtus „Valmis“ ja „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) Kuidas saate genereerida juhuslikke numbreid Java?
- Kasutades Math.random() saate genereerida juhuslikke numbreid vahemikus, mis on suurem või võrdne 0.1 ja väiksem kui 1.0
- Juhusliku klassi kasutamine paketis java.util
13) Mis on vaikimisi lüliti korpus? Too näide.
Aastal lüliti avaldus, käivitatakse vaikejuht, kui ükski muu lüliti tingimus ei vasta. Vaikimisi suurtäht on valikuline juhtum. Seda saab deklareerida alles siis, kui kõik muud lülitusjuhtumid on kodeeritud.
Kui skoor ei ole 1 või 2, kasutatakse allolevas näites vaiketähte.
public class SwitchExample {
public static void main(String args[]) {
int score = 4; // Declare the score variable inside the main method
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");
}
}
}
14) Mis on baasklass? Java millest kõik klassid on tuletatud?
java.lang.object
15) Kas main() meetod sisse Java kas saab mingeid andmeid tagastada?
Javas ei saa meetod main() andmeid tagastada ja seetõttu deklareeritakse see alati tühise tagastustüübiga.
16) Mis on Java Paketid? Mis tähtsus on pakenditel?
In Java, pakett on klasside ja liideste kogum, mis on kokku pandud, kuna need on üksteisega seotud. Pakettide kasutamine aitab arendajatel koodi moduleerida ja rühmitada koodi õigeks taaskasutamiseks. Kui kood on pakettidesse pakendatud, saab selle importida teistesse klassidesse ja kasutada.
17) Kas me saame klassi deklareerida kui Abs?tracilma kõhulihastetatract-meetod?
Jah, me saame kõhulihaseid tehatract-klass abs-lihaste abiltracmärksõna t enne klassi nime, isegi kui sellel pole abs-väärtusitract-meetod. Kui aga klassil on paaris üks abs.tract-meetodi puhul tuleb see deklareerida abs-väärtusenatracvastasel juhul annab see veateate.
18) Mis vahe on kõhulihastel?tracKlass ja liides Java?
Peamine erinevus kõhulihaste vaheltract-klassi ja liidese puhul on oluline märkida ainult avalikke staatilisi meetodeid ilma konkreetse implementatsioonita, samas kui abs-liides saab deklareerida ainult avalikke staatilisi meetodeid.tract-klassil võivad olla liikmed mis tahes juurdepääsuspetsifikatsioonidega (avalik, privaatne jne), konkreetse implementatsiooniga või ilma.
Teine oluline erinevus kõhulihaste kasutamiseltract-klasside ja liideste eripäraks on see, et liidest rakendav klass peab rakendama kõiki liidese meetodeid, samas kui klass, mis pärib abs-meetodilt,tract-klass ei nõua kõigi oma ülemklassi meetodite rakendamist.
Klass saab implementeerida mitu liidest, aga laiendada saab ainult ühte liidest.tract-klass.
19) Millised on liideste jõudluse tagajärjed abs-tasemel?tract-klassid?
Liidesed on aeglasema jõudlusega võrreldes abs-gatract-klasse, kuna liideste jaoks on vaja täiendavaid kaudoperaatoreid. Teine oluline tegur, mida arendajad peaksid arvestama, on see, et iga klass saab laiendada ainult ühte abstraheerimisoperaatorit.tract-klass, samas kui klass saab rakendada paljusid liideseid.
Liideste kasutamine paneb arendajatele ka lisakoormuse, kuna iga kord, kui klassis liidest rakendatakse; arendaja on sunnitud rakendama iga liidese meetodit.
20) Kas paketi importimine impordib ka selle alampakette Java?
Java puhul paketi importimisel selle alampakette ei impordita ja arendaja peab need vajaduse korral eraldi importima.
Näiteks kui arendaja impordib paketi University.*, laaditakse kõik paketi klassid nimega ülikool, kuid alampaketi klasse ei laadita. Alampaketist (näiteks osakonnast) klasside laadimiseks peab arendaja selle importima järgmiselt:
Import ülikool.osakond.*
21) Kas me saame oma klassi põhimeetodi privaatseks kuulutada?
Java puhul peab põhimeetod olema avalik staatiline, et rakendust õigesti käitada. Kui põhimeetod on deklareeritud privaatseks, ei saa arendaja kompileerimisviga, kuid seda ei käivitata ja see annab käitusvea.
22) Kuidas saame anda funktsioonile argumendi edasi viitega, mitte väärtuse järgi?
Javas saame argumendi funktsioonile edastada ainult väärtuse, mitte viite alusel.
23) Kuidas objekt Java-s serialiseeritakse?
Javas, et teisendada objekti baitivooks serialiseerimise teel, rakendab klass liidese nimega Serialisable. Kõik serialiseeritavat liidest rakendava klassi objektid serialiseeritakse ja nende olek salvestatakse baitivoogu.
24) Millal peaksime kasutama serialiseerimist?
Serialiseerimist kasutatakse siis, kui andmeid on vaja transmitedastatakse võrgu kaudu. Serialiseerimise abil salvestatakse objekti olek ja teisendatakse baidivooguks. Baidivoog edastatakse võrgu kaudu ja objekt luuakse sihtkohas uuesti.
25) Kas prooviplokile peab järgnema Catch Block in Java erandi käsitlemiseks?
Prooviplokile peab järgnema kas Catch block või Last block või mõlemad. Kõik proovimisplokist tehtud erandid tuleb püüda kinni püüdmise plokki või mis tahes konkreetsed toimingud, mis tuleb teha enne koodi katkestamise lisamist Lõpuks plokki.
Java Intervjuu küsimused ja vastused kogenud inimestele
26) Kas on kuidagi võimalik erandiplokki lõpuks vahele jätta, isegi kui erandiplokis esineb mõni erand?
Kui prooviplokis tõstatatakse erand, läheb juhtplokk kinni, kui see on olemas, vastasel juhul lõplikuks blokeerimiseks. Lõpuks käivitatakse plokk alati siis, kui ilmneb erand ja ainus viis mis tahes lausete täitmist ploki Lõpuks vältida on lõpetada kood sunniviisiliselt, kirjutades prooviploki lõppu järgmise koodirea:
System.exit(0);
27) Millal kutsutakse välja klassi konstruktor?
Klassi konstruktorit kutsutakse välja iga kord, kui objekt luuakse uue märksõnaga.
Näiteks järgmises klassis luuakse uue märksõna abil kaks objekti ja seetõttu 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();
}
}
28) Kas klassil võib olla mitu konstruktorit?
Jah, klassil võib olla mitu erinevate parameetritega konstruktorit. Millist konstruktorit objektide loomisel kasutatakse, sõltub objektide loomisel edastatud argumentidest.
29) Kas me saame alistada klassi staatilisi meetodeid?
Me ei saa staatilisi meetodeid alistada. Staatilised meetodid kuuluvad klassi, mitte üksikute objektide alla ja need lahendatakse kompileerimise ajal (mitte käitusajal). Isegi kui proovime staatilist meetodit alistada, ei saa me komplitseerimisviga ega alistamise mõju kood.
30) Mis on allolevas näites väljund?
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:
Kuvatakse alamklassist
Trükkimine superklassist
31) Kas String on java andmetüüp?
String ei ole java primitiivne andmetüüp. Kui string luuakse javas, on see tegelikult objekt Java.Lang.String klass, mis luuakse. Pärast selle stringobjekti loomist saab stringiobjektil kasutada kõiki String klassi sisseehitatud meetodeid.
32) Kui palju stringobjekte luuakse järgmises näites?
String s1="I am Java Expert"; String s2="I am C Expert"; String s3="I am Java Expert";
Ülaltoodud näites kaks objekti JavaLuuakse .Lang.String klass. s1 ja s3 on viited samale objektile.
33) Miks Strings sisse? Java nimetatakse muutumatuks?
Javas nimetatakse stringiobjekte muutumatuks, kuna kui stringile on väärtus määratud, ei saa seda enam muuta ja kui seda muudetakse, luuakse uus objekt.
Allolevas näites viitab viide 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";
34) Mis vahe on massiivil ja vektoril?
Massiiv rühmitab sama primitiivset tüüpi andmeid ja on olemuselt staatiline, samas kui vektorid on olemuselt dünaamilised ja võivad sisaldada erinevat tüüpi andmeid.
35) Mis on mitme keermestamine?
Mitme lõimega sidumine on programmeerimiskontseptsioon mitme ülesande samaaegseks käitamiseks ühes programmis. Lõimed jagavad sama protsessi pinu ja töötavad paralleelselt. See aitab parandada mis tahes programmi jõudlust.
36) Miks Runnable Interface'i kasutatakse Java?
Käitatavat liidest kasutatakse Javas mitme keermega rakenduste rakendamiseks. Java.Lang.Runnable liides on rakendatud klassi poolt mitme keermestamise toetamiseks.
37) Millised on kaks võimalust mitme lõime sisseviimiseks? Java?
Mitme keermega rakendusi saab arendada Java kasutades ühte kahest järgmisest metoodikast:
1) Kasutades Java.Lang.Runnable Interface. Klassid rakendavad seda liidest mitme keermestamise võimaldamiseks. Selles liideses on meetod Run(), mis on rakendatud.
2) Kirjutades klassi, mis laiendab Java.Lang.Keermeklass.
38) Kui andmetes on vaja palju muudatusi, siis millist neist tuleks eelistada? String või stringBuffer?
Alates StringistBuffers on olemuselt dünaamilised ja me saame stringi väärtusi muutaBuffer objektide puhul, erinevalt Stringist, mis on muutumatu, on Stringi kasutamine alati hea valikBuffer kui andmeid muudetakse liiga palju. Kui kasutame sellisel juhul Stringi, luuakse iga andmemuudatuse jaoks uus String objekt, mis on lisakulu.
39) Mis on Breaki kasutamise eesmärk igal Switch Statementi puhul?
Katkestust kasutatakse lülitis pärast iga juhtumit (v.a viimane) nii, et kood katkeb pärast kehtivat juhtumit ja ei liiguks ka menetlusjuhtumites.
Kui pausi pärast iga juhtumit ei kasutata, täidetakse ka kõik juhtumid pärast kehtivat juhtumit, mille tulemuseks on valed tulemused.
40) Kuidas toimub prügivedu Java?
Javas, kui objektile enam ei viidata, prügivedu toimub ja objekt hävib automaatselt. Automaatse prügikorjamise jaoks kutsub java kas meetodit System.gc() või Runtime.gc() meetodit.
41) Kuidas saame mis tahes koodi käivitada isegi enne põhimeetodit?
Kui tahame käivitada mis tahes avaldusi isegi enne objektide loomist klassi laadimise ajal, saame klassis kasutada staatilist koodiplokki. Kõik selles staatilises koodiplokis olevad avaldused käivitatakse üks kord klassi laadimise ajal, isegi enne põhimeetodis objektide loomist.
42) Kas klass võib olla samaaegselt superklass ja alamklass? Too näide.
Kui kasutatakse pärimishierarhiat, võib klass olla samal ajal teise klassi jaoks superklass ja teise klassi alamklass.
Allolevas näites on mandriklass maailmaklassi alamklass ja maaklassi superklass.
public class world {
..........
}
public class continenet extends world {
............
}
public class country extends continent {
......................
}
43) Kuidas luuakse klassi objekte, kui klassis pole defineeritud ühtegi konstruktorit?
Isegi kui java klassis pole määratletud selgesõnalist konstruktorit, luuakse objekte edukalt, kuna vaikekonstruktorit kasutatakse kaudselt objektide loomiseks. Sellel konstruktoril pole parameetreid.
44) Kuidas saame mitme lõimega töötlemisel tagada, et ressurssi ei kasutaks korraga mitu lõime?
Mitme lõimega töötlemisel saab juurdepääsu ressurssidele, mis on jagatud mitme lõime vahel, juhtida sünkroonimise kontseptsiooni abil. Kasutades sünkroniseeritud märksõna, saame tagada, et jagatud ressurssi saab korraga kasutada ainult üks lõim ja teised saavad ressursi üle kontrolli alles siis, kui see on vabanenud teisest seda kasutavast lõimest.
45) Kas klassi konstruktorit saab objekti puhul kutsuda mitu korda?
Konstruktor kutsutakse automaatselt välja, kui loome objekti uue märksõna abil. Seda kutsutakse objekti loomise ajal objekti jaoks ainult üks kord ja seetõttu ei saa me pärast selle loomist objekti jaoks uuesti konstruktorit kutsuda.
46) On kaks klassi nimega klass A ja klass B. Mõlemad klassid on ühes paketis. Kas klassi A eraliikmele pääseb juurde klassi B objekt?
Klassi privaatsed liikmed ei ole juurdepääsetavad väljaspool selle klassi ulatust ja ükski teine klass, isegi samas paketis, ei pääse neile juurde.
47) Kas sama nimega klassis võib olla kaks meetodit?
Me saame määratleda kaks meetodit klassis sama nimega, kuid erineva arvu/tüüpi parameetritega. See, milline meetod välja kutsuda, sõltub edastatud 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");
}
}
48) Kuidas saame teha Java-objektist koopia?
Kloonimise kontseptsiooni saame kasutada objekti koopia loomiseks. Klooni kasutades loome koopiad objekti tegeliku olekuga.
Clone () on kloonitatava liidese meetod ja seetõttu tuleb objektide koopiate tegemiseks rakendada kloonitavat liidest.
49) Mis kasu on pärandi kasutamisest?
Pärimise kasutamise peamine eelis on koodi korduvkasutatavus, kuna pärimine võimaldab alamklassidel oma superklassi koodi uuesti kasutada. Polümorfism (laiendatavus) on veel üks suur eelis, mis võimaldab juurutada uusi funktsioone ilma olemasolevaid tuletatud klasse mõjutamata.
50) Mis on klassi muutujate ja meetodite vaikejuurdepääsu spetsifikaat?
Muutujate ja meetodi vaikejuurdepääsuspetsifikaat on paketikaitsega, st muutujad ja klass on saadaval kõigile teistele klassidele, kuid samas paketis, mitte väljaspool paketti.
51) Tooge näide osutite kasutamisest Java klass.
Viiteid sees pole Java. Nii et me ei saa kasutada viitade mõistet Java.
52) Kuidas saab klassi pärimist piirata nii, et sealt ei saaks pärida ühtegi klassi?
Kui tahame, et klass ei laieneks ühegi klassi võrra, võime kasutada märksõna Lõplik klassi nimega.
Järgmises näites on Stone klass lõplik ja seda ei saa pikendada
public Final Class Stone {
// Class methods and Variables
}
53) Mis on kaitstud juurdepääsu spetsifikaadi juurdepääsu ulatus?
Kui meetod või muutuja deklareeritakse kaitstud juurdepääsu spetsifikaatoriga, muutub see juurdepääsetavaks samas klassis, sama paketi mis tahes muus klassis ja alamklassis.
| Muutma | klass | Pakend | Alamklass | Maailm |
|---|---|---|---|---|
| avalik | Y | Y | Y | Y |
| kaitstud | Y | Y | Y | N |
| modifikaatorit pole | Y | Y | N | N |
| era- | Y | N | N | N |
54) Mis vahe on virnal ja järjekorral?
Nii virna kui ka järjekorda kasutatakse andmete kogumise kohahoidjana. Peamine erinevus virna ja järjekorra vahel on see, et virn põhineb põhimõttel Last in First out (LIFO), järjekord aga FIFO (First In First Out) põhimõttel.
55) Kuidas saame javas keelata muutujate serialiseerimise?
Kui tahame, et klassi teatud muutujaid ei serialiseeritaks, võime kasutada märksõna mööduv neid deklareerides. Näiteks allolev muutuja trans_var on mööduv muutuja ja seda ei saa järjestada:
public class transientExample {
private transient trans_var;
// rest of the code
}
56) Kuidas kasutada primitiivseid andmetüüpe objektidena?
Primitiivseid andmetüüpe, nagu int, saab käsitleda objektidena nende vastavate ümbrisklasside abil. Näiteks täisarv on primitiivse andmetüübi int ümbrisklass. Me saame ümbrisklassile rakendada erinevaid meetodeid, nagu igale teisele objektile.
57) Milliseid erandeid kompileerimise ajal tabatakse?
Kontrollitud erandeid saab tabada programmi koostamise ajal. Kontrollitud erandite käsitlemiseks tuleb koodi edukaks kompileerimiseks kasutada koodis try catch plokki.
58) Kirjeldage niidi erinevaid olekuid.
Lõng sisse Java 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 töörežiimis.
- Ootamine: lõim, mis ootab teatud ressursside vabastamiseks teist lõime, on ooteolekus.
- Surnud: lõng, mis on pärast täitmist surnud, on surnud.
59) Kas me saame kasutada klassi vaikekonstruktorit, isegi kui eksplitsiitne konstruktor on defineeritud?
Java pakub vaikimisi argumentideta konstruktorit, kui a-s pole defineeritud selgesõnalist konstruktorit Java klass. Kui aga on määratletud selgesõnaline konstrukt, ei saa vaikekonstruktorit välja kutsuda ja arendaja saab kasutada ainult klassis määratletud konstruktoreid.
60) Kas me saame meetodi alistada, kasutades sama meetodi nime ja argumente, kuid erinevaid tagastustüüpe?
Meetodi alistamise põhitingimus on, et meetodi nimi, argumendid ja tagastustüüp peavad olema täpselt samad, mis alistatava meetodi oma. Seega ei alista teistsuguse tagastustüübi kasutamine meetodit.
61) Mis on järgmise koodilõigu väljund?
public class operatorExample {
public static void main(String args[]) {
int x = 4;
system.out.println(x++);
}
}
Sel juhul kasutatakse operaatorit postfix ++, mis esmalt tagastab väärtuse ja seejärel suurendab. Seega on selle väljund 4.
61) Inimene ütleb, et ta koostas Java klassi edukalt, ilma et tal oleks isegi põhimeetodit? Kas see on võimalik?
Peamine meetod on sisenemispunkt Java klassi ja on siiski vajalik programmi täitmiseks; klass kompileeritakse edukalt isegi siis, kui sellel pole põhimeetodit. Siiski ei saa seda käivitada.
62) Kas saab nimetada mittestaatilist meetodit seestpoolt staatiliseks meetodiks?
Mittestaatilised meetodid kuuluvad klassi objektidele ja neil on objekti tasemel ulatus ning mittestaatiliste meetodite kutsumiseks staatilisest plokist (nagu staatilisest põhimeetodist), tuleb kõigepealt luua klassi objekt. Seejärel saab neid meetodeid kasutada objektiviite abil.
63) Millised on kaks keskkonnamuutujat, mis tuleb mis tahes käivitamiseks määrata Java programmid?
Java programme saab masinas käivitada ainult siis, kui järgmised kaks keskkonnamuutujat on õigesti seadistatud:
- PATH muutuja
- CLASSPATH muutuja
64) Kas muutujaid saab kasutada Java ilma initsialiseerimiseta?
In Java, kui koodis kasutatakse muutujat ilma eelneva initsialiseerimiseta kehtiva väärtusega, programm ei kompileeri ja annab vea, kuna muutujatele ei omistata vaikeväärtust Java.
65) Kas klassi saab sisse Java pärida rohkem kui ühest klassist?
In Java, saab klassi tuletada ainult ühest klassist, mitte mitmest klassist. Mitut pärandit ei toetata Java.
66) Kas konstruktori nimi võib olla erinev klassi nimest Java?
Konstruktor sisse Java peab olema sama nimega kui klassi nimi ja kui nimi on erinev, siis see ei toimi konstruktorina ja kompilaator peab seda tavaliseks meetodiks.
67) Mis on Round(3.7) ja Ceil(3.7) väljund?
Round(3.7) tagastab 4 ja Ceil(3.7) 4.
68) Kas saame kasutada goto in Java konkreetsele reale minna?
In Java, puudub märksõna goto ja java ei toeta seda kindlale märgistatud reale minemise funktsiooni.
69) Kas surnud lõime saab uuesti alustada?
Javas ei saa surnud lõime uuesti käivitada. Surnud lõime ei saa kuidagi taaskäivitada.
70) Kas järgmine klassideklaratsioon on õige?
public abstract final class testClass {
// Class methods and variables
}
Vastus: Ülaltoodud klassideklaratsioon on abs-väärtusena vale.tract-klassi ei saa lõplikuks kuulutada.
71) Kas a käivitamiseks on igas masinas vaja JDK-d? Java programmi?
JDK on arenduskomplekt Java ja see on vajalik ainult arendamiseks ja a käivitamiseks Java programmi masinas, JDK pole vajalik. Nõutav on ainult JRE.
72) Mis vahe on võrdusmeetodil tehtud võrdlemisel ja == operaatoril?
In JavaMeetodit , equals() kasutatakse kahe stringiobjekti sisu võrdlemiseks ja tagastab tõene, kui neil kahel on sama väärtus, samas kui operaator == võrdleb kahe stringiobjekti viiteid.
Järgmises näites tagastab equals() tõene, kuna kahel stringiobjektil on samad väärtused. Operaator == tagastab aga vale, kuna mõlemad stringiobjektid 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 true
System.out.println("str1 and str2 are equal in terms of values");
}
if (str1 == str2) {
//This condition is true
System.out.println("Both strings are referencing same object");
} else
{
// This condition is NOT true
System.out.println("Both strings are referencing different objects");
}
}
}
73) Kas meetodit on võimalik defineerida Java klassis, kuid pakkuda selle rakendamist mõne muu keele, näiteks C, koodis?
Jah, me saame seda teha kohalike meetodite abil. Looduslikul meetodil põhineva arenduse korral määratleme avalikud staatilised meetodid oma Java klassis ilma selle rakendamiseta ja seejärel tehakse rakendamine teises keeles, näiteks C, eraldi.
74) Kuidas on määratletud destruktorid Java?
In Java, klassis pole defineerijaid, kuna seda pole vaja teha. Java sellel on oma prügikoristusmehhanism, mis teeb selle töö automaatselt, hävitades objektid, kui neile enam ei viidata.
Java Intervjuu küsimused ja vastused üle 5-aastase kogemuse kohta
75) Kas muutuja võib olla korraga lokaalne ja staatiline?
Muutuja ei saa olla samaaegselt nii staatiline kui ka lokaalne. Kohaliku muutuja staatiliseks määramine annab kompileerimisvea.
76) Kas liideses võib olla staatilisi meetodeid?
Staatilisi meetodeid ei saa üheski klassis üle kirjutada, samas kui kõik liidese meetodid on vaikimisi abstract ja need peaksid olema rakendatud klassides, mis liidest rakendavad. Seega pole mõtet staatiliste meetodite omamisel liideses Java.
77) Kas liidest realiseerivas klassis saame muuta mis tahes liideses defineeritud muutuja väärtust?
Ei, me ei saa rakendusklassis muuta ühegi liidese muutuja väärtust, kuna kõik liideses defineeritud muutujad on vaikimisi avalikud, staatilised ning lõplikud ja lõplikud muutujad on nagu konstandid, mida ei saa hiljem muuta.
78) Kas on õige öelda, et prügikoristusfunktsiooni tõttu sisse Java, Java programmi mälu ei tühjene kunagi?
Kuigi automaatne prügivedu on ette nähtud Java, see ei taga, et a Java programm ei kustu mälust, kuna on võimalik, et selle loomine Java objektide töötlemine toimub kiiremini kui prügikoristus, mille tulemusel täitub kõik saadaolevad mäluressursid.
Seega aitab prügikoristus vähendada võimalust, et programmi mälu tühjeneb, kuid see ei taga seda.
79) Kas meil võib olla muud tagastustüüpi peale põhimeetodi tühisuse?
No, Java klassi põhimeetodil võib programmi edukaks käivitamiseks olla ainult tühine tagastustüüp.
Sellegipoolest, kui peate põhimeetodi lõpetamisel kindlasti tagastama väärtuse at , võite kasutada faili System.exit(int status)
80) Soovin objektile uuesti jõuda ja seda kasutada, kui see on prügi ära korjatud. Kuidas see võimalik on?
Kui prügikorjaja on objekti hävitanud, ei ole seda enam kuhja peal ja sellele ei saa enam juurde pääseda. Sellele ei saa uuesti viidata.
81) sisse Java lõime programmeerimine, milline meetod on kõigi lõimede jaoks kohustuslik rakendamine?
Run() on käivitatava liidese meetod, mida kõik lõimed peavad rakendama.
82) Ma tahan juhtida andmebaasiühendusi oma programmis ja soovin, et ainult üks lõim saaks korraga luua andmebaasiühenduse. Kuidas seda loogikat rakendada?
Vastus: Seda saab rakendada sünkroonimise kontseptsiooni abil. Andmebaasiga seotud koodi saab paigutada meetodisse, mis hs sünkroonitud märksõna, nii et sellele pääseb juurde korraga ainult üks lõim.
83) Kuidas saab programmeerija käsitsi erandit teha?
Koodiplokis erandi tegemiseks käsitsi, viskama märksõna kasutatakse. Seejärel püütakse see erand kinni ja käsitletakse püüdmisplokis.
public void topMethod() {
try {
excMethod();
} catch (ManualException e) {}
}
public void excMethod {
String name = null;
if (name == null) {
throw (new ManualException("Exception thrown manually ");
}
}
84) Ma tahan, et minu klassi arendataks nii, et ükski teine klass (isegi tuletatud klass) ei saaks oma objekte luua. Kuidas ma saan seda teha?
Kui kuulutame klassi konstrueerija privaatseks, ei ole see juurdepääs ühelegi teisele klassile ja seega ei saa ükski teine klass seda instantseerida ja tema objekti moodustamine piirdub ainult tema endaga.
85) Kuidas objekte hoitakse Java?
Javas saab iga objekt loomisel hunnikust mäluruumi. Kui prügikorjaja hävitab objekti, jaotatakse sellele hunnikust eraldatud ruum ümber hunnikusse ja see muutub kättesaadavaks uute objektide jaoks.
86) Kuidas leiame kuhja peal oleva objekti tegeliku suuruse?
Javas ei ole võimalik hunnikus oleva objekti täpset suurust teada saada.
87) Millisele järgmistest klassidest on eraldatud rohkem mälu?
Klass A: kolm meetodit, neli muutujat, objekti pole
Klass B: viis meetodit, kolm muutujat, objekti pole
Mälu ei eraldata enne objektide loomist. Kuna mõlema klassi jaoks pole objekte loodud, ei eraldata ühegi klassi jaoks hunnikule mälu.
88) Mis juhtub, kui programmis erandit ei käsitleta?
Kui programmis ei käsitleta erandit proovivõtuplokkidega, siis programm katkestatakse ja pärast erandi viskamise põhjustanud avaldust ei täideta ühtegi lauset.
89) Mul on klassis määratletud mitu konstruktorit. Kas on võimalik kutsuda konstruktorit teise konstruktori kehast?
Kui klassil on mitu konstruktorit, on võimalik kutsuda ühte konstruktorit teise konstruktori põhiosast see ().
90) Mida tähendab anonüümne klass?
Anonüümne klass on klass, mis on uue märksõna abil määratletud ilma ühe koodirea nimeta.
Näiteks allpool olevas koodis oleme määratlenud anonüümse klassi ühes koodireal:
public java.util.Enumeration testMethod()
{
return new java.util.Enumeration()
{
@Override
public boolean hasMoreElements()
{
// TODO Auto-generated method stub
return false;
}
@Override
public Object nextElement()
{
// TODO Auto-generated method stub
return null;
}
}
91) Kas on võimalik massiivi suurust pärast selle deklareerimist kuidagi suurendada?
Massiivid on staatilised ja kui oleme selle suuruse määranud, ei saa me seda muuta. Kui soovime kasutada selliseid kogusid, kus võib olla vaja muuta suurust (üksuste arvu), peaksime eelistama vektorit massiivi asemel.
92) Kui rakenduses on mitu klassi, siis kas on õige, et põhimeetod on rohkem kui ühes klassis?
Kui Java-rakenduses on põhimeetod rohkem kui ühes klassis, ei põhjusta see probleeme, kuna ühegi rakenduse sisenemispunkt on konkreetne klass ja kood algab ainult selle konkreetse klassi põhimeetodist.
93) Soovin säilitada objektide andmeid hilisemaks kasutamiseks. Milline on selleks parim viis?
Parim viis andmete säilitamiseks edaspidiseks kasutamiseks on kasutada serialiseerimise kontseptsiooni.
94) Milles on kohalik klass? Java?
In Java, kui me määratleme uue klassi teatud ploki sees, nimetatakse seda kohalikuks klassiks. Sellisel klassil on kohalik ulatus ja see ei ole kasutatav väljaspool plokki, kus see on määratletud.
95) String ja StringBuffer mõlemad esindavad stringobjekte. Kas saame võrrelda Stringi ja StringiBuffer in Java?
Kuigi String ja StringBuffer mõlemad esindavad String-objekte, me ei saa neid omavahel võrrelda ja kui proovime neid võrrelda, saame vea.
96) Millise API pakub Java objektide hulgaga tehtavate toimingute jaoks?
Java pakub Collection API-t, mis pakub palju kasulikke meetodeid, mida saab rakendada objektide komplektile. Mõned Collection API pakutavad olulised klassid hõlmavad ArrayList, HashMap, TreeSet ja TreeMap.
97) Kas tüübivalamisega saab Boole'i tüübile üle kanda mis tahes muud tüüpi?
Ei, me ei saa Boole'i andmetüübile üle kanda ühtegi teist primitiivset tüüpi ega teise primitiivsesse andmetüüpi.
98) Kas alistamisel saab meetodite jaoks kasutada erinevaid tagastustüüpe?
Põhinõue meetodi alistamise kohta Java on see, et tühistatud meetodil peaks olema sama nimi ja parameetrid.Kuid meetodi saab tühistada erineva tagastustüübiga seni, kuni uus tagastustüüp pikendab originaali.
Näiteks meetod tagastab viitetüübi.
Class B extends A {
A method(int x) {
//original method
}
B method(int x) {
//overridden method
}
}
99) Mis on kõigi erandklasside baasklass?
In Java, Java.lang.Throwable on kõigi erandklasside superklass ja kõik erandklassid on tuletatud sellest baasklassist.
100) Milline on konstruktorite kutsumise järjekord pärimisel?
Pärimise korral, kui luuakse tuletatud klassi uus objekt, kutsutakse esmalt välja superklassi konstruktor ja seejärel tuletatud klassi konstruktor.
Valmistuge tööintervjuuks!!! Mine läbi Java juhendaja et olla paremini ette valmistatud.
See on üksikasjalik Java Proovitesti viktoriin aitab teil kahtlustest vabaneda Java intervjuu küsimusi ja aitab teil ka intervjuu lõpetada.
Need Java ja Java 8 intervjuu küsimust aitab ka teie viva (suu kaudu)
