Top 100 de întrebări și răspunsuri la interviurile Java (Descărcați PDF)

Cuprins:

Anonim

Descărcați PDF

Am compilat cele mai frecvente întrebări și răspunsuri la interviurile Java care vă vor ajuta să vă pregătiți pentru întrebările de bază ale interviului Java pe care vi le-ar putea pune un intervievator în timpul interviului. În această listă de întrebări de bază pentru interviul Java, am acoperit toate întrebările de bază și avansate ale interviului de bază Java cu răspunsuri detaliate pentru a vă ajuta să ștergeți interviul de angajare.

Următoarea listă conține 100 de întrebări importante pentru interviul Java Java pentru începători, precum și întrebări și răspunsuri pentru interviuri Java pentru programatorii cu experiență, pentru ai ajuta să se pregătească pentru interviu. Acest ghid detaliat de întrebări de interviu pentru programarea Java vă va ajuta să vă spargeți cu ușurință interviul de muncă.

Întrebări și răspunsuri de bază pentru interviuri Java pentru cei mai noi și cu experiență

Q1. Care este diferența dintre o clasă internă și o subclasă?

Răspuns: O clasă interioară este o clasă care este cuibărită într-o altă clasă. O clasă interioară are drepturi de acces pentru clasa care o cuibărește și poate accesa toate variabilele și metodele definite în clasa exterioară.

O subclasă este o clasă care moștenește de la o altă clasă numită superclasă. Subclasa poate accesa toate metodele și câmpurile publice și protejate din superclasa sa.

Q2. Care sunt diferiții specificatori de acces pentru clasele Java?

Răspuns: În Java, specificatorii de acces sunt cuvintele cheie folosite înainte de un 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: Metoda, câmpul poate fi accesat din aceeași clasă căreia îi aparțin sau din subclasele ș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: Metoda, câmpul poate fi accesat din aceeași clasă căreia îi aparțin.

Q3. Care este scopul metodelor statice și al variabilelor statice?

Răspuns: Când există cerința de a partaja o metodă sau o variabilă între mai multe obiecte ale unei clase în loc să creăm copii separate pentru fiecare obiect, folosim cuvânt cheie static pentru a crea o metodă sau o variabilă partajată pentru toate obiectele.

Q4. Ce este încapsularea datelor și care este semnificația sa?

Răspuns: Incapsularea este un concept în programarea orientată pe obiecte pentru combinarea proprietăților și metodelor într-o singură unitate.

Incapsularea îi ajută pe programatori să urmeze o abordare modulară pentru dezvoltarea de software, deoarece fiecare obiect are propriul set de metode și variabile și își servește funcțiile independent de alte obiecte. Incapsularea servește, de asemenea, scopului de ascundere a datelor.

Q5. Ce este o clasă de singleton? Dați un exemplu practic de utilizare a acestuia.

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.

Q6. Ce sunt buclele în Java? Care sunt trei tipuri de bucle?

Răspuns: Buclarea este utilizată în programare pentru a executa în mod repetat o instrucțiune sau un bloc de instrucțiuni. Există trei tipuri de bucle în Java:

1) Pentru bucle

Pentru bucle sunt utilizate în java pentru a executa instrucțiuni în mod repetat pentru un anumit număr de ori. Pentru bucle sunt folosite când programatorul știe de câte ori se execută instrucțiunile.

2) În timp ce bucle

Bucla While este utilizată atunci când anumite instrucțiuni trebuie executate în mod repetat până când se îndeplinește o condiție. În buclele while, starea este verificată mai întâi înainte de executarea instrucțiunilor.

3) Faceți în timp ce bucle

Bucla Do While este identică cu bucla While, cu doar diferența, condiția este verificată după executarea blocului de instrucțiuni. Prin urmare, în cazul unei bucle do while, instrucțiunile sunt executate cel puțin o dată.

Î7: Ce este un Loop infinit? Cum se declară bucla infinită?

Răspuns: O buclă infinită rulează fără nicio condiție și rulează infinit. O buclă infinită poate fi ruptă prin definirea oricărei logici de rupere din corpul blocurilor de instrucțiuni.

Bucla infinită este declarată după cum urmează:

