top 50 core java interview questions
Najčešće postavljana pitanja i odgovori na Java intervjue s primjerima:
U ovom smo priručniku pokrili gotovo 50+ važnih osnovnih pitanja o Java intervjuima za svježe i iskusne kandidate.
Ovaj post o JAVA Intervju pitanjima pripremljen je kako bi vam pomogao razumjeti osnovne koncepte Java programiranja za potrebe intervjua. Ovdje su objašnjeni svi važni JAVA koncepti s primjerima za vaše lako razumijevanje.
Ovaj tutorial pokriva JAVA teme poput osnovnih Java definicija, OOP koncepata, specifikatora pristupa, zbirki, iznimki, niti, serializacije itd., S primjerima koji će vam omogućiti da se savršeno pripremite suočiti se s bilo kojim JAVA intervjuom.
Najpopularnija pitanja i odgovori za Java intervjue
Dolje je dat sveobuhvatan popis najvažnijih i najčešće postavljanih osnovnih i naprednih pitanja o intervjuu za programiranje Java s detaljnim odgovorima.
P # 1) Što je JAVA?
Odgovor: Java je programski jezik visoke razine i neovisan je o platformi.
Java je zbirka predmeta. Razvili su ga Sun Microsystems. Puno je aplikacija, web stranica i igara razvijenih pomoću Jave.
P # 2) Koje su značajke JAVA-e?
Odgovor: Značajke Java su sljedeće:
- OOP koncepti
- Objektno orijentirano
- Nasljeđivanje
- Kapsulacija
- Polimorfizam
- Apstrakcija
- Neovisno o platformi: Pojedinačni program radi na različitim platformama bez ikakvih izmjena.
- Visoke performanse: JIT (Just In Time compiler) omogućuje visoke performanse u Javi. JIT pretvara bytecode u strojni jezik, a zatim JVM započinje izvršavanje.
- Višenavojni: Tok izvođenja poznat je pod nazivom nit. JVM stvara nit koja se naziva glavna nit. Korisnik može stvoriti više niti proširivanjem klase niti ili implementacijom sučelja koje se može izvoditi.
P # 3) Kako Java omogućuje visoke performanse?
Odgovor: Java koristi Just In Time kompajler da omogući visoke performanse. Koristi se za pretvaranje uputa u bajt kodove.
P # 4) Dajte ime Java IDE-ima?
Odgovor: Eclipse i NetBeans su IDE-ovi JAVA-e.
P # 5) Što podrazumijevate pod konstruktorom?
Odgovor: Konstruktor se može detaljno objasniti navedenim točkama:
- Kada se u programu kreira novi objekt, konstruktor dobiva poziv koji odgovara klasi.
- Konstruktor je metoda koja ima isto ime kao i naziv klase.
- Ako korisnik implicitno ne stvori konstruktor, stvorit će se zadani konstruktor.
- Konstruktor se može preopteretiti.
- Ako je korisnik stvorio konstruktor s parametrom, tada bi trebao izraditi drugi konstruktor izričito bez parametra.
P # 6) Što se podrazumijeva pod lokalnom varijablom i varijablom instance?
Odgovor:
Lokalne varijable definirani su u metodi i opsegu varijabli koje postoje unutar same metode.
Varijabla instance definiran je unutar klase i izvan metode, a opseg varijabli postoji u cijeloj klasi.
P # 7) Što je razred?
Odgovor: Svi Java kodovi definirani su u klasi. Ima varijable i metode.
Varijable su atributi koji definiraju stanje klase.
Metode su mjesto na kojem se mora izvesti točna poslovna logika. Sadrži skup izjava (ili) uputa za zadovoljavanje određenog zahtjeva.
Primjer:
public class Addition{ //Class name declaration int a = 5; //Variable declaration int b= 5; public void add(){ //Method declaration int c = a+b; } }
P # 8) Što je objekt?
Odgovor: Primjer klase naziva se objektom. Objekt ima stanje i ponašanje.
Kad god JVM pročita ključnu riječ „new ()“, stvorit će instancu te klase.
Primjer:
public class Addition{ public static void main(String() args){ Addion add = new Addition();//Object creation } }
Gornji kôd stvara objekt za klasu Addition.
P # 9) Koji su koncepti OOP-a?
Odgovor: OOP koncepti uključuju:
- Nasljeđivanje
- Kapsulacija
- Polimorfizam
- Apstrakcija
- Sučelje
Predloženo čitanje = >> Najpopularnija OOP pitanja za intervju
P # 10) Što je nasljeđivanje?
Odgovor: Nasljeđivanje znači da se jedna klasa može proširiti na drugu klasu. Tako da se kodovi mogu ponovno koristiti iz jedne klase u drugu klasu. Postojeća klasa poznata je kao Super klasa, dok je izvedena klasa poznata kao podklasa.
Primjer:
Super class: public class Manupulation(){ } Sub class: public class Addition extends Manipulation(){ }
Nasljeđivanje je primjenjivo samo na javnost i zaštićene članove. Privatni članovi ne mogu se naslijediti.
P # 11) Što je inkapsulacija?
Odgovor: Svrha kapsulacije:
- Štiti kôd od drugih.
- Održavanje koda.
Primjer:
Deklariramo 'a' kao cjelobrojnu varijablu i ona ne bi trebala biti negativna.
public class Addition(){ int a=5; }
Ako netko promijeni točnu varijablu kao ' a = -5 ' onda je loše.
Da bismo prevladali problem, moramo slijediti korake u nastavku:
- Varijablu možemo učiniti privatnom ili zaštićenom.
- Koristite metode javnog pristupa kao što su set i get.
Tako da se gornji kod može izmijeniti kao:
public class Addition(){ private int a = 5; //Here the variable is marked as private }
Donji kod prikazuje geter i postavljač.
Tijekom postavljanja varijable mogu se osigurati uvjeti.
get A(){ } set A(int a){ if(a>0){// Here condition is applied ......... } }
Za enkapsulaciju moramo sve varijable instance učiniti privatnima i stvoriti setter i getter za te varijable. Što će pak prisiliti druge da pozivaju postavljače, a ne izravno pristupaju podacima.
P # 12) Što je polimorfizam?
Odgovor: Polimorfizam znači mnoge oblike.
Pojedinačni objekt može se odnositi na superklasu ili podklasu, ovisno o referentnom tipu koji se naziva polimorfizam.
Primjer:
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(); } }
Koristeći referentni tip manipulacije možemo zvati metodu klase Dodavanje “add ()”. Ta je sposobnost poznata kao polimorfizam. Polimorfizam je primjenjiv za nadjačavanje a ne za preopterećenje .
P # 13) Što se podrazumijeva pod nadjačavanjem metode?
Odgovor: Prevazilaženje metode događa se ako metoda pod-klase zadovoljava dolje navedene uvjete metodom Super-klase:
- Naziv metode trebao bi biti isti
- Argument bi trebao biti isti
- Vrsta povrata također bi trebala biti ista
Ključna prednost nadjačavanja je u tome što podklasa može pružiti neke specifične informacije o toj vrsti podklase u odnosu na superklasu.
Primjer:
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 poziva metodu add () u podklasi, a ne nadređenu klasu. Dakle, on nadjačava metodu Super-klase i poznat je kao Method Overriding.
P # 14) Što se podrazumijeva pod preopterećenjem?
Odgovor: Preopterećenje metode događa se za različite razrede ili unutar iste klase.
Za preopterećenje metoda, metoda pod-klase treba zadovoljiti sljedeće uvjete metodama Super-klase (ili) u istoj klasi:
- Isti naziv metode
- Različite vrste argumenata
- Mogu postojati različite vrste povrata
Primjer:
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(); } }
Ovdje metoda add () ima različite parametre, jer je klasa Addition preopterećena u istoj klasi kao i kod super-klase.
Bilješka: Polimorfizam nije primjenjiv za preopterećenje metode.
P # 15) Što se podrazumijeva pod sučeljem?
Odgovor: U javi se ne može postići više nasljeđa. Da bi se prevladao ovaj problem uvodi se koncept sučelja.
Sučelje je predložak koji ima samo deklaracije metoda, a ne i implementaciju metode.
Primjer:
Public abstract interface IManupulation{ //Interface declaration Public abstract void add();//method declaration public abstract void subtract(); }
- Sve metode u sučelju su interne javna sažetak praznina .
- Sve varijable u sučelju su interno javno statično finale to jest konstante.
- Klase mogu implementirati sučelje i ne protežu se.
- Klasa koja implementira sučelje trebala bi osigurati implementaciju za sve metode deklarirane u sučelju.
public class Manupulation implements IManupulation{ //Manupulation class uses the interface Public void add(){ …………… } Public void subtract(){ ……………. } }
P # 16) Što se podrazumijeva pod razredom Sažetak?
Odgovor: Klasu Sažetak možemo stvoriti pomoću ključne riječi 'Sažetak' prije naziva klase. Apstraktna klasa može imati i 'apstraktne' metode i 'neastraktne' metode koje su konkretna klasa.
Apstraktna metoda:
Metoda koja ima samo deklaraciju, a ne i implementaciju naziva se apstraktna metoda i ima ključnu riječ koja se naziva 'apstrakt'. Izjave završavaju zarezom i zarezom.
Primjer:
public abstract class Manupulation{ public abstract void add();//Abstract method declaration Public void subtract(){ } }
- Apstraktna klasa može imati i apstraktnu metodu.
- Konkretni podrazred koji proširuje klasu Sažetak trebao bi pružiti primjenu apstraktnih metoda.
P # 17) Razlika između polja i popisa polja.
Odgovor: Razlika između polja i popisa polja može se razumjeti iz donje tablice:
kako pokrenuti .torrent datoteke
Polje | Popis polja |
---|---|
Veličina se treba navesti u trenutku deklaracije niza. Niz () naziv = novi niz (2) | Veličina možda neće biti potrebna. Dinamički mijenja veličinu. ArrayList name = novi ArrayList |
Da bismo objekt stavili u niz, moramo navesti indeks. ime (1) = 'knjiga' | Nije potreban indeks. name.add ('knjiga') |
Polje nije tip parametrizirano | ArrayList u javi 5.0 su parametrizirani. Npr .: Ova kutna zagrada parametar je tipa što znači popis niza. |
P # 18) Razlika između String, String Builder i String Buffer.
Odgovor:
Niz: Nizne varijable pohranjene su u 'konstantnom spremištu nizova'. Jednom kada referenca na niz promijeni staru vrijednost koja postoji u “konstantnom spremištu nizova”, ona se ne može izbrisati.
Primjer:
Naziv niza = 'knjiga';
Stalno spremište nizova
.
Ako se naziv-vrijednost promijenio iz 'book' u 'pen'.
Stalno spremište nizova
Tada starija vrijednost ostaje u konstantnom spremištu nizova.
String pufer:
- Ovdje su vrijednosti niza pohranjene u stog. Ako se vrijednosti promijene, nova vrijednost zamjenjuje stariju vrijednost.
- Me uspremnik niza sinkroniziran je što je sigurno.
- Izvedba je sporija od String Builder-a.
Primjer:
Naziv niza me uspremnika = ”knjiga”;
Jednom kada je vrijednost imena promijenjena u 'olovka', 'knjiga' se briše u hrpi.
Graditelj nizova:
Ovo je isto kao i String međuspremnik, osim String Builder-a koji nije sigurno navojen i nije sinkroniziran. Dakle, očito je izvedba brza.
P # 19) Objasnite o specifikatorima javnog i privatnog pristupa.
Odgovor: Metode i varijable instance poznate su kao članovi.
Javnost:
Članovi javnosti vidljivi su u istom paketu kao i vanjski paket koji je namijenjen ostalim paketima.
Javni članovi klase A vidljivi su klasi B (isti paket) kao i klasi C (različiti paketi).
Privatna:
Privatni članovi su vidljivi samo u istom razredu, a ne i za ostale razrede u istom paketu, kao i za razrede u vanjskim paketima.
Privatni članovi u klasi A vidljivi su samo u toj klasi. Nevidljiv je za klasu B kao i za klasu C.
P # 20) Razlika između zadanih i zaštićenih specifikatora pristupa.
Odgovor:
Zadano: Metode i varijable deklarirane u klasi bez ikakvih specifikatora pristupa nazivaju se zadanim.
Zadani članovi u klasi A vidljivi su ostalim klasama unutar paketa, a nevidljivi klasama izvan paketa.
Dakle, članovi klase A vidljivi su klasi B, a nevidljivi klasi C.
Zaštićen:
.
Protected je isto što i Default, ali ako se klasa proširi, onda je vidljiva čak i ako je izvan paketa.
Članovi klase A vidljivi su klasi B jer se nalazi u paketu. Za klasu C on je nevidljiv, ali ako klasa C proširuje klasu A, tada su članovi vidljivi za klasu C čak i ako je izvan paketa.
P # 21) Razlika između HashMap-a i HashTable-a.
Odgovor: Razlika između HashMap-a i HashTable-a može se vidjeti u nastavku:
HashMap | HashTable |
---|---|
Metode nisu sinkronizirane | Ključne metode su sinkronizirane |
Ne sigurnost niti | Sigurnost niti |
Iterator se koristi za ponavljanje vrijednosti | Popisivač se koristi za ponavljanje vrijednosti |
Omogućuje jedan null ključ i više null vrijednosti | Ne dopušta ništa što je ništavno |
Performanse su visoke od HashTable-a | Izvedba je spora |
P # 22) Razlika između HashSet-a i TreeSet-a.
Odgovor: Razlika između HashSet-a i TreeSet-a može se vidjeti u nastavku:
HashSet | TreeSet |
---|---|
Umetnuti elementi su slučajnim redoslijedom | Održava elemente poredanim redoslijedom |
Može pohraniti null objekte | Nije moguće pohraniti null objekte |
Izvedba je brza | Izvedba je spora |
P # 23) Razlika između klase Sažetak i Sučelja.
Odgovor: Razlike između klase sažetka i sučelja su sljedeće:
Sažetak:
- Apstraktne klase imaju zadani konstruktor i on se poziva svaki put kada se uspostavi konkretna podklasa.
- Sadrži apstraktne metode kao i apstraktne metode.
- Klasa koja proširuje klasu Sažetak ne bi trebala zahtijevati provedbu svih metoda, već samo metode Sažetka trebaju biti implementirane u konkretnu podklasu.
- Apstraktna klasa sadrži varijable instance.
Sučelje:
- Nema nijedan konstruktor i ne može se instancirati.
- Treba objaviti samo apstraktnu metodu.
- Klase koje implementiraju sučelje trebaju osigurati implementaciju svih metoda.
- Sučelje sadrži samo konstante.
P # 24) Što znači zbirke na Javi?
Odgovor: Zbirka je okvir koji je dizajniran za spremanje predmeta i manipuliranje dizajnom za pohranu predmeta.
Zbirke se koriste za obavljanje sljedećih operacija:
- Traženje
- Sortiranje
- Manipulacija
- Umetanje
- Brisanje
Skupina predmeta poznata je pod nazivom zbirke. Sve klase i sučelja za prikupljanje dostupni su u paketu Java util.
P # 25) Koje su sve klase i sučelja dostupni u zbirkama?
Odgovor: Slijede klase i sučelja dostupna u zbirkama:
Sučelja:
- Kolekcija
- Popis
- Postavi
- Karta
- Razvrstani set
- Poredana karta
- Red
Predavanja:
- Popisi:
- Popis polja
- Vektor
- Povezani popis
Kompleti:
- Hash set
- Povezani skup raspršivača
- Drvo Set
Karte:
- Hash karta
- Hash tablica
- TreeMap
- Povezana heširana karta
Red:
- Redoslijed prioriteta
P # 26) Što se podrazumijeva poredano i poredano u zbirkama?
Odgovor:
Naručeno: To znači da se vrijednosti pohranjene u zbirci temelje na vrijednostima koje su dodane u zbirku. Tako možemo ponavljati vrijednosti iz zbirke određenim redoslijedom.
Poredano: Mehanizmi sortiranja mogu se primijeniti interno ili eksterno, tako da se skupina predmeta razvrstanih u određenoj zbirci temelji na svojstvima objekata.
P # 27) Objasnite različite popise dostupne u zbirci.
Odgovor: Vrijednosti dodane na popis temelje se na položaju indeksa i poredane su prema položaju indeksa. Dopušteni su duplikati.
Vrste popisa su:
a) Popis nizova:
- Brza iteracija i brzi nasumični pristup.
- To je poredana zbirka (po indeksu) i nije sortirana.
- Provodi sučelje slučajnog pristupa.
Primjer:
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); } }
Izlaz:
(Jabuka, trešnja, kivi, banana, trešnja)
Iz rezultata, Array List održava redoslijed umetanja i prihvaća duplikate. Ali nije razvrstano.
b) Vektor:
To je isto kao Popis nizova.
- Vektorske metode su sinkronizirane.
- Sigurnost niti.
- Također implementira Random Access.
- Sigurnost niti obično uzrokuje pogodak u izvedbi.
Primjer:
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”); } }
Izlaz:
(trešnja, jabuka, banana, kivi, jabuka)
Vector također održava redoslijed umetanja i prihvaća duplikate.
c) Povezani popis:
- Elementi su međusobno dvostruko povezani.
- Izvedba je sporija od popisa Array.
- Dobar izbor za umetanje i brisanje.
- U Javi 5.0 podržava uobičajene metode reda peek (), Pool (), Offer () itd.
Primjer:
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); } }
Izlaz:
(banana, trešnja, jabuka, kivi, banana)
Održava redoslijed umetanja i prihvaća duplikate.
P # 28) Objasnite set i njihove vrste u zbirci.
Odgovor: Set brine o jedinstvenosti. Ne dopušta dupliciranje. Ovdje se metoda „jednako ()“ koristi za određivanje jesu li dva objekta identična ili ne.
a) Skup raspršivača:
- Neuređeno i nesortirano.
- Koristi hash kod objekta za umetanje vrijednosti.
- Koristite ovo kada je zahtjev 'nema duplikata i ne brine se za narudžbu'.
Primjer:
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); } }
Izlaz:
(banana, trešnja, kivi, jabuka)
Ne slijedi nijedan redoslijed umetanja. Duplikati nisu dopušteni.
b) Skup povezanih raspršivača:
- Uređena verzija hash skupa poznata je kao Linked Hash Set.
- Održava dvostruko povezan popis svih elemenata.
- Koristite ovo kada je potreban redoslijed ponavljanja.
Primjer:
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); } }
Izlaz:
(banana, trešnja, jabuka, kivi)
Održava redoslijed umetanja kojim su dodani u set. Duplikati nisu dopušteni.
c) Skup stabala:
- Jedna je od dvije sortirane zbirke.
- Koristi strukturu stabla 'Read-Black' i jamči da će elementi biti u rastućem redoslijedu.
- Pomoću usporedivog (ili) usporednika možemo konstruirati skup stabala s konstruktorom.
Primjer:
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); } }
Izlaz:
(jabuka, banana, trešnja, kivi)
TreeSet razvrstava elemente u rastućem redoslijedu. A duplikati nisu dopušteni.
P # 29) Objasnite kartu i njezine vrste.
Odgovor: Karta brine o jedinstvenom identifikatoru. Jedinstveni ključ možemo mapirati na određenu vrijednost. To je par ključ / vrijednost. Možemo pretraživati vrijednost na temelju ključa. Kao i skup, karta također koristi metodu 'jednako ()' da utvrdi jesu li dvije tipke iste ili različite.
Karta je sljedećih vrsta:
kako izvući 7z datoteke na mac
a) Hash karta:
- Neuređena i nerazvrstana karta.
- Hashmap je dobar izbor kada nam nije stalo do narudžbe.
- Omogućuje jedan null ključ i više null vrijednosti.
Primjer:
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); } }
Izlaz:
{key2 = banana, key1 = trešnja, key4 = kivi, key3 = jabuka}
Dvostruki ključevi nisu dopušteni na mapi.
Ne održava redoslijed umetanja i nije sortiran.
b) Hash tablica:
- Kao i vektorski ključ, metode klase su sinkronizirane.
- Sigurnost navoja i zbog toga usporava performanse.
- Ne dopušta ništa što je ništavno.
Primjer:
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); } }
Izlaz:
{key2 = jabuka, key1 = trešnja, key4 = kivi, key3 = banana}
Dvostruki ključevi nisu dopušteni.
c) Povezana hash karta:
- Održava redoslijed umetanja.
- Sporije od Hash karte.
- Mogu očekivati bržu iteraciju.
Primjer:
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); } }
Izlaz:
{key2 = jabuka, key1 = trešnja, key4 = kivi, key3 = banana}
Dvostruki ključevi nisu dopušteni.
d) Karta stabla:
- Poredana karta.
- Kao i Tree set, s konstruktorom možemo konstruirati redoslijed sortiranja.
Primjer:
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); } }
Izlaz:
{key1 = trešnja, key2 = banana, key3 = jabuka, key4 = kivi}
Razvrstano je u rastućem redoslijedu na temelju ključa. Dvostruki ključevi nisu dopušteni.
P # 30) Objasnite prioritetni red.
Odgovor: Sučelje u redu
Prioritetni red: Klasa povezanog popisa poboljšana je za implementaciju sučelja reda. Redovima se može upravljati pomoću povezanog popisa. Svrha je reda „Priority-in, Priority-out“.
Stoga su elementi poredani ili prirodno ili prema usporedbi. Poredak elemenata predstavlja njihov relativni prioritet.
P # 31) Što se podrazumijeva pod iznimkom?
Odgovor: Iznimka je problem koji se može pojaviti tijekom normalnog tijeka izvršenja. Metoda može izbaciti iznimku kada nešto zavija za vrijeme izvođenja. Ako se s tom iznimkom nije moglo postupati, izvršenje se prekida prije nego što dovrši zadatak.
Ako smo riješili iznimku, tada se nastavlja normalan protok. Iznimke su podrazredi java.lang.Exception.
Primjer za rukovanje iznimkom:
try{ //Risky codes are surrounded by this block }catch(Exception e){ //Exceptions are caught in catch block }
P # 32) Koje su vrste iznimki?
Odgovor: Postoje dvije vrste iznimki. Oni su detaljno objašnjeni u nastavku.
a) Označena iznimka:
Te iznimke kompajler provjerava u vrijeme sastavljanja. Klase koje proširuju klasu Throwable osim iznimke Runtime i Error nazivaju se provjerenom iznimkom.
Označene iznimke moraju izjaviti iznimku pomoću ključne riječi throws (ili) okružene odgovarajućim try / catch.
Na primjer, Iznimka ClassNotFound
b) Neoznačena iznimka:
Te iznimke kompajler ne provjerava tijekom vremena kompajliranja. Prevoditelj se ne prisiljava nositi se s tim iznimkama. Uključuje:
- Aritmetička iznimka
- Iznimka ArrayIndexOutOfBounds
P # 33) Koji su različiti načini postupanja s iznimkama?
Odgovor: U nastavku su objašnjena dva različita načina postupanja s iznimkama:
a) Korištenje try / catch:
Rizični kod okružen je blokom try. Ako se dogodi iznimka, tada je hvata blok catch koji slijedi blok try.
Primjer:
class Manipulation{ public static void main(String() args){ add(); } Public void add(){ try{ addition(); }catch(Exception e){ e.printStacktrace(); } } }
b) Deklaracijom baca ključnu riječ:
Na kraju metode, iznimku možemo proglasiti pomoću ključne riječi throws.
Primjer:
class Manipulation{ public static void main(String() args){ add(); } public void add() throws Exception{ addition(); } }
P # 34) Koje su prednosti rukovanja iznimkama?
Odgovor: Prednosti su sljedeće:
- Uobičajeni tijek izvršenja neće se prekinuti ako se riješi izuzetak
- Problem možemo identificirati pomoću deklaracije o ulovu
P # 35) Koje su ključne riječi koje obrađuju iznimke u Javi?
Odgovor: U nastavku su navedene dvije ključne riječi za rukovanje iznimkama:
pokušaj:
Kada je rizični kôd okružen blokom try. Iznimku koja se javlja u bloku try zahvaća blok catch. Pokušaj može slijediti catch (ili) konačno (ili) oboje. Ali bilo koji od blokova je obvezan.
b) ulov:
Nakon toga slijedi blok try. Ovdje su uhvaćene iznimke.
c) konačno:
Nakon toga slijedi blok try (ili) catch. Ovaj se blok izvršava bez obzira na iznimku. Dakle, ovdje su općenito kodovi za čišćenje.
P # 36) Objasnite širenje iznimke.
Odgovor: Iznimka se prvo izbacuje iz metode koja je na vrhu stoga. Ako ne uhvati, iskače metodu i prelazi na prethodnu metodu i tako dalje dok ih ne dobiju.
To se naziva širenje iznimke.
Primjer:
public class Manipulation{ public static void main(String() args){ add(); } public void add(){ addition(); }
Iz gornjeg primjera, stog izgleda kao što je prikazano u nastavku:
Ako se u dodatak() metoda nije uhvaćena, zatim se prelazi na metodu dodati() . Zatim se premješta u glavni() metoda i tada će zaustaviti tijek izvršenja. Zove se Razmnožavanje iznimke.
P # 37) Koja je zadnja ključna riječ u Javi?
Odgovor:
Završnica varijable: Jednom kada je varijabla proglašena konačnom, tada se vrijednost varijable ne može mijenjati. To je poput konstante.
Primjer:
konačni int = 12;
Konačna metoda: Završna ključna riječ u metodi ne može se nadjačati. Ako je metoda označena kao konačna, podklasa je ne može nadjačati.
Završni razred: Ako je klasa proglašena konačnom, tada se klasa ne može podrazvrstati. Nijedan razred ne može produžiti završni razred.
P # 38) Što je nit?
Odgovor: U Javi se tijek izvršenja naziva Thread. Svaki java program ima barem jednu nit koja se naziva glavna nit, glavnu nit stvara JVM. Korisnik može definirati vlastite niti proširivanjem klase Thread (ili) primjenom Runnable sučelja. Niti se izvršavaju istodobno.
Primjer:
public static void main(String() args){//main thread starts here }
P # 39) Kako napraviti nit u Javi?
Odgovor: Postoje dva načina za izradu niti.
a) Klasa Extend Thread: Proširivanje klase Thread i poništavanje metode izvođenja. Nit je dostupan u java.lang.thread.
Primjer:
Public class Addition extends Thread { public void run () { } }
Nedostatak korištenja klase niti je taj što ne možemo proširiti nijednu drugu klasu jer smo klasu niti već proširili. Možemo preopteretiti metodu run () u našoj klasi.
b) Implementirati izvodljivo sučelje: Drugi je način primjenom pokrenuti sučelja. Za to bismo trebali osigurati implementaciju metode run () koja je definirana u sučelju.
Primjer:
Public class Addition implements Runnable { public void run () { } }
P # 40) Objasnite metodu join ().
Odgovor: Način Join () koristi se za spajanje jedne niti s krajem trenutno pokrenute niti.
Primjer:
public static void main (String() args){ Thread t = new Thread (); t.start (); t.join (); }
Na temelju gornjeg koda, glavna nit je započela izvršenje. Kad stigne do koda t.start () tada 'nit t' pokreće vlastiti stog za izvršenje. JVM se prebacuje između glavne niti i 'niti t'.
Jednom kad dođe do koda t.join () tada se izvršava samo 'nit t' i dovršava svoj zadatak, tada samo glavna nit započinje izvršenje.
To je nestatična metoda. Metoda Join () ima preopterećenu verziju. Tako možemo spomenuti i vremensko trajanje metode join () koja je također '.s'.
P # 41) Što čini metoda prinosa klase Thread?
Odgovor: Metoda yield () pomiče trenutno pokrenutu nit u stanje koje se može izvoditi i omogućuje ostalim nitima izvršenje. Tako da niti s jednakim prioritetom imaju priliku pokrenuti se. To je statična metoda. Ne otpušta nikakvu bravu.
Metoda Yield () premješta nit natrag u samo stanje Runnable, a ne nit u blok sleep (), wait () (ili).
Primjer:
public static void main (String() args){ Thread t = new Thread (); t.start (); } public void run(){ Thread.yield(); } }
P # 42) Objasnite metodu wait ().
Odgovor: pričekaj () metoda koristi se da nit čeka na čekanju. Kada se tijekom izvođenja niti izvrši metoda wait (), tada nit odustaje od zaključavanja objekta i odlazi u spremište na čekanju. Metoda Wait () govori niti da pričeka određeno vrijeme.
Tada će se nit probuditi nakon što se pozove metoda notify () (ili) notify all ().
Wait () i ostale gore spomenute metode ne daju zaključavanje objekta odmah dok trenutačno izvršavajuća nit ne dovrši sinkronizirani kôd. Uglavnom se koristi u sinkronizaciji.
Primjer:
public static void main (String() args){ Thread t = new Thread (); t.start (); Synchronized (t) { Wait(); } }
P # 43) Razlika između metode notify () i metode notifyAll () u Javi.
Odgovor: Razlike između metode notify () i metode notifyAll () navedene su u nastavku:
obavijestiti() | notifyAll () |
---|---|
Ova se metoda koristi za slanje signala za buđenje jedne niti u spremištu za čekanje. | Ova metoda šalje signal za buđenje svih niti u kalemu na čekanju. |
P # 44) Kako zaustaviti nit u javi? Objasniti metodu sleep () u niti?
Odgovor: Nit možemo zaustaviti pomoću sljedećih metoda niti:
- Spavanje
- Čekanje
- Blokiran
Spavati: Metoda spavanja () koristi se za spavanje trenutačno izvršavajuće niti određeno vrijeme. Jednom kada se nit probudi, može se premjestiti u stanje za pokretanje. Dakle, metoda sleep () koristi se za odgodu izvršenja na neko razdoblje.
To je statična metoda.
Primjer:
Nit. Spavaj (2000)
Dakle, odgađa nit da spava 2 milisekunde. Metoda Sleep () baca neprekinuti izuzetak, stoga blok moramo okružiti try / catch.
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){ } }
P # 45) Kada u Java-i koristiti klasu Runnable interface Vs Thread?
Odgovor: Ako trebamo da naša klasa proširi neke druge klase, osim niti, možemo ići sa sučeljem za izvođenje, jer u javi možemo proširiti samo jednu klasu.
Ako nećemo proširiti nijednu klasu, tada možemo proširiti klasu niti.
P # 46) Razlika između metode start () i run () klase niti.
Odgovor: Metoda Start () stvara novu nit, a kôd unutar metode run () izvršava se u novoj niti. Ako smo izravno pozvali metodu run (), tada se ne stvara nova nit, a trenutno izvršavaća nit nastavit će izvršavati metodu run ().
P # 47) Što je višenitnost?
Odgovor: Više se niti izvršava istovremeno. Svaka nit pokreće svoj vlastiti stog na temelju prioriteta protoka (ili) niti.
Primjer 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 }
U izvršavanju 1. retka, JVM poziva glavnu metodu i glavni niz niti izgleda kao što je prikazano u nastavku.
Jednom kada izvršenje stigne, t.start () line, tada se kreira nova nit, a stvara se i novi stog za nit. Sada se JVM prebacuje na novu nit i glavna nit se vraća u izvodljivo stanje.
Dva snopa izgledaju kao što je prikazano dolje.
Sada je korisnička nit izvršila kod unutar metode run ().
Kada se metoda run () dovrši, tada se JVM prebacuje natrag na glavnu nit, a korisnička nit je dovršila zadatak i stog je nestao.
JVM se prebacuje između svake niti sve dok se niti ne završe. To se naziva višestrukim navojem.
P # 48) Objasnite životni ciklus niti u Javi.
Odgovor: Tema ima sljedeća stanja:
- Novi
- Izvodljivo
- Trčanje
- Ne može se pokrenuti (blokirano)
- Prekinuta
- Novi: U novom stanju stvorena je instanca niti, ali metoda start () još se ne poziva. Sada se nit ne smatra živom.
- Izvodljivo : Nit je u stanju da se izvrši nakon pozivanja metode start (), ali prije nego što se pozove metoda run (). No nit se također može vratiti u stanje pokretanja iz čekanja / spavanja. U ovom se stanju nit smatra živom.
- Trčanje : Nit je u aktivnom stanju nakon što pozove metodu run (). Sada nit započinje izvršenje.
- Ne može se pokrenuti (Blokirano): nit je živa, ali ne ispunjava uvjete za pokretanje. Nije u stanju za trčanje, ali isto tako, vratit će se u stanje za trčanje nakon nekog vremena. Primjer: čekati, spavati, blokirati.
- Prekinuta : Jednom kada je metoda izvođenja završena, tada se prekida. Sada nit nije živa.
P # 49) Što je sinkronizacija?
Odgovor: Sinkronizacija istovremeno omogućuje samo jednoj niti da pristupi bloku koda. Ako više niti pristupa bloku koda, na kraju postoji šansa za netočne rezultate. Da bismo izbjegli ovaj problem, možemo osigurati sinkronizaciju za osjetljivi blok kodova.
Sinkronizirana ključna riječ znači da nit treba ključ da bi pristupila sinkroniziranom kodu.
Brave su prema objektima. Svaki Java objekt ima bravu. Brava ima samo jedan ključ. Nit može pristupiti sinkroniziranoj metodi samo ako nit može dobiti ključ objekata za zaključavanje.
Za to koristimo ključnu riječ 'Sinkronizirano'.
Primjer:
public class ExampleThread implements Runnable{ public static void main (String() args){ Thread t = new Thread (); t.start (); } public void run(){ synchronized(object){ { } }
P # 50) Koji je nedostatak sinkronizacije?
Godine: Za provedbu svih metoda ne preporučuje se sinkronizacija. Jer ako jedna nit pristupa sinkroniziranom kodu, sljedeća bi nit trebala pričekati. Dakle, to čini spore performanse s druge strane.
P # 51) Što se podrazumijeva pod serializacijom?
Odgovor: Pretvaranje datoteke u tok bajtova poznato je kao serializacija. Objekti u datoteci pretvaraju se u bajtove iz sigurnosnih razloga. Za to moramo implementirati sučelje java.io.Serializable. Nema metodu za definiranje.
Varijable koje su označene kao prolazne neće biti dio serializacije. Tako možemo preskočiti serializaciju varijabli u datoteci pomoću privremene ključne riječi.
Saznajte više = >> Serijalizirati i klonirati
P # 52) Koja je svrha prijelazne varijable?
Odgovor: Privremene varijable nisu dio procesa serializacije. Tijekom deserializacije vrijednosti privremenih varijabli postavljaju se na zadane vrijednosti. Ne koristi se sa statičkim varijablama.
Primjer:
koje su sve web lokacije e-pošte
privremeni int brojevi;
P # 53) Koje se metode koriste tijekom postupka serializacije i deserijalizacije?
Odgovor: Klase ObjectOutputStream i ObjectInputStream su viša razina java.io. paket. Koristit ćemo ih s klasama niže razine FileOutputStream i FileInputStream.
ObjectOutputStream.writeObject —-> Serijalizirajte objekt i zapišite serializirani objekt u datoteku.
ObjectInputStream.readObject -> Čita datoteku i deserijalizira objekt.
Da bi bio serializiran, objekt mora implementirati sučelje koje se može serirati. Ako superklasa implementira Serializable, tada će se podklasa automatski moći serializirati.
P # 54) Koja je svrha hlapljive varijable?
Odgovor: Hlapive vrijednosti varijabli uvijek se čitaju iz glavne memorije, a ne iz predmemorije niti. To se uglavnom koristi tijekom sinkronizacije. Primjenjiv je samo za varijable.
Primjer:
hlapljiv int broj;
P # 55) Razlika između serializacije i deserijalizacije u Javi.
Odgovor: Ovo su razlike između serializacije i deserializacije u javi:
Serijalizacija | Deserijalizacija |
---|---|
Serijalizacija je postupak koji se koristi za pretvaranje objekata u bajtni tok | Deserializacija je suprotan proces serializacije gdje možemo vratiti objekte iz bajt toka. |
Objekt je serializiran tako da mu se napiše ObjectOutputStream. | Objekt je deserijaliziran čitanjem iz ObjectInputStream. |
P # 56) Što je SerialVersionUID?
Odgovor: Kad god je objekt serializiran, na objekt se stavlja identifikacijski broj verzije za klasu objekta. Ovaj se ID naziva SerialVersionUID. To se koristi tijekom deserializacije kako bi se provjerilo jesu li pošiljatelj i primatelj kompatibilni sa serializacijom.
Zaključak
Ovo su neka od osnovnih pitanja o JAVA intervjuu koja pokrivaju i osnovne i napredne Java koncepte za programiranje, kao i intervju za programere, a to su ona na koja su odgovorili naši JAVA stručnjaci.
Nadam se da će vam ovaj vodič pružiti sjajan uvid u temeljne koncepte kodiranja JAVA. Gore navedena objašnjenja zaista će obogatiti vaše znanje i poboljšati vaše razumijevanje JAVA programiranja.
Pripremite se za samouvjereno razbijanje JAVA intervjua.