100+ Java Întrebări și răspunsuri la interviu (2025)
Aici sunt Java întrebări și răspunsuri la interviu pentru candidații mai proaspeți, precum și cu experiență, pentru a obține locul de muncă visat.
Java Programarea întrebărilor și răspunsurilor la interviu pentru studenți
1) Care este diferența dintre o clasă interioară și o sub-clasă?
O clasă interioară este o clasă care este imbricată într-o altă clasă. O clasă interioară are drepturi de acces pentru clasa care o imbrica și poate accesa toate variabilele și metodele definite în clasa exterioară.
O subclasă este o clasă care moștenește dintr-o altă clasă numită super clasă. Sub-clasa poate accesa toate metodele și câmpurile publice și protejate ale super-clasei sale.
👉 Descărcare PDF gratuită: Java Interviu Interviu Întrebări și răspunsuri >>
2) Pentru ce sunt diferiții specificatori de acces Java cursuri?
In Java, specificatorii de acces sunt cuvintele cheie folosite înaintea unui nume de clasă care definește domeniul de acces. Tipurile de specificatori de acces pentru clase sunt:
1) Public: Clasa, Metoda, Câmpul este accesibil de oriunde.
2) Protejat: Metodă, Câmpul poate fi accesat din aceeași clasă căreia îi aparțin sau din subclase și din clasa aceluiași pachet, dar nu din exterior.
3) Implicit: Metoda, Câmpul, clasa pot fi accesate numai din același pachet și nu din afara pachetului său nativ.
4) Privat: Metodă, Câmpul poate fi accesat din aceeași clasă căreia îi aparțin.
3) Care este scopul metodelor statice și al variabilelor statice?
Când există o cerință de a partaja o metodă sau o variabilă între mai multe obiecte ale unei clase în loc de a crea copii separate pentru fiecare obiect, folosim cuvântul cheie static pentru a face o metodă sau variabilă partajată pentru toate obiectele.
4) Ce este încapsularea datelor și care este semnificația acesteia?
Încapsularea este un concept din programarea orientată pe obiecte pentru combinarea proprietăților și metodelor într-o singură unitate.
Încapsularea îi ajută pe programatori să urmeze o abordare modulară pentru dezvoltarea de software, deoarece fiecare obiect are propriul său set de metode și variabile și își servește funcțiile independent de alte obiecte. Încapsularea servește, de asemenea, scopului de ascundere a datelor.
5) Ce este o clasă singleton? Dați un exemplu practic de utilizare.
O clasă singleton în Java poate avea o singură instanță și, prin urmare, toate metodele și variabilele sale aparțin unei singure instanțe. Conceptul de clasă Singleton este util pentru situațiile în care este necesar să se limiteze numărul de obiecte pentru o clasă.
Cel mai bun exemplu de scenariu de utilizare singleton este atunci când există o limită de a avea o singură conexiune la o bază de date din cauza unor limitări ale driverului sau din cauza oricăror probleme de licențiere.
6) În ce sunt buclele Java? Care sunt trei tipuri de bucle?
Bucla este folosită în programare pentru a executa o instrucțiune sau un bloc de instrucțiuni în mod repetat. Se află trei tipuri de bucle în Java:
1) Pentru bucle
Buclele For sunt folosite în java pentru a executa instrucțiuni în mod repetat de un anumit număr de ori. Buclele For sunt folosite atunci când numărul de ori pentru a executa instrucțiunile este cunoscut de programator.
2) While Loops
Bucla While este folosită atunci când anumite instrucțiuni trebuie executate în mod repetat până când o condiție este îndeplinită. În buclele while, starea este verificată mai întâi înainte de executarea instrucțiunilor.
3) Faceți bucle While
Do While Loop este aceeași cu bucla While cu doar diferența că condiția este verificată după execuția blocului de instrucțiuni. Prin urmare, în cazul buclei do while, instrucțiunile sunt executate cel puțin o dată.
7) Ce este o buclă infinită? Cât este declarată bucla infinită?
O buclă infinită rulează fără nicio condiție și rulează la infinit. O buclă infinită poate fi întreruptă prin definirea oricărei logici de întrerupere în corpul blocurilor de instrucțiuni.
Bucla infinită este declarată după cum urmează:
for (;;) { // Statements to execute // Add any loop breaking logic }
8) Care este diferența dintre declarația continue și break?
break și continue sunt două cuvinte cheie importante folosite în bucle. Când un cuvânt cheie break este folosit într-o buclă, bucla este întreruptă instantaneu, în timp ce atunci când este utilizat cuvântul cheie continue, iterația curentă este întreruptă și bucla continuă cu următoarea iterație.
În exemplul de mai jos, bucla este întreruptă când contorul ajunge la 4.
for (counter = 0; counter & lt; 10; counter++) system.out.println(counter); if (counter == 4) { break; } }
În exemplul de mai jos, când contorul ajunge la 4, bucla trece la următoarea iterație și orice instrucțiuni după cuvântul cheie continue sunt omise pentru iterația curentă.
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) Care este diferența dintre variabilele duble și float în Java?
În java, float ia 4 octeți în memorie în timp ce Double are 8 octeți în memorie. Float este un număr zecimal cu virgulă mobilă cu o singură precizie în timp ce Double este un număr zecimal cu precizie dublă.
10) În ce este cuvântul cheie final Java? Da un exemplu.
În java, o constantă este declarată folosind cuvântul cheie Final. Valoarea poate fi atribuită o singură dată și după atribuire, valoarea unei constante nu poate fi modificată.
În exemplul de mai jos, o constantă cu numele const_val este declarată și i se atribuie o valoare:
Private Final int const_val=100
Când o metodă este declarată finală, ea NU poate fi suprascrisă de subclase. Această metodă este mai rapidă decât orice altă metodă, deoarece sunt rezolvate la momentul îndeplinit.
Când o clasă este declarată finală, nu poate fi subclasată. Exemplu String, Integer și alte clase wrapper.
11) Ce este operatorul ternar? Dă un exemplu.
Operatorul ternar, numit și operator condiționat, este folosit pentru a decide ce valoare să atribuie unei variabile pe baza unei evaluări booleene. Este notat ca ?
În exemplul de mai jos, dacă rangul este 1, statusului i se atribuie o valoare „Terminat”, altfel „În așteptare”.
public class conditionTest { public static void main(String args[]) { String status; int rank = 3; status = (rank == 1) ? "Done" : "Pending"; System.out.println(status); } }
12) Cum puteți genera numere aleatorii în Java?
- Folosind Math.random() puteți genera numere aleatorii în intervalul mai mare sau egal cu 0.1 și mai mic de 1.0
- Folosind clasa aleatorie în pachetul java.util
13) Care este cazul comutatorului implicit? Dați exemplu.
Într-o declarație de comutare, cazul implicit este executat atunci când nu se potrivește nicio altă condiție de comutare. Cazul implicit este un caz opțional. Poate fi declarat numai după ce toate celelalte cazuri de comutare au fost codificate.
În exemplul de mai jos, când scorul nu este 1 sau 2, este folosită majuscule implicite.
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) În ce se află clasa de bază Java din care sunt derivate toate clasele?
java.lang.object
15) Metoda poate main() în Java poate returna orice date?
În java, metoda main() nu poate returna date și, prin urmare, este întotdeauna declarată cu un tip de returnare void.
16) Ce sunt Java Pachete? Care este semnificația pachetelor?
In Java, pachetul este o colecție de clase și interfețe care sunt grupate, deoarece sunt legate între ele. Utilizarea pachetelor ajută dezvoltatorii să modularizeze codul și să grupeze codul pentru o reutilizare adecvată. Odată ce codul a fost împachetat în Pachete, acesta poate fi importat în alte clase și utilizat.
17) Putem declara o clasă abstractă fără a avea vreo metodă abstractă?
Da, putem crea o clasă abstractă folosind cuvântul cheie abstract înainte de numele clasei, chiar dacă nu are nicio metodă abstractă. Totuși, dacă o clasă are chiar și o singură metodă abstractă, aceasta trebuie declarată abstractă, altfel va da o eroare.
18) Care este diferența dintre o clasă abstractă și o interfață în Java?
Diferența principală dintre o clasă abstractă și o interfață este că o interfață poate avea doar declarații de metode statice publice fără implementare concretă, în timp ce o clasă abstractă poate avea membri cu orice specificatori de acces (public, privat etc) cu sau fără implementare concretă.
O altă diferență cheie în utilizarea claselor și interfețelor abstracte este aceea că o clasă care implementează o interfață trebuie să implementeze toate metodele interfeței, în timp ce o clasă care moștenește dintr-o clasă abstractă nu necesită implementarea tuturor metodelor superclasei sale.
O clasă poate implementa mai multe interfețe, dar poate extinde o singură clasă abstractă.
19) Care sunt implicațiile de performanță ale interfețelor asupra claselor abstracte?
Interfețele sunt mai lente ca performanță în comparație cu clasele abstracte, deoarece sunt necesare indirectii suplimentare pentru interfețe. Un alt factor cheie de luat în considerare pentru dezvoltatori este că orice clasă poate extinde o singură clasă abstractă, în timp ce o clasă poate implementa mai multe interfețe.
Utilizarea interfețelor pune, de asemenea, o povară suplimentară pentru dezvoltatori, deoarece de fiecare dată când o interfață este implementată într-o clasă; Dezvoltatorul este forțat să implementeze fiecare metodă de interfață.
20) Importul unui pachet importă și sub-pachetele acestuia în Java?
În java, atunci când un pachet este importat, subpachetele sale nu sunt importate și dezvoltatorul trebuie să le importe separat dacă este necesar.
De exemplu, dacă un dezvoltator importă un pachet university.*, toate clasele din pachetul numit university sunt încărcate, dar nicio clasă din subpachet nu este încărcată. Pentru a încărca clasele din subpachetul său (să zicem departamentul), dezvoltatorul trebuie să le importe în mod explicit, după cum urmează:
Import university.department.*
21) Putem declara metoda principală a clasei noastre ca fiind privată?
În java, metoda principală trebuie să fie public static pentru a rula corect orice aplicație. Dacă metoda principală este declarată privată, dezvoltatorul nu va primi nicio eroare de compilare, totuși nu va fi executată și va da o eroare de rulare.
22) Cum putem transmite un argument unei funcții prin referință în loc să trecem prin valoare?
În java, putem transmite argument unei funcții numai după valoare și nu prin referință.
23) Cum este serializat un obiect în java?
În java, pentru a converti un obiect în flux de octeți prin serializare, o interfață cu numele Serializable este implementată de clasă. Toate obiectele unei clase care implementează o interfață serializabilă sunt serializate și starea lor este salvată în flux de octeți.
24) Când ar trebui să folosim serializarea?
Serializarea este utilizată atunci când datele trebuie transmise prin rețea. Folosind serializarea, starea obiectului este salvată și convertită în flux de octeți. Fluxul de octeți este transferat prin rețea și obiectul este recreat la destinație.
25) Este obligatoriu ca un Try Block să fie urmat de un Catch Block în? Java pentru gestionarea excepțiilor?
Try block trebuie să fie urmat fie de Catch block, fie de Finally block sau de ambele. Orice excepție aruncată din blocul try trebuie să fie fie prinsă în blocul catch, fie orice sarcini specifice care trebuie efectuate înainte ca avortul codului să fie introdus în blocul Finally.
Java Întrebări și răspunsuri la interviu pentru cei cu experiență
26) Există vreo modalitate de a sări peste blocul de excepție, chiar dacă apare o excepție în blocul de excepție?
Dacă se ridică o excepție în blocul Try, controlul trece la blocul catch dacă există, altfel pentru a bloca în cele din urmă. Blocul Finally este întotdeauna executat atunci când apare o excepție și singura modalitate de a evita executarea oricăror instrucțiuni în blocul Finally este anularea forțată a codului, scriind următoarea linie de cod la sfârșitul blocului try:
System.exit(0);
27) Când este invocat constructorul unei clase?
Constructorul unei clase este invocat de fiecare dată când un obiect este creat cu un cuvânt cheie nou.
De exemplu, în următoarea clasă două obiecte sunt create folosind un cuvânt cheie nou și, prin urmare, constructorul este invocat de două ori.
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) Poate o clasă să aibă mai mulți constructori?
Da, o clasă poate avea mai mulți constructori cu parametri diferiți. Ce constructor este folosit pentru crearea obiectelor depinde de argumentele transmise în timpul creării obiectelor.
29) Putem suprascrie metodele statice ale unei clase?
Nu putem trece peste metodele statice. Metodele statice aparțin unei clase și nu obiectelor individuale și sunt rezolvate în momentul compilării (nu în timpul execuției). Chiar dacă încercăm să suprascriem metoda statică, nu vom obține o eroare de complitare și nici impactul suprascrierii la rularea cod.
30) În exemplul de mai jos, care va fi rezultatul?
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: Ieșirea va fi:
Se afișează din subclasă
Imprimare de la superclasă
31) String este un tip de date în java?
String nu este un tip de date primitiv în Java. Când un șir este creat în java, este de fapt un obiect al JavaClasa .Lang.String care este creată. După crearea acestui obiect șir, toate metodele încorporate ale clasei String pot fi utilizate pe obiectul șir.
32) În exemplul de mai jos, câte obiecte String sunt create?
String s1="I am Java Expert"; String s2="I am C Expert"; String s3="I am Java Expert";
În exemplul de mai sus, două obiecte ale JavaSunt create clase .Lang.String. s1 și s3 sunt referințe la același obiect.
33) De ce Strings in Java sunt numite Imuabile?
În Java, obiectele șir sunt numite imuabile, deoarece odată ce valoarea a fost atribuită unui șir, aceasta nu poate fi schimbată și, dacă este schimbat, este creat un nou obiect.
În exemplul de mai jos, referința str se referă la un obiect șir având valoarea „Valoarea unu”.
String str="Value One";
Când îi este atribuită o nouă valoare, este creat un nou obiect String și referința este mutată la noul obiect.
str="New Value";
34) Care este diferența dintre o matrice și Vector?
O matrice grupează date de același tip primitiv și este de natură statică, în timp ce vectorii sunt de natură dinamică și pot deține date de diferite tipuri de date.
35) Ce este multi-threading?
Multi threading este un concept de programare pentru a rula mai multe sarcini într-o manieră concomitentă în cadrul unui singur program. Threadurile au aceeași stivă de procese și rulează în paralel. Ajută la îmbunătățirea performanței oricărui program.
36) De ce este folosită Interfața rulabilă în Java?
Interfața rulabilă este utilizată în Java pentru implementarea aplicațiilor cu mai multe fire. JavaInterfața .Lang.Runnable este implementată de o clasă pentru a suporta mai multe fire.
37) Care sunt cele două moduri de implementare a multi-threading-ului în Java?
Aplicațiile cu mai multe fire pot fi dezvoltate în Java folosind oricare dintre următoarele două metodologii:
1) Prin utilizarea Java.Lang.Interfață rulabilă. Clasele implementează această interfață pentru a activa mai multe fire. Există o metodă Run() în această interfață care este implementată.
2) Prin scrierea unei clase care se extind Java.Lang.Clasa de fir.
38) Când sunt necesare o mulțime de modificări în date, care ar trebui să fie o preferință pentru a fi utilizat? String sau StringBuffer?
De la StringBuffers sunt de natură dinamică și putem schimba valorile StringBuffer obiecte, spre deosebire de String, care este imuabil, este întotdeauna o alegere bună să utilizați StringBuffer când datele sunt modificate prea mult. Dacă folosim String într-un astfel de caz, pentru fiecare modificare de date va fi creat un nou obiect String, care va reprezenta o suprasarcină suplimentară.
39) Care este scopul utilizării Break în fiecare caz de Switch Statement?
Break este folosit după fiecare caz (cu excepția ultimului) într-un comutator, astfel încât codul să se rupă după cazul valid și să nu curgă nici în cazurile în curs.
Dacă break-ul nu este folosit după fiecare caz, toate cazurile după caz valid sunt, de asemenea, executate, rezultând rezultate greșite.
40) Cum se face colectarea gunoiului Java?
În java, când un obiect nu mai este referit, colectarea gunoiului are loc și obiectul este distrus automat. Pentru colectarea automată a gunoiului, java apelează fie metoda System.gc() fie metoda Runtime.gc().
41) Cum putem executa orice cod chiar înainte de metoda principală?
Dacă vrem să executăm orice instrucțiuni chiar înainte de a crea obiecte la momentul încărcării clasei, putem folosi un bloc static de cod în clasă. Orice instrucțiuni din acest bloc static de cod vor fi executate o dată la momentul încărcării clasei chiar înainte de crearea obiectelor în metoda principală.
42) Poate o clasă să fie o super clasă și o subclasă în același timp? Dați exemplu.
Dacă se folosește o ierarhie de moștenire, o clasă poate fi o super clasă pentru o altă clasă și o subclasă pentru o altă clasă în același timp.
În exemplul de mai jos, clasa continent este o subclasă de clasă mondială și este super clasă de clasă de țară.
public class world { .......... } public class continenet extends world { ............ } public class country extends continent { ...................... }
43) Cum sunt create obiectele unei clase dacă nu este definit niciun constructor în clasă?
Chiar dacă nu este definit niciun constructor explicit într-o clasă java, obiectele sunt create cu succes, deoarece un constructor implicit este utilizat implicit pentru crearea obiectelor. Acest constructor nu are parametri.
44) În multi-threading, cum ne putem asigura că o resursă nu este utilizată de mai multe fire simultan?
În multi-threading, accesul la resursele care sunt partajate între mai multe fire poate fi controlat utilizând conceptul de sincronizare. Folosind cuvânt cheie sincronizat, ne putem asigura că doar un fir de execuție poate folosi o resursă partajată la un moment dat, iar alții pot obține controlul asupra resursei numai după ce aceasta a devenit liberă de celălalt care o folosește.
45) Putem numi constructorul unei clase de mai multe ori pentru un obiect?
Constructorul este apelat automat atunci când creăm un obiect folosind un cuvânt cheie nou. Este apelat o singură dată pentru un obiect în momentul creării obiectului și, prin urmare, nu putem invoca din nou constructorul pentru un obiect după crearea acestuia.
46) Există două clase numite classA și classB. Ambele clase sunt în același pachet. Un membru privat al clasei A poate fi accesat de un obiect al clasei B?
Membrii privați ai unei clase nu sunt accesibili în afara domeniului de aplicare a acelei clase și orice altă clasă, chiar și din același pachet, nu îi poate accesa.
47) Putem avea două metode într-o clasă cu același nume?
Putem defini două metode într-o clasă cu același nume, dar cu număr/tip diferit de parametri. Ce metodă va fi invocată va depinde de parametrii trecuți.
De exemplu, în clasa de mai jos avem două metode de imprimare cu același nume, dar cu parametri diferiți. În funcție de parametri, unul corespunzător va fi numit:
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) Cum putem face o copie a unui obiect java?
Putem folosi conceptul de clonare pentru a crea o copie a unui obiect. Folosind clonare, creăm copii cu starea reală a unui obiect.
Clone() este o metodă de interfață Cloneable și, prin urmare, interfața Cloneable trebuie implementată pentru a face copii de obiecte.
49) Care este beneficiul folosirii moștenirii?
Avantajul cheie al utilizării moștenirii este reutilizarea codului, deoarece moștenirea permite subclaselor să refolosească codul superclasei sale. Polimorfismul (extensibilitatea) este un alt mare beneficiu care permite introducerea de noi funcționalități fără a afecta clasele derivate existente.
50) Care este specificatorul de acces implicit pentru variabilele și metodele unei clase?
Specificatorul de acces implicit pentru variabile și metodă este protejat de pachet, adică variabilele și clasa sunt disponibile pentru orice altă clasă, dar în același pachet, nu în afara pachetului.
51) Dați un exemplu de utilizare a Pointers în Java clasă.
Nu există indicii în Java. Deci nu putem folosi conceptul de pointeri în Java.
52) Cum putem restricționa moștenirea pentru o clasă, astfel încât nicio clasă să nu poată fi moștenită de la ea?
Dacă dorim ca o clasă să nu fie extinsă mai departe de nicio clasă, putem folosi cuvântul cheie Final cu numele clasei.
În exemplul următor, clasa Stone este Finală și nu poate fi extinsă
public Final Class Stone { // Class methods and Variables }
53) Care este domeniul de acces al specificatorului de acces protejat?
Când o metodă sau o variabilă este declarată cu specificatorul de acces protejat, aceasta devine accesibilă în aceeași clasă, orice altă clasă a aceluiași pachet, precum și o sub-clasă.
Modificatorul | Clasă | Pachet | Subclasă | Lume |
---|---|---|---|---|
public | Y | Y | Y | Y |
protejat | Y | Y | Y | N |
nici un modificator | Y | Y | N | N |
privat | Y | N | N | N |
54) Care este diferența dintre Stack și Queue?
Stack și Queue ambele sunt folosite ca substituent pentru o colecție de date. Diferența principală dintre o stivă și o coadă este că stiva se bazează pe principiul Last in First Out (LIFO), în timp ce o coadă se bazează pe principiul FIFO (First In First Out).
55) În java, cum putem interzice serializarea variabilelor?
Dacă dorim ca anumite variabile ale unei clase să nu fie serializate, putem folosi cuvântul cheie tranzitoriu în timp ce le declara. De exemplu, variabila trans_var de mai jos este o variabilă tranzitorie și nu poate fi serializată:
public class transientExample { private transient trans_var; // rest of the code }
56) Cum putem folosi tipurile de date primitive ca obiecte?
Tipurile de date primitive precum int pot fi tratate ca obiecte prin utilizarea claselor lor de wrapper respective. De exemplu, Integer este o clasă wrapper pentru tipul de date primitiv int. Putem aplica diferite metode unei clase wrapper, la fel ca orice alt obiect.
57) Ce tipuri de excepții sunt prinse în timpul compilării?
Excepțiile verificate pot fi detectate în momentul compilării programului. Excepțiile verificate trebuie gestionate folosind try catch block în cod pentru a compila cu succes codul.
58) Descrieți diferite stări ale unui fir.
Un fir în Java poate fi în oricare dintre următoarele stări:
- Gata: Când este creat un fir, acesta este în starea Gata.
- În curs de rulare: un fir de execuție în prezent este în stare de rulare.
- În așteptare: un fir care așteaptă un alt fir pentru a elibera anumite resurse este în stare de așteptare.
- Dead: Un fir care a dispărut după execuție este în stare mort.
59) Putem folosi un constructor implicit al unei clase chiar dacă este definit un constructor explicit?
Java oferă un constructor implicit fără argument dacă nu este definit niciun constructor explicit în a Java clasă. Dar dacă a fost definit un constructor explicit, constructorul implicit nu poate fi invocat, iar dezvoltatorul poate folosi numai acei constructori care sunt definiți în clasă.
60) Putem suprascrie o metodă folosind același nume de metodă și argumente, dar tipuri diferite de returnare?
Condiția de bază a suprascrierii metodei este aceea că numele metodei, argumentele precum și tipul de returnare trebuie să fie exact aceleași cu cele ale metodei care este înlocuită. Prin urmare, utilizarea unui tip de returnare diferit nu anulează o metodă.
61) Care va fi rezultatul următoarei bucăți de cod?
public class operatorExample { public static void main(String args[]) { int x = 4; system.out.println(x++); } }
În acest caz se folosește operatorul postfix ++ care returnează mai întâi valoarea și apoi crește. Prin urmare, ieșirea va fi 4.
61) O persoană spune că a compilat o clasă java cu succes fără să aibă măcar o metodă principală în ea? Este posibil?
metoda principală este un punct de intrare al Java clasa și este totuși necesar pentru execuția programului; o clasă este compilată cu succes chiar dacă nu are o metodă principală. Totuși, nu poate fi rulat.
62) Putem apela o metodă non-statică din interiorul unei metode statice?
Metodele non-statice sunt deținute de obiectele unei clase și au un domeniu de aplicare la nivel de obiect și pentru a apela metodele non-statice dintr-un bloc static (cum ar fi dintr-o metodă principală statică), un obiect al clasei trebuie creat mai întâi. Apoi, folosind referința la obiect, aceste metode pot fi invocate.
63) Care sunt cele două variabile de mediu care trebuie setate pentru a rula oricare Java programe?
Java programele pot fi executate într-o mașină numai după ce următoarele două variabile de mediu au fost setate corect:
- variabila PATH
- variabilă CLASSPATH
64) Variabilele pot fi utilizate în Java fara initializare?
In Java, dacă o variabilă este utilizată într-un cod fără inițializare prealabilă de către o valoare validă, programul nu se compila și dă o eroare deoarece nu este atribuită nicio valoare implicită variabilelor din Java.
65) Poate o clasă în Java fi moștenit din mai multe clase?
In Java, o clasă poate fi derivată dintr-o singură clasă și nu din mai multe clase. Moștenirile multiple nu sunt acceptate de Java.
66) Poate un constructor să aibă un nume diferit de un nume de clasă în Java?
Constructor în Java trebuie să aibă același nume cu numele clasei și dacă numele este diferit, nu acționează ca un constructor, iar compilatorul îl consideră o metodă normală.
67) Care va fi rezultatul Round(3.7) și Ceil(3.7)?
Round(3.7) returnează 4 și Ceil(3.7) returnează 4.
68) Putem folosi goto in Java pentru a merge la o anumită linie?
In Java, nu există cuvânt cheie goto și java nu acceptă această caracteristică de acces la o anumită linie etichetată.
69) Poate fi reluat un fir mort?
În java, un fir care este în stare mort nu poate fi pornit din nou. Nu există nicio modalitate de a reporni un fir mort.
70) Este corectă următoarea declarație de clasă?
public abstract final class testClass { // Class methods and variables }
Răspuns: Declarația de clasă de mai sus este incorectă, deoarece o clasă abstractă nu poate fi declarată finală.
71) Este necesar JDK pe fiecare mașină pentru a rula a Java program?
JDK este un kit de dezvoltare Java și este necesar doar pentru dezvoltare și pentru a rula a Java program pe o mașină, nu este necesar JDK. Este necesar doar JRE.
72) Care este diferența dintre comparația făcută prin metoda equals și operatorul ==?
In Java, metoda equals() este folosită pentru a compara conținutul a două obiecte șir și returnează adevărat dacă cele două au aceeași valoare, în timp ce operatorul == compară referințele a două obiecte șir.
În exemplul următor, equals() returnează adevărat deoarece cele două obiecte șir au aceleași valori. Cu toate acestea, operatorul == returnează false deoarece ambele obiecte șir se referă la obiecte diferite:
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) Este posibil să se definească o metodă în Java clasă, dar furnizați implementarea sa în codul unui alt limbaj precum C?
Da, putem face acest lucru folosind metode native. În cazul dezvoltării bazate pe metode native, definim metode statice publice în programul nostru Java clasa fără implementarea ei și apoi implementarea se face într-un alt limbaj precum C separat.
74) Cum sunt definiți destructorii în Java?
In Java, nu există destructori definiți în clasă, deoarece nu este nevoie să faceți acest lucru. Java are propriul mecanism de colectare a gunoiului care face treaba automat prin distrugerea obiectelor atunci când nu se mai face referire.
Java Întrebări și răspunsuri la interviu pentru peste 5 ani de experiență
75) Poate o variabilă să fie locală și statică în același timp?
Nu o variabilă nu poate fi statică și locală în același timp. Definirea unei variabile locale ca static dă o eroare de compilare.
76) Putem avea metode statice într-o interfață?
Metodele statice nu pot fi suprascrise în nicio clasă, în timp ce orice metode dintr-o interfață sunt implicit abstracte și ar trebui să fie implementate în clasele care implementează interfața. Deci nu are sens să existe metode statice într-o interfață în Java.
77) Într-o clasă care implementează o interfață, putem schimba valoarea oricărei variabile definite în interfață?
Nu, nu putem schimba valoarea vreunei variabile a unei interfețe din clasa de implementare, deoarece toate variabilele definite în interfață sunt implicit publice, statice și variabilele finale și finale sunt ca niște constante care nu pot fi modificate mai târziu.
78) Este corect să spunem că datorită funcției de colectare a gunoiului în Java, un program java nu iese niciodată din memorie?
Chiar dacă colectarea automată a gunoiului este asigurată de Java, nu asigură faptul că a Java programul nu va ieși din memorie deoarece există posibilitatea ca crearea Java obiectele se realizează într-un ritm mai rapid în comparație cu colectarea gunoiului, ceea ce duce la umplerea tuturor resurselor de memorie disponibile.
Deci, colectarea gunoiului ajută la reducerea șanselor ca un program să iasă din memorie, dar nu asigură acest lucru.
79) Putem avea alt tip de returnare decât void pentru metoda principală?
Nu Java metoda principală a clasei poate avea doar tipul de returnare void pentru ca programul să fie executat cu succes.
Cu toate acestea, dacă trebuie neapărat să returnați o valoare la la finalizarea metodei principale, puteți utiliza System.exit(int status)
80) Vreau să ajung din nou și să folosesc un obiect după ce a fost colectat gunoiul. Cum e posibil?
Odată ce un obiect a fost distrus de colectorul de gunoi, acesta nu mai există în heap și nu mai poate fi accesat din nou. Nu există nicio modalitate de a-l referi din nou.
81) În Java programare fir, care metodă este o implementare obligatorie pentru toate firele?
Run() este o metodă de interfață Runnable care trebuie implementată de toate firele.
82) Vreau să controlez conexiunile la baza de date în programul meu și vreau ca doar un fir să poată face conexiunea la baza de date la un moment dat. Cum pot implementa această logică?
Răspuns: Acest lucru poate fi implementat prin utilizarea conceptului de sincronizare. Codul legat de baza de date poate fi plasat într-o metodă care hs sincronizate cuvânt cheie astfel încât doar un fir să îl poată accesa la un moment dat.
83) Cum poate fi aruncată manual o excepție de către un programator?
Pentru a arunca manual o excepție într-un bloc de cod, arunca este folosit cuvântul cheie. Apoi această excepție este prinsă și gestionată în blocul catch.
public void topMethod() { try { excMethod(); } catch (ManualException e) {} } public void excMethod { String name = null; if (name == null) { throw (new ManualException("Exception thrown manually "); } }
84) Vreau ca clasa mea să fie dezvoltată în așa fel încât nicio altă clasă (chiar o clasă derivată) să-și poată crea obiectele. Cum pot face asta?
Dacă declarăm constructorul unei clase ca privat, acesta nu va fi accesibil de către nicio altă clasă și, prin urmare, nicio altă clasă nu va putea să o instanțieze și formarea obiectului său va fi limitată doar la sine.
85) Cum sunt stocate obiectele Java?
În Java, fiecare obiect când este creat primește un spațiu de memorie dintr-un heap. Când un obiect este distrus de un colector de gunoi, spațiul alocat acestuia din heap este realocat heap și devine disponibil pentru orice obiecte noi.
86) Cum putem găsi dimensiunea reală a unui obiect pe grămadă?
În java, nu există nicio modalitate de a afla dimensiunea exactă a unui obiect din heap.
87) Care dintre următoarele clase va avea mai multă memorie alocată?
Clasa A: Trei metode, patru variabile, fără obiect
Clasa B: Cinci metode, trei variabile, niciun obiect
Memoria nu este alocată înainte de crearea obiectelor. Deoarece pentru ambele clase, nu există obiecte create, astfel încât nicio memorie nu este alocată pe heap pentru nicio clasă.
88) Ce se întâmplă dacă o excepție nu este gestionată într-un program?
Dacă o excepție nu este gestionată într-un program folosind blocuri try catch, programul este anulat și nicio instrucțiune nu se execută după instrucțiunea care a cauzat aruncarea excepției.
89) Am mai mulți constructori definiți într-o clasă. Este posibil să apelați un constructor din corpul altui constructor?
Dacă o clasă are mai mulți constructori, este posibil să apelați un constructor din corpul altuia folosind acest().
90) Ce se înțelege prin clasă anonimă?
O clasă anonimă este o clasă definită fără nume într-o singură linie de cod, folosind un cuvânt cheie nou.
De exemplu, în codul de mai jos am definit o clasă anonimă într-o linie de cod:
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) Există o modalitate de a mări dimensiunea unui tablou după declararea acesteia?
Matricele sunt statice și odată ce i-am specificat dimensiunea, nu o putem schimba. Dacă dorim să folosim astfel de colecții în care este posibil să avem nevoie de o schimbare de dimensiune (nu de articole), ar trebui să preferăm vectorul în locul matricei.
92) Dacă o aplicație are mai multe clase în ea, este bine să aveți o metodă principală în mai multe clase?
Dacă există o metodă principală în mai multe clase într-o aplicație java, aceasta nu va cauza nicio problemă, deoarece punctul de intrare pentru orice aplicație va fi o anumită clasă, iar codul va începe doar de la metoda principală a acelei clase specifice.
93) Doresc să păstrez datele obiectelor pentru utilizare ulterioară. Care este cea mai bună abordare pentru a face acest lucru?
Cea mai bună modalitate de a păstra datele pentru utilizare ulterioară este utilizarea conceptului de serializare.
94) În ce este o clasă locală Java?
In Java, dacă definim o nouă clasă în interiorul unui anumit bloc, aceasta se numește clasă locală. O astfel de clasă are un domeniu de aplicare local și nu este utilizabilă în afara blocului unde este definită.
95) String și StringBuffer ambele reprezintă obiecte String. Putem compara String și StringBuffer in Java?
Deși String și StringBuffer ambele reprezintă obiecte String, nu le putem compara între ele și dacă încercăm să le comparăm, obținem o eroare.
96) De ce API este furnizat Java pentru operații pe set de obiecte?
Java oferă un API Collection care oferă multe metode utile care pot fi aplicate pe un set de obiecte. Unele dintre clasele importante oferite de Collection API includ ArrayList, HashMap, TreeSet și TreeMap.
97) Putem arunca orice alt tip la tip boolean cu tip casting?
Nu, nu putem proiecta niciun alt tip primitiv la tipul de date boolean și nici nu putem proiecta tipul de date boolean la orice alt tip de date primitiv.
98) Putem folosi diferite tipuri de returnare pentru metode atunci când sunt suprascrise?
Cerința de bază a înlocuirii metodei în Java este că metoda suprascrisă ar trebui să aibă același nume și parametri. Dar o metodă poate fi înlocuită cu un alt tip de returnare, atâta timp cât noul tip de returnare extinde originalul.
De exemplu, metoda returnează un tip de referință.
Class B extends A { A method(int x) { //original method } B method(int x) { //overridden method } }
99) Care este clasa de bază a tuturor claselor de excepție?
In Java, Java.lang.Throwable
este superclasa tuturor claselor de excepție și toate clasele de excepție sunt derivate din această clasă de bază.
100) Care este ordinea de apelare a constructorilor în moștenire?
În caz de moștenire, atunci când este creat un nou obiect al unei clase derivate, mai întâi este invocat constructorul superclasei și apoi este invocat constructorul clasei derivate.
Pregătiți-vă pentru interviul de angajare!!! Treci prin Java tutorial pentru a fi mai bine pregătit.
Acest detaliat Java Mock Test Quiz vă va ajuta să curățați îndoielile cu privire la Java întrebările interviului și, de asemenea, vă va ajuta să rezolvați interviul.
Acestea Java si Java 8 întrebări la interviu vă va ajuta, de asemenea, în viva (orale)