for (;;){// Statements to execute// Add any loop breaking logic}

Q8. Care este diferența dintre declarația continue și break?

Răspuns: rupeți și continuați sunt două cuvinte cheie importante utilizate în bucle. Când un cuvânt cheie break este folosit într-o buclă, bucla este ruptă instantaneu, în timp ce când este utilizat cuvântul cheie continuu, iterația curentă este întreruptă și bucla continuă cu următoarea iterație.

În exemplul de mai jos, Bucla este ruptă când contorul atinge 4.

for (counter = 0; counter & lt; 10; counter++)system.out.println(counter);if (counter == 4) {break;}}

În exemplul de mai jos, când contorul atinge 4, bucla sare 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");}

Q9. Care este diferența dintre variabilele duble și variabile flotante în Java?

Răspuns: În Java, float ia 4 octeți în memorie, în timp ce Double ia 8 octeți în memorie. Float este un număr zecimal cu virgulă mobilă de precizie, în timp ce Double este un număr zecimal cu precizie dublă.

Q10. Ce este cuvântul cheie final în Java? Dă un exemplu.

Răspuns: Î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 atribuită avalue:

Private Final int const_val = 100

Când o metodă este declarată definitivă, NU poate fi suprascrisă de subclasă. Această metodă este mai rapidă decât orice altă metodă, deoarece este rezolvată la momentul respectării.

Când o clasă este declarată definitivă, nu poate fi subclasată. Exemplu String, Integer și alte clase de împachetare.

Q11. Ce este operatorul ternar? Dă un exemplu.

Răspuns: Operatorul ternar, numit și operator condițional, este utilizat pentru a decide ce valoare să atribuiți unei variabile pe baza unei evaluări a valorii booleene. Este notat ca?

În exemplul de mai jos, dacă rangul este 1, stării 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);}}

Q12: Cum puteți genera numere aleatorii în Java?

Răspuns:

  • Folosind Math.random () puteți genera numere aleatorii în intervalul mai mare sau egal cu 0,1 și mai mic decât 1,0
  • Utilizarea clasei Random în pachetul java.util

Q13. Ce este cazul de comutare implicit? Dă exemplu.

Răspuns: Într-o instrucțiune de comutare, majuscule și minuscule se execută atunci când nu se potrivește alte condiții de comutare. Cazul implicit este un caz opțional. Acesta poate fi declarat doar după ce toate celelalte cazuri de comutare au fost codificate.

În exemplul de mai jos, când scorul nu este 1 sau 2, se utilizează majuscule.

public class switchExample {int score = 4;public static void main(String args[]) {switch (score) {case 1:system.out.println("Score is 1");break;case 2:system.out.println("Score is 2");break;default:system.out.println("Default Case");}}}

Q14. Care este clasa de bază din Java din care derivă toate clasele?

Răspuns: java.lang.object

Q15. Poate metoda main () din Java să returneze orice date?

Răspuns: În java, metoda main () nu poate returna date și, prin urmare, este întotdeauna declarată cu un tip de returnare nulă.

Q16. Ce sunt pachetele Java? Care este semnificația pachetelor?

Răspuns: În Java, pachetul este o colecție de clase și interfețe care sunt grupate împreună, deoarece sunt legate între ele. Utilizarea pachetelor îi ajută pe dezvoltatori să modularizeze codul și să grupeze codul pentru o reutilizare adecvată. Odată ce codul a fost ambalat în pachete, acesta poate fi importat în alte clase și utilizat.

Q17. Putem declara o clasă ca abstract fără a avea nicio metodă abstractă?

Răspuns: Da, putem crea o clasă abstractă folosind un cuvânt cheie abstract înainte de numele clasei, chiar dacă nu are nicio metodă abstractă. Cu toate acestea, dacă o clasă are chiar și o metodă abstractă, aceasta trebuie declarată abstractă, altfel va da o eroare.

Q18. Care este diferența dintre o clasă abstractă și o interfață în Java?

Răspuns: Diferența principală dintre o clasă abstractă și o interfață este că o interfață poate avea doar declarația metodelor 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 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ă.

Q19. Care sunt implicațiile de performanță ale interfețelor asupra claselor abstracte?

Răspuns: Interfețele sunt mai lente în performanță în comparație cu clasele abstracte, deoarece sunt necesare indirecții suplimentare pentru interfețe. Un alt factor cheie pe care dezvoltatorii trebuie să-l ia în considerare este că orice clasă poate extinde o singură clasă abstractă, în timp ce o clasă poate implementa multe interfețe.

