top 50 core java interview questions
Najpogostejša vprašanja in odgovori z intervjuji za Java s primeri:
V tej vadnici smo zajeli skoraj 50+ pomembnih osnovnih vprašanj o intervjuju za Javo za bolj sveže in izkušene kandidate.
Ta objava o vprašanjih JAVA Interview je pripravljena, da vam pomaga razumeti osnovne koncepte programiranja Java za namene intervjujev. Tu so razloženi vsi pomembni koncepti JAVA s primeri za lažje razumevanje.
Ta vadnica zajema teme JAVA, kot so osnovne definicije Java, koncepti OOP, specifikatorji dostopa, zbirke, izjeme, niti, serializacija itd., S primeri, s katerimi se boste popolnoma pripravili da se samozavestno sooči s katerim koli intervjujem JAVA.
Najbolj priljubljena vprašanja in odgovori v zvezi z intervjuji za Java
Spodaj je izčrpen seznam najpomembnejših in najpogosteje zastavljenih osnovnih in naprednih vprašanj za programiranje Java s podrobnimi odgovori.
V # 1) Kaj je JAVA?
Odgovor: Java je programski jezik na visoki ravni in je neodvisen od platforme.
Java je zbirka predmetov. Razvil ga je Sun Microsystems. Obstaja veliko aplikacij, spletnih strani in iger, ki so razvite z uporabo Jave.
V # 2) Katere so značilnosti JAVA?
Odgovor: Značilnosti Java so naslednje:
- OOP koncepti
- Objektno usmerjen
- Dedovanje
- Kapsulacija
- Polimorfizem
- Abstrakcija
- Neodvisno od platforme: Posamezen program deluje na različnih platformah brez kakršnih koli sprememb.
- Visokozmogljivo: JIT (Just In Time compiler) omogoča visoko zmogljivost v Javi. JIT pretvori bajtno kodo v strojni jezik in nato JVM začne izvajanje.
- Večnitni: Tok izvedbe je znan kot nit. JVM ustvari nit, ki se imenuje glavna nit. Uporabnik lahko ustvari več niti z razširitvijo razreda niti ali z izvajanjem vmesnika Runnable.
V # 3) Kako Java omogoča visoko zmogljivost?
Odgovor: Java uporablja prevajalnik Just In Time, da omogoči visoko zmogljivost. Uporablja se za pretvorbo navodil v bajtode.
V # 4) Poimenujte Java IDE?
Odgovor: Eclipse in NetBeans sta IDE za JAVA.
V # 5) Kaj mislite s konstruktorjem?
Odgovor: Konstruktor lahko podrobno razložimo z navedenimi točkami:
- Ko se v programu ustvari nov objekt, se prikliče konstruktor, ki ustreza razredu.
- Konstruktor je metoda, ki ima enako ime kot ime razreda.
- Če uporabnik implicitno ne ustvari konstruktorja, bo ustvarjen privzeti konstruktor.
- Konstruktor je lahko preobremenjen.
- Če je uporabnik ustvaril konstruktor s parametrom, bi moral izrecno ustvariti drugega konstruktorja brez parametra.
V # 6) Kaj pomeni lokalna spremenljivka in spremenljivka Instance?
Odgovor:
Lokalne spremenljivke so definirani v metodi in obsegu spremenljivk, ki obstajajo znotraj same metode.
Spremenljivka primerka je definiran znotraj razreda in zunaj metode, obseg spremenljivk pa obstaja v celotnem razredu.
V # 7) Kaj je razred?
Odgovor: Vse kode Java so določene v razredu. Ima spremenljivke in metode.
Spremenljivke so atributi, ki določajo stanje razreda.
Metode so kraj, kjer je treba narediti natančno poslovno logiko. Vsebuje nabor izjav (ali) navodil za izpolnitev določene zahteve.
Primer:
public class Addition{ //Class name declaration int a = 5; //Variable declaration int b= 5; public void add(){ //Method declaration int c = a+b; } }
V # 8) Kaj je objekt?
Odgovor: Primerek razreda se imenuje objekt. Predmet ima stanje in vedenje.
Kadarkoli JVM prebere ključno besedo “new ()”, bo ustvaril primerek tega razreda.
Primer:
public class Addition{ public static void main(String() args){ Addion add = new Addition();//Object creation } }
Zgornja koda ustvari objekt za razred Addition.
V # 9) Kakšni so koncepti OOP?
Odgovor: Koncepti OOP vključujejo:
- Dedovanje
- Kapsulacija
- Polimorfizem
- Abstrakcija
- Vmesnik
Predlagano branje = >> Najpogostejša vprašanja o intervjujih za OOP
V # 10) Kaj je dedovanje?
Odgovor: Dedovanje pomeni, da se lahko en razred razširi na drugega. Tako je mogoče kode ponovno uporabiti iz enega razreda v drug razred. Obstoječi razred je znan kot razred Super, izpeljani razred pa kot podrazred.
vprašanja in odgovori na intervjuje za omrežje cisco pdf
Primer:
Super class: public class Manupulation(){ } Sub class: public class Addition extends Manipulation(){ }
Dedovanje velja samo za javnost in zaščitene člane. Zasebnih članov ni mogoče podedovati.
V # 11) Kaj je kapsulacija?
Odgovor: Namen kapsulacije:
- Kodo ščiti pred drugimi.
- Vzdrževanje kode.
Primer:
'A' razglašamo za celoštevilčno spremenljivko in ne sme biti negativna.
public class Addition(){ int a=5; }
Če nekdo spremeni natančno spremenljivko kot » a = -5 ' potem je slabo.
Da bi težavo rešili, moramo slediti spodnjim korakom:
- Spremenljivko lahko naredimo zasebno ali zaščiteno.
- Uporabite javne metode dostopa, kot sta set in get.
Tako da je zgornjo kodo mogoče spremeniti kot:
public class Addition(){ private int a = 5; //Here the variable is marked as private }
Spodnja koda prikazuje getter in setter.
Med nastavitvijo spremenljivke je mogoče zagotoviti pogoje.
get A(){ } set A(int a){ if(a>0){// Here condition is applied ......... } }
Za enkapsulacijo moramo vse spremenljivke primerka narediti zasebne in za te spremenljivke ustvariti setter in getter. Kar pa bo druge prisililo, da namesto neposrednega dostopa do podatkov pokličejo ustanovitelje.
V # 12) Kaj je polimorfizem?
Odgovor: Polimorfizem pomeni številne oblike.
Posamezen objekt se lahko nanaša na superrazred ali podrazred, odvisno od referenčne vrste, ki se imenuje polimorfizem.
Primer:
Public class Manipulation(){ //Super class public void add(){ } } public class Addition extends Manipulation(){ // Sub class public void add(){ } public static void main(String args()){ Manipulation addition = new Addition();//Manipulation is reference type and Addition is reference type addition.add(); } }
Z uporabo referenčne vrste Manipulation lahko imenujemo razred Addition 'add ()'. Ta sposobnost je znana kot polimorfizem. Polimorfizem se uporablja za preglasitev in ne za preobremenitev .
V # 13) Kaj pomeni preglasitev metode?
Odgovor: Preglasitev metode se zgodi, če metoda podrazreda izpolnjuje spodnje pogoje z metodo Super-class:
- Ime metode mora biti enako
- Argument bi moral biti enak
- Vrnitev mora biti tudi enaka
Ključna prednost razveljavitve je, da lahko podrazred nudi nekatere posebne informacije o tem podrazredu kot nadrazred.
Primer:
public class Manipulation{ //Super class public void add(){ ……………… } } Public class Addition extends Manipulation(){ Public void add(){ ……….. } Public static void main(String args()){ Manipulation addition = new Addition(); //Polimorphism is applied addition.add(); // It calls the Sub class add() method } }
add.add () metoda pokliče metodo add () v podrazredu in ne nadrejeni razred. Torej preglasi metodo Super-class in je znan kot Method Overriding.
V # 14) Kaj pomeni preobremenitev?
Odgovor: Preobremenitev metode se zgodi za različne razrede ali znotraj istega razreda.
Za preobremenitev metode mora metoda podrazreda izpolnjevati spodnje pogoje z metodami Super-class (ali) v istem razredu samem:
- Isto ime metode
- Različne vrste argumentov
- Obstajajo lahko različne vrste vračila
Primer:
public class Manipulation{ //Super class public void add(String name){ //String parameter ……………… } } Public class Addition extends Manipulation(){ Public void add(){//No Parameter ……….. } Public void add(int a){ //integer parameter } Public static void main(String args()){ Addition addition = new Addition(); addition.add(); } }
Tu ima metoda add () drugačne parametre, saj je razred Addition preobremenjen v istem razredu kot pri super-razredu.
Opomba: Polimorfizem ni primeren za preobremenitev metode.
V # 15) Kaj pomeni vmesnik?
Odgovor: V javi ni mogoče doseči več dediščin. Za premagovanje te težave je uveden koncept vmesnika.
Vmesnik je predloga, ki vsebuje samo deklaracije metode, ne pa tudi izvedbe metode.
Primer:
Public abstract interface IManupulation{ //Interface declaration Public abstract void add();//method declaration public abstract void subtract(); }
- Vse metode v vmesniku so notranje javna abstraktna praznina .
- Vse spremenljivke v vmesniku so notranje javni statični finale to je konstante.
- Razredi lahko izvajajo vmesnik in se ne razširijo.
- Razred, ki izvaja vmesnik, mora zagotoviti izvedbo za vse metode, deklarirane v vmesniku.
public class Manupulation implements IManupulation{ //Manupulation class uses the interface Public void add(){ …………… } Public void subtract(){ ……………. } }
V # 16) Kaj pomeni razred abstrakta?
Odgovor: Razred Abstract lahko ustvarimo z uporabo ključne besede “Abstract” pred imenom razreda. Abstraktni razred ima lahko tako abstraktne kot tudi ne-abstraktne metode, ki so konkreten razred.
Povzetek metode:
Metoda, ki ima samo deklaracijo in ne izvedbe, se imenuje abstraktna metoda in ima ključno besedo, imenovano 'abstraktna'. Izjave se končajo s podpičjem.
Primer:
public abstract class Manupulation{ public abstract void add();//Abstract method declaration Public void subtract(){ } }
- Abstraktni razred ima lahko tudi abstraktno metodo.
- Konkretni podrazred, ki razširja razred Povzetek, bi moral zagotoviti izvajanje abstraktnih metod.
V # 17) Razlika med matriko in seznamom matrik.
Odgovor: Razliko med matriko in seznamom matrik lahko razberemo iz spodnje tabele:
Matrika | Seznam matrike |
---|---|
Velikost je treba navesti v času deklaracije polja. Niz () name = nov niz (2) | Velikost morda ni potrebna. Dinamično spreminja velikost. ArrayList name = novo ArrayList |
Za vnos predmeta v matriko moramo določiti indeks. ime (1) = “knjiga” | Kazalo ni potrebno. name.add (“knjiga”) |
Polje ni parametrizirano | ArrayList v javi 5.0 so parametrizirani. Npr .: Ta kotni oklepaj je parameter tipa, kar pomeni seznam nizov. |
V # 18) Razlika med String, String Builder in String Buffer.
Odgovor:
Vrvica: Spremenljivke niza so shranjene v 'konstantnem nizu nizov'. Ko referenca na niz spremeni staro vrednost, ki obstaja v 'konstantnem področju nizov', je ni več mogoče izbrisati.
Primer:
Ime niza = “knjiga”;
Stalno področje nizov
.
Če se je imenska vrednost spremenila iz 'book' v 'pen'.
Stalno področje nizov
Nato starejša vrednost ostane v konstantnem področju nizov.
String Buffer:
- Tu se vrednosti nizov shranijo v sklad. Če se vrednosti spremenijo, nova vrednost nadomesti starejšo vrednost.
- Niz vmesnega pomnilnika je sinhroniziran, kar je varno pred nitmi.
- Zmogljivost je počasnejša kot String Builder.
Primer:
String Buffer name = ”book”;
Ko je imenska vrednost spremenjena v 'pero', se v knjigi izbriše 'knjiga'.
String Builder:
To je enako kot String Buffer, razen String Builderja, ki ni varno navojen in ni sinhroniziran. Očitno je torej zmogljivost hitra.
V # 19) Pojasnite specifičnosti javnega in zasebnega dostopa.
Odgovor: Metode in spremenljivke primerka so znane kot člani.
Javno:
Javni člani so vidni v istem paketu kot tudi zunanji paket, ki je namenjen drugim paketom.
Javni člani razreda A so vidni tako za razred B (isti paket) kot tudi za razred C (različni paketi).
Zasebno:
Zasebni člani so vidni samo v istem razredu in ne za ostale razrede v istem paketu, pa tudi za razrede v zunanjih paketih.
Zasebni člani razreda A so vidni samo v tem razredu. Neviden je tako za razred B kot tudi za razred C.
V # 20) Razlika med privzetim in zaščitenim dostopom.
Odgovor:
Privzeto: Metode in spremenljivke, razglašene v razredu brez kakršnih koli specifikatorjev dostopa, se imenujejo privzete.
Privzeti člani v razredu A so vidni drugim razredom, ki so znotraj paketa, in nevidni razredom, ki so zunaj paketa.
Člani razreda A so torej vidni razredu B in nevidni razredu C.
Zaščiteno:
.
Zaščiteno je enako kot privzeto, če pa se razred razširi, je viden, tudi če je zunaj paketa.
Člani razreda A so vidni razredu B, ker je v paketu. Za razred C je neviden, če pa razred C razširja razred A, so člani vidni za razred C, tudi če je zunaj paketa.
V # 21) Razlika med HashMapom in HashTableom.
Odgovor: Razliko med HashMapom in HashTable si lahko ogledate spodaj:
HashMap | HashTable |
---|---|
Metode niso sinhronizirane | Ključne metode so sinhronizirane |
Ne varnost niti | Varnost niti |
Iterator se uporablja za ponavljanje vrednosti | Števec se uporablja za ponavljanje vrednosti |
Omogoča en null ključ in več ničelnih vrednosti | Ne dovoli ničesar, kar je nično |
Zmogljivost je visoka kot HashTable | Zmogljivost je počasna |
V # 22) Razlika med HashSet in TreeSet.
Odgovor: Razliko med HashSet in TreeSet lahko vidite spodaj:
HashSet | TreeSet |
---|---|
Vstavljeni elementi so v naključnem vrstnem redu | Vzdržuje elemente v razvrščenem vrstnem redu |
Lahko shrani ničelne predmete | Ničelnih predmetov ni bilo mogoče shraniti |
Zmogljivost je hitra | Zmogljivost je počasna |
V # 23) Razlika med abstraktnim razredom in vmesnikom.
Odgovor: Razlike med abstraktnim razredom in vmesnikom so naslednje:
Povzetek:
- Abstraktni razredi imajo privzeti konstruktor in se pokliče vsakič, ko se ustvari konkretni podrazred.
- Vsebuje abstraktne metode in ne-abstraktne metode.
- Razred, ki razširja razred Povzetek, ne bi smel zahtevati izvajanja vseh metod, v konkretnem podrazredu je treba implementirati samo metode Povzetek.
- Abstraktni razred vsebuje spremenljivke primerkov.
Vmesnik:
- Nima nobenega konstruktorja in ga ni bilo mogoče ustvariti.
- Navesti je treba samo abstraktno metodo.
- Razredi, ki izvajajo vmesnik, bi morali zagotoviti izvajanje vseh metod.
- Vmesnik vsebuje samo konstante.
Vprašanje # 24) Kakšen je pomen zbirk v Javi?
Odgovor: Zbiranje je ogrodje, ki je namenjeno shranjevanju predmetov in manipulaciji z dizajnom za shranjevanje predmetov.
Zbirke se uporabljajo za izvajanje naslednjih operacij:
- Iskanje
- Razvrščanje
- Manipulacija
- Vstavitev
- Izbris
Skupina predmetov je znana kot zbirke. Vsi razredi in vmesniki za zbiranje so na voljo v paketu Java util.
V # 25) Kateri so vsi razredi in vmesniki, ki so na voljo v zbirkah?
Odgovor: Spodaj so razredi in vmesniki, ki so na voljo v zbirkah:
Vmesniki:
- Zbirka
- Seznam
- Nastavite
- Zemljevid
- Razvrščen niz
- Razvrščen zemljevid
- Čakalna vrsta
Razredi:
- Seznami:
- Seznam matrike
- Vektor
- Povezani seznam
Kompleti:
- Hash set
- Povezani razpršeni niz
- Drevesni set
Zemljevidi:
- Zemljevid razpršitve
- Hash tabela
- TreeMap
- Povezani razpršeni zemljevid
Čakalna vrsta:
- Prednostna vrsta
V # 26) Kaj pomeni urejeno in razvrščeno v zbirkah?
Odgovor:
Naročeno: Pomeni, da vrednosti, ki so shranjene v zbirki, temeljijo na vrednostih, ki so dodane zbirki. Tako lahko ponovimo vrednosti iz zbirke v določenem vrstnem redu.
Razvrščeno: Mehanizme za razvrščanje je mogoče uporabiti znotraj ali zunaj, tako da skupina predmetov, razvrščenih v določeni zbirki, temelji na lastnostih predmetov.
V # 27) Pojasnite različne sezname, ki so na voljo v zbirki.
Odgovor: Vrednosti, dodane na seznam, temeljijo na položaju indeksa in so razvrščene po položaju indeksa. Dvojniki so dovoljeni.
Vrste seznamov so:
a) Seznam matrike:
- Hitra ponovitev in hiter naključni dostop.
- Je urejena zbirka (po indeksu) in ni razvrščena.
- Izvaja vmesnik z naključnim dostopom.
Primer:
public class Fruits{ public static void main (String ( ) args){ ArrayList names=new ArrayList (); names.add (“apple”); names.add (“cherry”); names.add (“kiwi”); names.add (“banana”); names.add (“cherry”); System.out.println (names); } }
Izhod:
(Jabolko, češnja, kivi, banana, češnja)
Od izhoda Array List ohrani vrstni red vstavljanja in sprejme dvojnike. Ampak ni razvrščeno.
b) Vektor:
Enako je kot seznam matrike.
- Vektorske metode so sinhronizirane.
- Varnost niti.
- Izvaja tudi naključni dostop.
- Varnost niti ponavadi povzroči uspešnost.
Primer:
public class Fruit { public static void main (String ( ) args){ Vector names = new Vector ( ); names.add (“cherry”); names.add (“apple”); names.add (“banana”); names.add (“kiwi”); names.add (“apple”); System.out.println (“names”); } }
Izhod:
(češnja, jabolko, banana, kivi, jabolko)
Vector tudi vzdržuje vrstni red vstavljanja in sprejme dvojnike.
c) Povezani seznam:
- Elementi so dvojno povezani med seboj.
- Zmogljivost je počasnejša od seznama matrike.
- Dobra izbira za vstavljanje in brisanje.
- V Javi 5.0 podpira običajne metode čakalnih vrst peek (), Pool (), Offer () itd.
Primer:
public class Fruit { public static void main (String ( ) args){ Linkedlist names = new linkedlist ( ) ; names.add(“banana”); names.add(“cherry”); names.add(“apple”); names.add(“kiwi”); names.add(“banana”); System.out.println (names); } }
Izhod:
(banana, češnja, jabolko, kivi, banana)
Ohranja vrstni red vstavljanja in sprejema dvojnike.
V # 28) Pojasnite Set in njihove vrste v zbirki.
Odgovor: Set skrbi za edinstvenost. Ne dovoljuje podvajanja. Tu se z metodo »enako ()« ugotovi, ali sta si dva predmeta enaka ali ne.
a) Hash Set:
- Neurejeno in nerazvrščeno.
- Za vstavljanje vrednosti uporablja hash kodo predmeta.
- Uporabite to, kadar je zahteva »brez dvojnikov in ne skrbite za naročilo«.
Primer:
public class Fruit { public static void main (String( ) args){ HashSet names = new HashSet ( ) ; names.add(“banana”); names.add(“cherry”); names.add(“apple”); names.add(“kiwi”); names.add(“banana”); System.out.println (names); } }
Izhod:
(banana, češnja, kivi, jabolko)
Ne sledi nobenemu vrstnemu redu za vstavljanje. Dvojniki niso dovoljeni.
b) Povezani razpršeni niz:
- Urejena različica razpršenega nabora je znana kot Linked Hash Set.
- Vzdržuje dvojno povezan seznam vseh elementov.
- Uporabite to, kadar je potreben ponovitveni vrstni red.
Primer:
public class Fruit { public static void main (String( ) args){ LinkedHashSet; names = new LinkedHashSet ( ) ; names.add(“banana”); names.add(“cherry”); names.add(“apple”); names.add(“kiwi”); names.add(“banana”); System.out.println (names); } }
Izhod:
(banana, češnja, jabolko, kivi)
Vzdržuje vrstni red vstavljanja, v katerem so bili dodani v nabor. Dvojniki niso dovoljeni.
c) Nabor dreves:
- Je ena od dveh razvrščenih zbirk.
- Uporablja drevesno strukturo 'Read-Black' in zagotavlja, da bodo elementi v naraščajočem vrstnem redu.
- Z konstruktorjem lahko s pomočjo primerljivega (ali) primerjalnika sestavimo drevesni niz.
Primer:
public class Fruits{ public static void main (String( )args) { Treeset names= new TreeSet( ) ; names.add(“cherry”); names.add(“banana”); names.add(“apple”); names.add(“kiwi”); names.add(“cherry”); System.out.println(names); } }
Izhod:
(jabolko, banana, češnja, kivi)
TreeSet razvrsti elemente v naraščajočem vrstnem redu. In dvojniki niso dovoljeni.
V # 29) Pojasnite zemljevid in njegove vrste.
Odgovor: Zemljevid skrbi za enolični identifikator. Unikatni ključ lahko preslikamo na določeno vrednost. Je par ključ / vrednost. Iščemo lahko vrednost, ki temelji na ključu. Tako kot niz, tudi na zemljevidu z metodo 'enako ()' ugotavljamo, ali sta dve tipki enaki ali različni.
Zemljevid je naslednjih vrst:
a) Zemljevid razpršitve:
- Neurejen in nesortiran zemljevid.
- Hashmap je dobra izbira, ko nam ni vseeno za naročilo.
- Omogoča en null ključ in več ničelnih vrednosti.
Primer:
Public class Fruit{ Public static void main(String( ) args){ HashMap names =new HashMap( ); names.put(“key1”,“cherry”); names.put (“key2”,“banana”); names.put (“key3”,“apple”); names.put (“key4”,“kiwi”); names.put (“key1”,“cherry”); System.out.println(names); } }
Izhod:
{key2 = banana, key1 = češnja, key4 = kivi, key3 = jabolko}
Podvojene tipke na zemljevidu niso dovoljene.
Ne vzdržuje nobenega vrstnega reda za vstavljanje in je nerazvrščeno.
b) Hash tabela:
- Tako kot vektorski ključ so tudi metode razreda sinhronizirane.
- Varnost niti in zato upočasni delovanje.
- Ne dovoljuje ničesar, kar je nič.
Primer:
public class Fruit{ public static void main(String( )args){ Hashtable names =new Hashtable( ); names.put(“key1”,“cherry”); names.put(“key2”,“apple”); names.put(“key3”,“banana”); names.put(“key4”,“kiwi”); names.put(“key2”,“orange”); System.out.println(names); } }
Izhod:
{key2 = jabolko, key1 = češnja, key4 = kivi, key3 = banana}
Podvojene tipke niso dovoljene.
c) Povezani zemljevid razpršitve:
- Ohranja vrstni red vstavljanja.
- Počasneje kot zemljevid Hash.
- Lahko pričakujem hitrejšo ponovitev.
Primer:
public class Fruit{ public static void main(String( ) args){ LinkedHashMap names =new LinkedHashMap( ); names.put(“key1”,“cherry”); names.put(“key2”,“apple”); names.put(“key3”,“banana”); names.put(“key4”,“kiwi”); names.put(“key2”,“orange”); System.out.println(names); } }
Izhod:
{key2 = jabolko, key1 = češnja, key4 = kivi, key3 = banana}
Podvojene tipke niso dovoljene.
d) TreeMap:
- Razvrščen zemljevid.
- Tako kot Tree set lahko tudi s konstruktorjem sestavimo vrstni red razvrščanja.
Primer:
public class Fruit{ public static void main(String( )args){ TreeMap names =new TreeMap( ); names.put(“key1”,“cherry”); names.put(“key2”,“banana”); names.put(“key3”,“apple”); names.put(“key4”,“kiwi”); names.put(“key2”,“orange”); System.out.println(names); } }
Izhod:
{key1 = češnja, key2 = banana, key3 = jabolko, key4 = kivi}
Razvrščeno je v naraščajočem vrstnem redu glede na ključ. Podvojene tipke niso dovoljene.
V # 30) Pojasnite prednostno vrsto.
Odgovor: Vmesnik čakalne vrste
Prednostna vrsta: Razred povezanega seznama je bil izboljšan za izvajanje vmesnika čakalne vrste. Čakalne vrste je mogoče obravnavati s povezanim seznamom. Namen čakalne vrste je 'Priority-in, Priority-out'.
Zato so elementi razvrščeni bodisi naravno bodisi v skladu s primerjalnikom. Razvrščanje elementov predstavlja njihovo relativno prednost.
V # 31) Kaj pomeni izjema?
Odgovor: Izjema je težava, ki se lahko pojavi med običajnim tokom izvajanja. Metoda lahko vrne izjemo, ko nekaj zajoka med izvajanjem. Če te izjeme ni bilo mogoče obravnavati, se izvršitev zaključi, preden opravi nalogo.
Če smo obravnavali izjemo, se normalni tok nadaljuje. Izjema je podrazred java.lang.Exception.
Primer ravnanja z izjemami:
try{ //Risky codes are surrounded by this block }catch(Exception e){ //Exceptions are caught in catch block }
V # 32) Kakšne vrste so izjeme?
Odgovor: Obstajata dve vrsti izjem. Podrobno so pojasnjeni v nadaljevanju.
a) Označena izjema:
Te izjeme preveri prevajalnik v času prevajanja. Razredi, ki razširjajo razred Throwable, razen izjeme med izvajanjem in napake, se imenujejo preverjena izjema.
Označene izjeme morajo izjemo izjaviti s ključno besedo throws (ali), obkroženo z ustreznim poskusom / ulovom.
Na primer, ClassNotFound izjema
b) Neključena izjema:
kateri so najboljši ponudniki e-pošte
Te izjeme v času prevajanja prevajalnik ne preveri. Prevajalnik ne prisili, da obravnava te izjeme. Vključuje:
- Aritmetična izjema
- Izjema ArrayIndexOutOfBounds
V # 33) Kateri so različni načini za obvladovanje izjem?
Odgovor: Spodaj sta pojasnjena dva različna načina za obvladovanje izjem:
a) Uporaba poskusa / ulova:
Tvegana koda je obdana s poskusnim blokom. Če pride do izjeme, jo ujame blok catch, ki mu sledi blok try.
Primer:
class Manipulation{ public static void main(String() args){ add(); } Public void add(){ try{ addition(); }catch(Exception e){ e.printStacktrace(); } } }
b) Z razglasitvijo vrže ključno besedo:
Na koncu metode lahko izjemo prijavimo s ključno besedo throws.
Primer:
class Manipulation{ public static void main(String() args){ add(); } public void add() throws Exception{ addition(); } }
V # 34) Kakšne so prednosti obravnave izjem?
Odgovor: Prednosti so naslednje:
- Običajni tok izvedbe ne bo končan, če bo obravnavana izjema
- Težavo lahko prepoznamo z uporabo izjave o ulovu
V # 35) Kakšne so ključne besede, ki obravnavajo izjeme v Javi?
Odgovor: Spodaj sta navedeni dve ključni besedi za obravnavo izjem:
a) poskusite:
Ko je tvegana koda obdana s poskusnim blokom. Izjemo, ki se pojavi v poskusnem bloku, ujame blok catch. Poskusu lahko sledi ulov (ali) končno (ali) oboje. Toda kateri koli blok je obvezen.
b) ulov:
Temu sledi poskusni blok. Tu so ujete izjeme.
c) končno:
Temu sledi bodisi poskusni blok (ali) catch block. Ta blok se izvede ne glede na izjemo. Tu so na splošno na voljo kode za čiščenje.
V # 36) Pojasnite razširjanje izjem.
Odgovor: Izjema se najprej vrže iz metode, ki je na vrhu sklada. Če ne ujame, se pokaže metoda in se premakne na prejšnjo metodo in tako naprej, dokler jih ne dobijo.
To se imenuje širjenje izjem.
Primer:
public class Manipulation{ public static void main(String() args){ add(); } public void add(){ addition(); }
Iz zgornjega primera je sklad videti tako, kot je prikazano spodaj:
Če pride do izjeme v dodatek () metoda ni ujeta, nato se premakne na metodo dodaj () . Nato se premakne v glavni () in nato ustavi tok izvajanja. Imenuje se Razmnoževanje izjem.
V # 37) Kaj je zadnja ključna beseda v Javi?
Odgovor:
Končnica spremenljivke: Ko je spremenljivka razglašena za končno, vrednosti spremenljivke ni mogoče spremeniti. Je kot stalnica.
Primer:
končni int = 12;
Končna metoda: Končne ključne besede v metodi ni bilo mogoče preglasiti. Če je metoda označena kot končna, je podrazred ne more preglasiti.
Končni razred: Če je razred razglašen za končnega, razreda ni bilo mogoče podrazvrstiti. Noben razred ne more podaljšati končnega razreda.
V # 38) Kaj je nit?
Odgovor: V Javi se tok izvajanja imenuje Thread. Vsak java program ima vsaj eno nit, imenovano glavna nit, glavno nit ustvari JVM. Uporabnik lahko določi lastne niti z razširitvijo razreda Thread (ali) z izvajanjem vmesnika Runnable. Niti se izvajajo sočasno.
Primer:
public static void main(String() args){//main thread starts here }
V # 39) Kako naredite nit v Javi?
Odgovor: Obstajata dva načina za izdelavo niti.
a) Razširite razred nit: Razširitev razreda Thread in preglasitev metode run. Nit je na voljo v java.lang.thread.
Primer:
Public class Addition extends Thread { public void run () { } }
Slaba stran uporabe razreda niti je, da ne moremo razširiti nobenega drugega razreda, ker smo razred niti že razširili. V našem razredu lahko preobremenimo metodo run ().
b) Izvedite izvedljiv vmesnik: Drug način je z izvajanjem vmesnika, ki ga je mogoče voditi. Za to bi morali zagotoviti izvedbo metode run (), ki je definirana v vmesniku.
Primer:
Public class Addition implements Runnable { public void run () { } }
V # 40) Pojasnite metodo join ().
Odgovor: Metoda Join () se uporablja za združevanje ene niti s koncem trenutno delujoče niti.
Primer:
public static void main (String() args){ Thread t = new Thread (); t.start (); t.join (); }
Na podlagi zgornje kode je glavna nit začela izvajanje. Ko pride do kode t.start () nato 'nit t' zažene lasten sklad za izvedbo. JVM preklaplja med glavno nitjo in „nitjo t“.
Ko pride do kode t.join () nato se izvrši samo 'nit t' in dokonča svojo nalogo, nato pa samo glavna nit začne izvajanje.
To je nestatična metoda. Metoda Join () ima preobremenjeno različico. Tako lahko omenimo tudi časovno trajanje metode join () tudi '.s'.
V # 41) Kaj počne metoda donosnosti razreda Thread?
Odgovor: Metoda yield () premakne trenutno delujočo nit v stanje, ki jo je mogoče izvesti, in omogoči izvajanje drugih niti. Torej, da imajo niti z enako prednostjo priložnost, da se zaženejo. To je statična metoda. Ne sprosti nobene ključavnice.
Metoda Yield () premakne nit nazaj samo v stanje Runnable in ne niti v blok sleep (), wait () (ali).
Primer:
public static void main (String() args){ Thread t = new Thread (); t.start (); } public void run(){ Thread.yield(); } }
V # 42) Pojasnite metodo wait ().
Odgovor: počakaj () metoda se uporablja za to, da nit čaka v čakalnem področju. Ko se med izvajanjem niti izvede metoda wait (), nit takoj opusti zaklepanje predmeta in gre v čakalno področje. Metoda Wait () sporoča niti, naj počaka določen čas.
Nato se nit po preklopu metode notify () (ali) notify all () prebudi.
Wait () in druge zgoraj omenjene metode ne dajo zaklepa na predmetu takoj, dokler trenutno izvedena nit ne dokonča sinhronizirane kode. Največkrat se uporablja pri sinhronizaciji.
Primer:
public static void main (String() args){ Thread t = new Thread (); t.start (); Synchronized (t) { Wait(); } }
V # 43) Razlika med metodo notify () in metodo notifyAll () v Javi.
Odgovor: Razlike med metodo notify () in metodo notifyAll () so navedene spodaj:
obvestiti() | notifyAll () |
---|---|
Ta metoda se uporablja za pošiljanje signala za prebuditev ene niti v čakalnem področju. | Ta metoda pošlje signal, da prebudi vse niti v čakalni tuljavi. |
V # 44) Kako ustaviti nit v javi? Pojasnite metodo spanja () v niti?
Odgovor: Nit lahko ustavimo z uporabo naslednjih metod niti:
- Spanje
- Čakanje
- Blokirano
Spanje: Metoda spanja () se uporablja za spanje trenutno izvajane niti za določen čas. Ko se nit prebudi, se lahko premakne v zagonljivo stanje. Torej se metoda sleep () uporablja za odložitev izvedbe za nekaj časa.
To je statična metoda.
Primer:
Navoj. Spanje (2000)
Torej zamuja nit za spanje 2 milisekundi. Metoda spanja () vrže neprekinjeno izjemo, zato moramo blok obdati s poskusom / ulovom.
public class ExampleThread implements Runnable{ public static void main (String() args){ Thread t = new Thread (); t.start (); } public void run(){ try{ Thread.sleep(2000); }catch(InterruptedException e){ } }
V # 45) Kdaj v Java uporabiti razred Runnable interface Vs Thread?
Odgovor: Če potrebujemo, da naš razred razširi nekatere druge razrede, ki niso nit, potem lahko nadaljujemo z vmesnikom, ki ga je mogoče zagnati, saj lahko v javi razširimo samo en razred.
Če ne bomo razširili nobenega razreda, potem lahko razširimo razred niti.
V # 46) Razlika med metodo start () in run () v razredu niti.
Odgovor: Metoda Start () ustvari novo nit in koda znotraj metode run () se izvede v novi niti. Če smo neposredno poklicali metodo run (), potem nova nit ni ustvarjena in trenutno izvajajoča nit bo še naprej izvajala metodo run ().
V # 47) Kaj je večnitnost?
Odgovor: Več niti se izvaja hkrati. Vsaka nit začne svoj sklad glede na prednost pretoka (ali) niti.
Primer programa:
public class MultipleThreads implements Runnable { public static void main (String() args){//Main thread starts here Runnable r = new runnable (); Thread t=new thread (); t.start ();//User thread starts here Addition add=new addition (); } public void run(){ go(); }//User thread ends here }
Pri izvedbi 1. vrstice JVM pokliče glavno metodo in glavni niz niti je videti, kot je prikazano spodaj.
Ko usmrtitev doseže, t.start () line, potem se ustvari nova nit in ustvari se tudi nov sklad za nit. Zdaj JVM preklopi na novo nit in glavna nit je spet v stanju za zagon.
Oba sklada sta videti, kot je prikazano spodaj.
Zdaj je uporabniška nit izvedla kodo znotraj metode run ().
Ko je metoda run () končana, se JVM preklopi nazaj v glavno nit in uporabniška nit je opravila nalogo in sklad je izginil.
JVM preklaplja med vsako nitjo, dokler ni obe niti končani. To se imenuje večnitnost.
V # 48) Pojasnite življenjski cikel niti v Javi.
Odgovor: Nit ima naslednja stanja:
- Novo
- Teče
- Tek
- Non-runnable (Blocked)
- Prenehala
- Novo: V novem stanju je bil ustvarjen primerek niti, vendar metoda start () še ni priklicana. Zdaj nit ne velja za živo.
- Teče : Nit je po zagonu metode start () v stanju, da ga je mogoče izvesti, vendar preden se prikliče metoda run (). Toda nit se lahko tudi iz čakanja / spanja vrne v stanje, ki ga je mogoče zagnati. V tem stanju se nit šteje za živo.
- Tek : Nit je v stanju, ko pokliče metodo run (). Zdaj nit začne izvajanje.
- Neteče (Blokirano): Nit je živ, vendar ni primeren za zagon. Ni v stanju za tek, vendar se bo čez nekaj časa vrnil v stanje za tek. Primer: počakaj, spi, blokiraj.
- Prenehala : Ko je metoda izvajanja končana, se ta zaključi. Zdaj nit še ni živa.
V # 49) Kaj je sinhronizacija?
Odgovor: Sinhronizacija omogoča samo eno nit za dostop do bloka kode hkrati. Če več niti dostopa do bloka kode, na koncu obstaja možnost za netočne rezultate. Da bi se izognili tej težavi, lahko zagotovimo sinhronizacijo občutljivega bloka kod.
Sinhronizirana ključna beseda pomeni, da nit potrebuje ključ za dostop do sinhronizirane kode.
Ključavnice so na predmete. Vsak objekt Java ima ključavnico. Ključavnica ima samo en ključ. Nit lahko dostopa do sinhronizirane metode le, če lahko nit dobi ključ do predmetov, ki jih je treba zakleniti.
Za to uporabljamo ključno besedo »Sinhronizirano«.
Primer:
public class ExampleThread implements Runnable{ public static void main (String() args){ Thread t = new Thread (); t.start (); } public void run(){ synchronized(object){ { } }
V # 50) Kaj je slabost sinhronizacije?
Leta: Za izvajanje vseh metod sinhronizacija ni priporočljiva. Ker če ena nit dostopa do sinhronizirane kode, mora naslednja nit počakati. Na drugi strani je torej počasno delovanje.
V # 51) Kaj pomeni serializacija?
Odgovor: Pretvorba datoteke v bajtni tok je znana kot serializacija. Predmeti v datoteki se zaradi varnosti pretvorijo v bajte. Za to moramo implementirati vmesnik java.io.Serializable. Nobene metode ni mogoče določiti.
Spremenljivke, ki so označene kot prehodne, ne bodo del serializacije. Tako lahko preskočimo serializacijo spremenljivk v datoteki z uporabo prehodne ključne besede.
Več o tem = >> Serializable in Cloneable
V # 52) Kakšen je namen prehodne spremenljivke?
Odgovor: Prehodne spremenljivke niso del procesa serializacije. Med deserializacijo so vrednosti prehodnih spremenljivk nastavljene na privzeto vrednost. Ne uporablja se s statičnimi spremenljivkami.
Primer:
kako uporabiti ukaz find v unixu
prehodne int številke;
V # 53) Katere metode se uporabljajo med postopkom serializacije in deserializacije?
Odgovor: Razreda ObjectOutputStream in ObjectInputStream sta višja raven java.io. paket. Uporabili jih bomo pri nižjih razredih FileOutputStream in FileInputStream.
ObjectOutputStream.writeObject —-> Objekt serializirajte in serializirani predmet zapišite v datoteko.
ObjectInputStream.readObject -> Prebere datoteko in deserializira objekt.
Za serializacijo mora objekt izvajati vmesnik, ki ga je mogoče serirati. Če superrazred implementira Serializable, bo podrazred samodejno serializirati.
V # 54) Kakšen je namen hlapljive spremenljivke?
Odgovor: Hlapne spremenljivke se vedno berejo iz glavnega pomnilnika in ne iz predpomnilnika niti. To se uporablja predvsem med sinhronizacijo. Velja samo za spremenljivke.
Primer:
hlapna int številka;
V # 55) Razlika med serializacijo in deserializacijo v Javi.
Odgovor: To so razlike med serializacijo in deserializacijo v javi:
Serializacija | Deserializacija |
---|---|
Serializacija je postopek, ki se uporablja za pretvorbo predmetov v bajtni tok | Deserializacija je nasprotni postopek serializacije, kjer lahko predmete dobimo nazaj iz bajtnega toka. |
Predmet je serializiran tako, da mu napišemo ObjectOutputStream. | Predmet je deserializiran tako, da ga prebere iz ObjectInputStream. |
V # 56) Kaj je SerialVersionUID?
Odgovor: Vsakič, ko je objekt serializiran, je predmetu odtisnjena številka ID različice za razred predmeta. Ta ID se imenuje SerialVersionUID. S tem se med deserializacijo preveri, ali sta pošiljatelj in prejemnik združljiva s serializacijo.
Zaključek
To je nekaj temeljnih vprašanj za JAVA, ki zajemajo tako osnovni kot napredni koncept Java za programiranje kot tudi intervju za razvijalce, in na ta so odgovorili naši strokovnjaki za JAVA.
Upam, da vam bo ta vadnica dala dober vpogled v temeljne koncepte kodiranja JAVA. Zgornja pojasnila bodo resnično obogatila vaše znanje in povečala vaše razumevanje programiranja JAVA.
Pripravite se na samozavestno razbijanje intervjuja JAVA.