Utilizarea interfețelor pune, de asemenea, o povară suplimentară asupra dezvoltatorilor, de fiecare dată când o interfață este implementată într-o clasă; dezvoltatorul este obligat să implementeze fiecare metodă de interfață.

Q20. Importarea unui pachet importă și subpachetele sale în Java?

Răspuns: În Java, când este importat un pachet, subpachetele sale nu sunt importate și dezvoltatorul trebuie să le importe separat, dacă este necesar.

De exemplu, dacă un dezvoltator importă o universitate de pachet. *, Toate clasele din pachetul denumit universitate sunt încărcate, dar nu sunt încărcate clase din subpachet. Pentru a încărca clasele din subpachetul său (să zicem departamentul), dezvoltatorul trebuie să îl importe în mod explicit după cum urmează:

Import universitate.departament. *

Q21. Putem declara metoda principală a clasei noastre ca fiind privată?

Răspuns: În Java, metoda principală trebuie să fie statică publică pentru a rula corect orice aplicație. Dacă metoda principală este declarată privată, dezvoltatorul nu va primi nicio eroare de compilare, însă nu va fi executat și va da o eroare de execuție.

Q22. Cum putem transmite argumentul unei funcții prin referință în loc să trecem prin valoare?

Răspuns: În java, putem transmite argumentul unei funcții numai prin valoare și nu prin referință.

Q23. Cum este serializat un obiect în java?

Răspuns: Î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ă interfața serializabilă sunt serializate și starea lor este salvată în flux de octeți.

Q24. Când ar trebui să folosim serializarea?

Răspuns: 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.

Q25. Este obligatoriu ca un bloc de încercare să fie urmat de un bloc de captură în Java pentru gestionarea excepțiilor?

Răspuns: Încercați blocul trebuie să fie urmat fie de blocul Catch, fie de blocul Final sau de ambele. Orice excepție aruncată de la blocul de încercare trebuie fie capturată în blocul de captură, fie orice sarcini specifice care trebuie efectuate înainte ca avortul de cod să fie introdus în blocul Final.

Q26. Există vreo modalitate de a sări peste blocul de excepție chiar dacă există o excepție în blocul de excepție?

Răspuns: Dacă se ridică o excepție în blocul Încercați, controlul trece la blocul de captură dacă există altfel pentru a bloca în cele din urmă. În sfârșit, blocul este întotdeauna executat atunci când apare o excepție și singura modalitate de a evita executarea oricăror instrucțiuni în blocul În sfârșit este prin întreruperea codului forțat prin scrierea următoarei linii de cod la sfârșitul blocului try:

System.exit(0);

Q27. Când este invocat constructorul unei clase?

Răspuns: 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ă sunt create două obiecte 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();}}

Q28. Poate o clasă să aibă mai mulți constructori?

Răspuns: Da, o clasă poate avea mai mulți constructori cu parametri diferiți. Constructorul care se folosește pentru crearea obiectelor depinde de argumentele transmise în timpul creării obiectelor.

Q29. Putem anula metodele statice ale unei clase?

Răspuns: Nu putem suprascrie metodele statice. Metodele statice aparțin unei clase și nu unor obiecte individuale și sunt rezolvate în momentul compilării (nu în timpul rulării). Chiar dacă încercăm să suprascrieți metoda statică, nu vom primi o eroare de complitație și nici impactul suprascrierii atunci când rulați cod.

Q30. Î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();}}

Răspuns : Rezultatul va fi:

Afișare din subclasă

Afișare din superclasă

Q31. Șirul este un tip de date în java?

Răspuns: Șirul nu este un tip de date primitiv în java. Când un șir este creat în java, este de fapt un obiect al clasei Java.Lang.String care se creează. După crearea acestui obiect șir, toate metodele încorporate din clasa Șir pot fi utilizate pe obiectul șir.

Q32. În exemplul de mai jos, câte obiecte șir sunt create?

String s1="I am Java Expert";String s2="I am C Expert";String s3="I am Java Expert";

Răspuns: În exemplul de mai sus, sunt create două obiecte din clasa Java.Lang.String. s1 și s3 sunt referințe la același obiect.

Q33. De ce șirurile din Java sunt numite ca imuabile?

Răspuns: În java, obiectele șir sunt numite imuabile, deoarece odată ce valoarea a fost atribuită unui șir, nu poate fi modificată și, dacă este modificată, se creează un obiect nou.

În exemplul de mai jos, referința str se referă la un obiect șir având valoarea „Valoare unu”.

String str="Value One";

Când i se atribuie o nouă valoare, se creează un nou obiect String și referința este mutată în noul obiect.

str="New Value";

Q34. Care este diferența dintre o matrice și Vector?

Răspuns: O matrice grupează date de același tip primitiv și are o natură statică, în timp ce vectorii sunt dinamici și pot conține date de diferite tipuri de date.

Q35. Ce este multi-threading?

Răspuns: Multi threading este un concept de programare pentru a rula mai multe sarcini într-un mod simultan în cadrul unui singur program. Firele partajează aceeași stivă de proces și rulează în paralel. Ajută la îmbunătățirea performanței oricărui program.

Q36. De ce este utilizată interfața Runnable în Java?

Răspuns: Interfața Runnable este utilizată în java pentru implementarea aplicațiilor cu mai multe fire. Interfața Java.Lang.Runnable este implementată de o clasă pentru a sprijini multi threading.

Q37. Care sunt cele două moduri de a implementa multi-threading în Java?

Răspuns: Aplicațiile cu mai multe fire pot fi dezvoltate în Java utilizând oricare dintre următoarele două metodologii:

1. Prin utilizarea Java.Lang.Runnable Interface. Clasele implementează această interfață pentru a permite multi threading. Există o metodă Run () în această interfață care este implementată.

2. Scriind o clasă care extinde clasa Java.Lang.Thread.

Q38. Când sunt necesare multe modificări în date, care ar trebui să fie preferința de utilizat? String sau StringBuffer?

Răspuns: Deoarece StringBuffers au o natură dinamică și putem schimba valorile obiectelor StringBuffer spre deosebire de String, care este imuabil, este întotdeauna o alegere bună să utilizați StringBuffer atunci când datele sunt schimbate prea mult. Dacă folosim String într-un astfel de caz, pentru fiecare modificare de date va fi creat un nou obiect String, care va fi un cost suplimentar suplimentar.

Q39. Care este scopul utilizării Break în fiecare caz al Instrucțiunii Switch?

Răspuns: Pauza este utilizată după fiecare caz (cu excepția ultimului) într-un comutator, astfel încât codul să se rupă după cazul valid și să nu curgă și în cazurile de procedură.

Dacă pauza nu este utilizată după fiecare caz, toate cazurile după cazul valid sunt executate și rezultând rezultate greșite.

Q40. Cum se face colectarea gunoiului în Java?

Răspuns: În java, când un obiect nu mai este referențiat, are loc colectarea gunoiului și obiectul este distrus automat. Pentru colectarea automată a gunoiului java apelează fie metoda System.gc (), fie metoda Runtime.gc ().

Q41. Cum putem executa orice cod chiar înainte de metoda principală?

Răspuns: Dacă vrem să executăm orice instrucțiuni înainte chiar de a crea obiecte la timpul de încărcare al clasei, putem folosi un bloc static de cod din clasă. Orice declarații 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ă.

Q42. Poate o clasă să fie o super-clasă și o subclasă în același timp? Dă exemplu.

Răspuns: Dacă există o ierarhie a moștenirii folosită, o clasă poate fi o super-clasă pentru o altă clasă și o subclasă pentru alta, în același timp.

În exemplul de mai jos, clasa continentală este sub-clasă de clasă mondială și este super clasă de clasă de țară.

public class world {… .}public class continenet extends world {… }public class country extends continent {… .}

Q43. Cum sunt create obiectele unei clase dacă nu este definit un constructor în clasă?

Răspuns: Chiar dacă nu este definit un constructor explicit într-o clasă java, obiectele sunt create cu succes, deoarece un constructor implicit este implicit utilizat pentru crearea obiectelor. Acest constructor nu are parametri.

Q44. În multi-threading, cum ne putem asigura că o resursă nu este utilizată de mai multe thread-uri simultan?

Răspuns: În multi-threading, accesul la resursele care sunt partajate între mai multe thread-uri poate fi controlat prin utilizarea conceptului de sincronizare. Folosind cuvânt cheie sincronizat, ne putem asigura că doar un fir poate utiliza resursa partajată la un moment dat, iar alții pot obține controlul asupra resursei numai după ce a devenit liber de celălalt care o folosește.

Q45. Putem numi constructorul unei clase de mai multe ori pentru un obiect?

Răspuns: Constructorul este apelat automat atunci când creăm un obiect folosind un cuvânt cheie nou. Se numește 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.

Q46. Există două clase denumite classA și classB. Ambele clase se află în același pachet. Un membru privat al clasei A poate fi accesat de un obiect din clasa B?

Răspuns: Membrii privați ai unei clase nu sunt accesibile în afara domeniului acelei clase și orice altă clasă, chiar și din același pachet, nu le poate accesa.

Q47. Putem avea două metode într-o clasă cu același nume?

Răspuns: Putem defini două metode într-o clasă cu același nume, dar cu număr / tip de parametri diferiți. Metoda care trebuie invocată va depinde de parametrii trecuți.

De exemplu, în clasa de mai jos avem două metode de imprimare cu același nume, dar parametri diferiți. În funcție de parametri, unul adecvat 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");}}

Q48. Cum putem face o copie a unui obiect Java?

Răspuns: Putem folosi conceptul de clonare pentru a crea o copie a unui obiect. Folosind clona, ​​creăm copii cu starea reală a unui obiect.

Clona () este o metodă de interfață clonabilă și, prin urmare, interfața clonabilă trebuie implementată pentru a face copii de obiect.

Q49. Care este avantajul utilizării moștenirii?

Răspuns: Beneficiul principal al utilizării moștenirii este reutilizarea codului, deoarece moștenirea permite subclaselor să reutilizeze 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.

Q50. Care este specificatorul de acces implicit pentru variabilele și metodele unei clase?

Răspuns: Specificatorul de acces implicit pentru variabile și metodă este protejat de pachet, adică variabilele și clasa sunt disponibile oricărei alte clase, dar în același pachet, nu în afara pachetului.

Q51. Dați un exemplu de utilizare a indicatoarelor în clasa Java.

Răspuns: Nu există indicii în Java. Deci nu putem folosi conceptul de indicatori în Java.

Q52. Cum putem restricționa moștenirea unei clase, astfel încât nici o clasă să nu poată fi moștenită din aceasta?

Răspuns: Dacă dorim ca o clasă să nu fie extinsă de către 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}

Q53. Care este domeniul de acces al identificatorului de acces protejat?

Răspuns: Când o metodă sau o variabilă este declarată cu un identificator de acces protejat, aceasta devine accesibilă în aceeași clasă, în orice altă clasă din același pachet, precum și într-o subclasă.

Modificator

Clasă

Pachet

Subclasă

Lume

public

Da

Da

Da

Da

protejat

Da

Da

Da

N

fără modificator

Da

Da

N

N

privat

Da

N

N

N

Q54. Care este diferența dintre Stack și Queue?

Răspuns: Stack și Queue 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).

Q55. În Java, cum putem interzice serializarea variabilelor?

Răspuns: Dacă dorim ca anumite variabile ale unei clase să nu fie serializate, putem folosi cuvântul cheie tranzitoriu în timp ce le declarăm. 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}

Q56. Cum putem folosi tipurile de date primitive ca obiecte?

Răspuns: Tipurile de date primitive, cum ar fi int, pot fi tratate ca obiecte prin utilizarea claselor de ambalaj respective. De exemplu, Integer este o clasă wrapper pentru tipul de date primitiv int. Putem aplica diferite metode unei clase de împachetare, la fel ca orice alt obiect.

Q57. Ce tipuri de excepții sunt surprinse la compilare?

Răspuns: Excepțiile verificate pot fi surprinse în momentul compilării programului. Excepțiile verificate trebuie gestionate utilizând blocul try catch în cod pentru a compila cu succes codul.

Q58. Descrieți diferite stări ale unui fir.

Răspuns: 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.
  • Rularea: un fir executat în prezent este în stare de rulare.
  • În așteptare: un fir de așteptare pentru un alt fir pentru a elibera anumite resurse este în stare de așteptare.
  • Mort: Un fir care a murit după executare este în stare moartă.

Q59. Putem folosi un constructor implicit al unei clase chiar dacă este definit un constructor explicit?

Răspuns: Java oferă un constructor implicit fără argument dacă nu este definit un constructor explicit într-o clasă Java. Dar dacă a fost definit un constructor explicit, constructorul implicit nu poate fi invocat, iar dezvoltatorul poate folosi numai acei constructori definiți în clasă.

Q60. Putem suprascrie o metodă utilizând același nume și argumente ale metodei, dar diferite tipuri de returnare?

Răspuns: Condiția de bază a suprascrierii metodei este că numele metodei, argumentele, precum și tipul de returnare trebuie să fie exact aceleași ca și cele ale metodei suprascrise. Prin urmare, utilizarea unui alt tip de returnare nu suprascrie o metodă.

Q61. 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++);}}

Răspuns: Î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.

Q61. O persoană spune că a compilat cu succes o clasă java fără să aibă măcar o metodă principală? Este posibil?

Răspuns: metoda principală este un punct de intrare din clasa Java și este necesară pentru executarea programului; o clasă este compilată cu succes chiar dacă nu are o metodă principală. Nu poate fi rulat totuși.

Q62. Putem numi o metodă nestatică din interiorul unei metode statice?

Răspuns: Metodele nestatice sunt deținute de obiecte dintr-o clasă și au domeniul de aplicare la nivel de obiect și pentru a apela metodele nestatice dintr-un bloc static (cum ar fi dintr-o metodă statică principală), trebuie creat un obiect al clasei primul. Apoi, folosind referința obiectului, aceste metode pot fi invocate.

Q63. Care sunt cele două variabile de mediu care trebuie setate pentru a rula orice programe Java?

Răspuns: Programele Java pot fi executate într-o mașină numai după ce următoarele două variabile de mediu au fost setate corect:

  1. Variabilă PATH
  2. Variabilă CLASSPATH

Q64. Pot fi utilizate variabile în Java fără inițializare?

Răspuns: În Java, dacă o variabilă este utilizată într-un cod fără inițializare prealabilă de o valoare validă, programul nu compilează și dă o eroare deoarece nu este atribuită nici o valoare implicită variabilelor din Java.

Q65. Poate fi moștenită o clasă în Java de la mai multe clase?

Răspuns: În Java, o clasă poate fi derivată dintr-o singură clasă și nu din mai multe clase. Moștenirile multiple nu sunt acceptate de Java.

Q66. Poate un constructor să aibă un nume diferit de un nume de clasă în Java?

Răspuns: Constructorul din Java trebuie să aibă același nume ca și numele clasei și dacă numele este diferit, nu acționează ca un constructor, iar compilatorul îl consideră o metodă normală.

Q67. Care va fi rezultatul Round (3.7) și Ceil (3.7)?

Răspuns: Runda (3.7) returnează 4 și Plafonul (3.7) returnează 4.

Î68: Putem folosi goto în Java pentru a merge la o anumită linie?

Răspuns: În Java, nu există cuvinte cheie go și java nu acceptă această caracteristică de a merge la o anumită linie etichetată.

Q69. Se poate relua un fir mort?

Răspuns: În java, un fir care este în stare moartă nu poate fi pornit din nou. Nu există nicio modalitate de a reporni un fir mort.

Q70. Este următoarea declarație de clasă corectă?

Răspuns:

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ă ca Finală.

Q71. Este necesar JDK pe fiecare mașină pentru a rula un program Java?

Răspuns: JDK este un kit de dezvoltare Java și este necesar doar pentru dezvoltare și pentru a rula un program Java pe o mașină, JDK nu este necesar. Este necesar doar JRE.

Q72. Care este diferența dintre comparația făcută prin metoda egală și operatorul ==?

Răspuns: În Java, metoda equals () este utilizată 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, egal () returnează adevărat, deoarece cele două obiecte șir au aceleași valori. Cu toate acestea, operatorul == returnează false, deoarece ambele obiecte șir fac referire la diferite obiecte:

public class equalsTest {public static void main(String args[]) {String str1 = new String("Hello World");String str2 = new String("Hello World");if (str1.equals(str2)){ // this condition is trueSystem.out.println("str1 and str2 are equal in terms of values");}if (str1 == str2) {//This condition is trueSystem.out.println("Both strings are referencing same object");} else{// This condition is NOT trueSystem.out.println("Both strings are referencing different objects");}}}

Q73. Este posibil să definiți o metodă în clasa Java, dar să furnizați implementarea acesteia în codul unui alt limbaj precum C?

Răspuns: Da, putem face acest lucru folosind metode native. În cazul dezvoltării bazate pe metode native, definim metode statice publice în clasa noastră Java fără implementarea acesteia și apoi implementarea se face în alt limbaj, cum ar fi C separat.

Q74. Cum sunt definite distructorii în Java?

Răspuns: În Java, nu există destructori definiți în clasă, deoarece nu este nevoie să faceți acest lucru. Java are propriul său mecanism de colectare a gunoiului, care face treaba în mod automat prin distrugerea obiectelor atunci când nu mai este referită.

Q75. Poate o variabilă să fie locală și statică în același timp?

Răspuns: Nu, o variabilă nu poate fi statică și locală în același timp. Definirea unei variabile locale ca statice dă eroare de compilare.

Q76. Putem avea metode statice într-o interfață?

Răspuns: Metodele statice nu pot fi suprascrise în nicio clasă, în timp ce metodele dintr-o interfață sunt abstracte implicite și se presupune că sunt implementate în clasele care implementează interfața. Deci, nu are sens să ai metode statice într-o interfață în Java.

Q77. Într-o clasă care implementează o interfață, putem modifica valoarea oricărei variabile definite în interfață?

Răspuns: Nu, nu putem schimba valoarea oricărei variabile a unei interfețe din clasa de implementare, deoarece toate variabilele definite în interfață sunt implicit publice, statice și variabile finale și finale sunt ca constante care nu pot fi modificate ulterior.

Q78. Este corect să spunem că datorită funcției de colectare a gunoiului în Java, un program Java nu se stinge niciodată din memorie?

Răspuns: Chiar dacă colectarea automată a gunoiului este furnizată de Java, nu asigură că un program Java nu va ieși din memorie, deoarece există posibilitatea ca crearea obiectelor Java să se facă într-un ritm mai rapid comparativ cu colectarea gunoiului, rezultând completarea tuturor resurselor de memorie disponibile.

Deci, colectarea gunoiului ajută la reducerea șanselor ca un program să nu mai aibă memorie, dar nu asigură acest lucru.

Q79. Putem avea alt tip de returnare decât void pentru metoda principală?

Răspuns: Nu, metoda principală a clasei Java poate avea doar un tip de returnare nul pentru ca programul să fie executat cu succes.

Cu toate acestea, dacă trebuie să returnați absolut o valoare la finalizarea metodei principale, puteți utiliza System.exit (starea int)

Q80. Vreau să ajung din nou și să folosesc un obiect odată ce a fost colectat gunoi. Cum este posibil?

Răspuns: Odată ce un obiect a fost distrus de colectorul de gunoi, acesta nu mai există pe grămadă și nu mai poate fi accesat din nou. Nu există nicio modalitate de a o referi din nou.

Q81. În programarea firelor Java, ce metodă este o implementare obligatorie pentru toate firele?

Răspuns: Run () este o metodă de interfață Runnable care trebuie implementată de toate firele.

Q82. Vreau să controlez conexiunile la baza de date din programul meu și vreau ca un singur fir să poată face conexiunea la baza de date odată. 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 este un cuvânt cheie sincronizat, astfel încât un singur fir să îl poată accesa odată.

Q83. Cum poate fi aruncată o excepție manual de către un programator?

Răspuns: Pentru a arunca manual o excepție într-un bloc de cod, este folosit cuvântul cheie throw . Apoi, această excepție este prinsă și tratată în blocul de captură.

public void topMethod() {try {excMethod();} catch (ManualException e) {}}public void excMethod {String name = null;if (name == null) {throw (new ManualException("Exception thrown manually ");}}

Q84. Vreau ca clasa mea să fie dezvoltată în așa fel încât nicio altă clasă (chiar clasă derivată) să nu-și poată crea obiectele. Cum pot face asta?

Răspuns: 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țeze și formarea obiectului său va fi limitată numai la sine.

Q85. Cum sunt stocate obiectele în Java?

Răspuns: În java, fiecare obiect, atunci când este creat, primește un spațiu de memorie dintr-o grămadă. Când un obiect este distrus de un colector de gunoi, spațiul alocat acestuia din grămadă este reatribuit grămezii și devine disponibil pentru orice obiecte noi.

Q86. Cum putem găsi dimensiunea reală a unui obiect pe grămadă?

Răspuns: În Java, nu există nicio modalitate de a afla dimensiunea exactă a unui obiect de pe grămadă.

Q87. 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, fără obiect

Răspuns: Memoria nu este alocată înainte de crearea obiectelor. Deoarece pentru ambele clase, nu există obiecte create, deci nu este alocată memorie în heap pentru nicio clasă.

Q88. Ce se întâmplă dacă o excepție nu este gestionată într-un program?

Răspuns: Dacă o excepție nu este gestionată într-un program folosind blocuri try catch, programul este întrerupt și nu se execută nicio instrucțiune după declarația care a provocat lansarea excepției.

Q89. Am mai mulți constructori definiți într-o clasă. Este posibil să apelați un constructor din corpul unui alt constructor?

Răspuns: Dacă o clasă are mai mulți constructori, este posibil să apelați un constructor din corpul altuia folosind acest () .

Q90. Ce se înțelege prin clasă anonimă?

Răspuns: O clasă anonimă este o clasă definită fără niciun 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 singură linie de cod:

public java.util.Enumeration testMethod(){return new java.util.Enumeration(){@Overridepublic boolean hasMoreElements(){// TODO Auto-generated method stubreturn false;}@Overridepublic Object nextElement(){// TODO Auto-generated method stubreturn null;}}

Q91. Există o modalitate de a crește dimensiunea unui tablou după declararea acestuia?

Răspuns: Tablourile 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ă necesităm o schimbare de dimensiune (nu de articole), ar trebui să preferăm vectorul în locul matricei.

Q92. Dacă o aplicație are mai multe clase în ea, este în regulă să ai o metodă principală în mai multe clase?

Răspuns: 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 clasă specifică și codul va începe de la metoda principală a acelei clase particulare.

Q93. Vreau să păstrez datele obiectelor pentru o utilizare ulterioară. Care este cea mai bună abordare pentru a face acest lucru?

Răspuns: Cel mai bun mod de a persista datele pentru o utilizare viitoare este utilizarea conceptului de serializare.

Q94. Ce este o clasă locală în Java?

Răspuns: În Java, dacă definim o nouă clasă într-un anumit bloc, se numește clasă locală. O astfel de clasă are scop local și nu este utilizabilă în afara blocului unde este definită.

Q95. String și StringBuffer reprezintă ambele obiecte String. Putem compara String și StringBuffer în Java?

Răspuns: Deși String și StringBuffer reprezintă ambele obiecte String, nu le putem compara între ele și dacă încercăm să le comparăm, vom obține o eroare.

Q96. Ce API este furnizat de Java pentru operații pe un set de obiecte?

Răspuns: Java oferă un API de colecție care oferă multe metode utile care pot fi aplicate pe un set de obiecte. Unele dintre clasele importante oferite de API-ul Collection includ ArrayList, HashMap, TreeSet și TreeMap.

Q97. Putem arunca orice alt tip la Boolean Type cu turnarea de tip?

Răspuns: Nu, nu putem arunca niciun alt tip primitiv în tipul de date boolean și nici nu putem arunca un tip de date boolean în niciun alt tip de date primitiv.

Q98. Putem folosi diferite tipuri de returnare pentru metode atunci când sunt suprascrise?

Răspuns: Cerința de bază a suprascrierii metodei în Java este ca metoda suprascrisă să aibă același nume și parametri. Dar o metodă poate fi suprascrisă cu un tip de returnare diferit 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}}

Q99. Care este clasa de bază a tuturor claselor de excepție?

Răspuns : În Java, Java.lang.Throwable este super-clasa tuturor claselor de excepție și toate clasele de excepție sunt derivate din această clasă de bază.

Q100. Care este ordinea de chemare a constructorilor în moștenire?

Răspuns: În caz de moștenire, când se creează un nou obiect al unei clase derivate, este invocat mai întâi constructorul superclasei și apoi este invocat constructorul clasei derivate.

Pregătește-te pentru interviul tău de muncă !!! Parcurgeți Tutorialul Java pentru a fi mai bine pregătiți.

Acest pdf detaliat cu întrebările pentru interviul Java vă va ajuta să eliminați îndoielile cu privire la întrebările despre interviul Java și vă va ajuta, de asemenea, să spargeți interviul.