Sunteți pe pagina 1din 12

1. JDK: Acesta înseamnă Java Development Kit.

Este instrumentul necesar pentru a compila,


documenta și împacheta programe Java. Conține instrumente de dezvoltare JRE +.
2. JRE: Reprezintă Java Runtime Environment. JRE se referă la un mediu de execuție în care poate
fi executat codul secundar Java. Este o implementare a JVM care există fizic.
3. JVM: Este o mașină virtuală Java. Este o mașină abstractă. Este o specificație care oferă un
mediu de execuție în care poate fi executat codul secundar Java. JVM urmează trei notații:
Specificație, implementare și instanță de execuție.
4. main () în Java este punctul de intrare pentru orice program Java. Este scris întotdeauna ca
public static void main (String [] args).
 public: public este un modificator de acces, care este utilizat pentru a specifica cine
poate accesa această metodă. Public înseamnă că această metodă va fi accesibilă
oricărei clase.
 static: este un cuvânt cheie în java care îl identifică bazat pe clase. main () este făcut
static în Java, astfel încât să poată fi accesat fără a crea instanța unei clase. În cazul în
care, main nu este făcut static, atunci compilatorul va arunca o eroare, deoarece main ()
este apelată de JVM înainte de a face obiecte și numai metodele statice pot fi invocate
direct prin clasă.
 void: este tipul de returnare al metodei. Void definește metoda care nu va returna nicio
valoare.
 main: Este numele metodei căutată de JVM ca punct de plecare pentru o aplicație cu o
anumită semnătură. Este metoda în care apare executarea principală.
 String args []: Este parametrul trecut la metoda principală.
5. De ce Java este independent de platformă?: Java este numit platformă
independentă din cauza codurilor sale de octeți care pot rula pe orice sistem, indiferent de
sistemul său de operare subiacent.
6. De ce Java nu este 100% orientat pe obiecte ?: Java nu este 100% orientat pe
obiecte, deoarece folosește opt tipuri de date primitive, cum ar fi boolean, octet, char, int, float,
dublu, long, short, care nu sunt obiecte.
7. Ce sunt clasele de împachetare în Java? Clasele Wrapper convertesc primitivele Java
în tipurile de referință (obiecte). Fiecare tip de date primitive are o clasă dedicată acestuia.
Acestea sunt cunoscute sub numele de clase wrapper deoarece „împachetează” tipul de date
primitiv într-un obiect din acea clasă.
8. Ce sunt constructorii în Java? În Java, constructorul se referă la un bloc de cod care
este utilizat pentru a inițializa un obiect. Trebuie să aibă același nume cu cel al clasei. De
asemenea, nu are niciun tip de returnare și este apelat automat atunci când este creat un
obiect.
Există două tipuri de constructori:
 Constructor implicit: În Java, un constructor implicit este cel care nu ia nicio intrare. Cu
alte cuvinte, constructorii impliciți sunt constructorii fără argument care vor fi creați în
mod implicit în cazul în care nu există un alt constructor definit de utilizator. Scopul său
principal este de a inițializa variabilele de instanță cu valorile implicite. De asemenea,
este utilizat în principal pentru crearea obiectelor.
 Constructor parametrizat: Constructorul parametrizat din Java este constructorul care
este capabil să inițializeze variabilele de instanță cu valorile furnizate. Cu alte cuvinte,
constructorii care iau argumentele se numesc constructori parametrizati.
9. Ce este clasa de singleton în Java și cum putem face o clasă de singleton?
Clasa Singleton este o clasă a cărei singură instanță poate fi creată la un moment dat, într-o
singură JVM. O clasă poate fi făcută singleton făcând constructorul său privat.
10.Care este diferența dintre lista Array și vectorul în Java?
 Lista Array nu este sincronizată. Vectorul este sincronizat.
 Lista Array este rapidă, deoarece este nesincronizată. Vectorul este lent, deoarece este
sigur.
 Dacă un element este inserat în Lista Array, acesta mărește dimensiunea Array cu 50%.
Vectorul implicit la dimensiunea de dublare a array-ului.
 Lista array nu definește mărimea incrementului. Vectorul definește mărimea incrementului.
 Array List poate utiliza Iterator numai pentru parcurgerea unei Array List. Vectorul poate
folosi atât Enumerare, cât și Iterator pentru traversare.
11.Care este diferența dintre equals () și == în Java?
 Metoda Equals () este definită în clasa Object în Java și utilizată pentru verificarea egalității a
două obiecte definite de logica de afaceri.
 „==” sau operator de egalitate în Java este un operator binar furnizat de limbajul de
programare Java și utilizat pentru a compara primitive și obiecte. public boolean egal
(Obiectul o) este metoda oferită de clasa Obiectului. Implementarea implicită folosește
operatorul == pentru a compara două obiecte. De exemplu: metoda poate fi suprascrisă ca
clasa String. metoda equals () este utilizată pentru a compara valorile a două obiecte.
12.Care sunt diferențele dintre memoria Heap și Stack în Java?
 Memorie: memoria stivă este utilizată doar de un fir de execuție. Memoria Heap este
utilizată de toate părțile aplicației.
 Acces: memoria stivă nu poate fi accesată de alte fire. Obiectele stocate în heap sunt
accesibile la nivel global.
 Durată de viață: există până la sfârșitul execuției firului. Memoria Heap trăiește de la
început până la sfârșitul executării aplicației.
 Utilizare: memoria stivă conține doar variabile primitive locale și de referință la obiecte
din spațiul heap. Ori de câte ori este creat un obiect, acesta este întotdeauna stocat în
spațiul Heap.
13. Ce este un pachet în Java? Enumerați diferitele avantaje ale pachetelor. Pachetele în
Java sunt colecția de clase și interfețe conexe care sunt grupate împreună. Prin utilizarea
pachetelor, dezvoltatorii pot modula cu ușurință codul și optimiza refolosirea acestuia. De
asemenea, codul din pachete poate fi importat de alte clase și reutilizat. Mai jos am enumerat
câteva dintre avantajele sale:
 Pachetele ajută la evitarea ciocnirilor de nume
 Acestea oferă un control mai ușor al accesului la cod
 Pachetele pot conține, de asemenea, clase ascunse care nu sunt vizibile pentru clasele
exterioare și utilizate numai în cadrul pachetului
 Creează o structură ierarhică adecvată care facilitează localizarea claselor aferente
14. De ce indicatorii nu sunt folosiți în Java? Java nu folosește indicii, deoarece sunt
nesiguri și crește complexitatea programului. Deoarece Java este cunoscut pentru simplitatea sa
de cod, adăugarea conceptului de indicatori va fi în contradicție. Mai mult, deoarece JVM este
responsabilă pentru alocarea implicită a memoriei, astfel, pentru a evita accesul direct la
memorie de către utilizator, indicatorii sunt descurajați în Java.
15. Ce este compilatorul JIT în Java? JIT înseamnă compilator Just-In-Time în Java. Este un
program care ajută la convertirea bytecode-ului Java în instrucțiuni care sunt trimise direct
procesorului. În mod implicit, compilatorul JIT este activat în Java și este activat ori de câte ori
este invocată o metodă Java. Compilatorul JIT compilează apoi bytecode-ul metodei invocate în
codul mașinii native, compilându-l „exact la timp” pentru a fi executat. Odată ce metoda a fost
compilată, JVM convocă codul compilat al acelei metode direct, mai degrabă decât să-l
interpreteze. Acesta este motivul pentru care este adesea responsabil pentru optimizarea
performanței aplicațiilor Java în timpul rulării.
16. Ce sunt modificatorii de acces în Java? În Java, modificatorii de acces sunt cuvinte
cheie speciale care sunt folosite pentru a restricționa accesul unei clase, constructor, membru
de date și metodă într-o altă clasă. Java acceptă patru tipuri de modificatori de acces:Mod
implicit, Privat, Protejat , Public
17. Definiți o clasă Java.O clasă în Java este un plan care include toate datele dvs. O clasă
conține câmpuri (variabile) și metode pentru a descrie comportamentul unui obiect.
18. Ce este și cum este creat un obiect în Java? Un obiect este o entitate din lumea
reală care are o stare și un comportament
19. Ce este programarea orientată pe obiecte? Programarea orientată pe obiecte sau
cunoscută popular ca OOP este un model sau abordare de programare în care programele sunt
organizate în jurul obiectelor, mai degrabă decât în logică și funcții. Cu alte cuvinte, POO se
concentrează în principal pe obiectele care trebuie manipulate în loc de logică. Această abordare
este ideală pentru programele de coduri mari și complexe și trebuie actualizată sau menținută
activ.
20. Care sunt principalele concepte ale OOP-urilor în Java?Programarea orientată
pe obiecte sau OOP este un stil de programare care este asociat cu concepte precum:
 Moștenirea: Moștenirea este un proces în care o clasă dobândește proprietățile alteia.
 Incapsulare: Incapsularea în Java este un mecanism de împachetare a datelor și a
codului împreună ca o singură unitate.
 Abstracție: Abstracția este metodologia de a ascunde detaliile de implementare de la
utilizator și de a oferi doar funcționalitatea utilizatorilor.
 Polimorfism: Polimorfismul este capacitatea unei variabile, a unei funcții sau a unui
obiect de a lua mai multe forme.
21. Care este diferența dintre o variabilă locală și o variabilă de instanță? În
Java, o variabilă locală este de obicei utilizată în interiorul unei metode, a unui constructor sau a
unui bloc și are doar domeniu de aplicare local. Astfel, această variabilă poate fi utilizată numai
în cadrul unui bloc. Cel mai bun beneficiu al unei variabile locale este că alte metode din clasă nu
vor fi nici măcar conștiente de acea variabilă. În timp ce, o variabilă de instanță în Java, este o
variabilă care este limitată la obiectul său. Aceste variabile sunt declarate în cadrul unei clase,
dar în afara unei metode. Fiecare obiect al acelei clase va crea propria copie a variabilei în timp
ce o folosește. Astfel, orice modificări aduse variabilei nu se vor reflecta în alte instanțe ale clasei
respective și vor fi legate numai de acea instanță.
22. Diferențiați între constructori și metode în Java?
 Folosit pentru a reprezenta comportamentul unui obiect; Folosit pentru a
inițializa starea unui obiect
 2. Trebuie să aibă un tip de returnare; Nu aveți niciun tip de returnare
 3. Trebuie invocat în mod explicit; Este invocat implicit
 4. Nicio metodă implicită nu este furnizată de compilator; Un constructor
implicit este furnizat de compilator dacă clasa nu are niciunul
 5. Numele metodei poate fi sau nu același cu numele clasei; Numele constructorului
trebuie să fie întotdeauna același cu numele clasei
23. Ce este cuvântul cheie final în Java? final este un cuvânt cheie special în Java care
este folosit ca modificator fără acces. O variabilă finală poate fi utilizată în diferite contexte, cum
ar fi:
 variabila finală: Când cuvântul cheie final este utilizat cu o variabilă, atunci valoarea
acestuia nu poate fi modificată odată atribuită. În cazul în care nicio valoare nu a fost
atribuită variabilei finale, atunci utilizând numai constructorul clasei i se poate atribui o
valoare.
 metoda finală: Când o metodă este declarată definitivă, atunci aceasta nu poate fi
anulată de clasa moștenitoare.
 clasa finală: Când o clasă este declarată finală în Java, nu poate fi extinsă de nicio clasă
de subclasă, dar poate extinde o altă clasă.
24. Care este diferența dintre declarațiile de break și cele de continuare?
 Poate fi folosit în declarații switch și loop (for, while, do while); Poate fi
utilizat numai cu instrucțiuni de buclă
 2. Face ca instrucțiunile de comutare sau buclă să se termine în momentul în
care sunt executate; Nu termină bucla, ci face ca bucla să treacă la
următoarea iterație
 3. Termină imediat cea mai interioară buclă sau comutatorul de închidere; O
continuare într-o buclă imbricată cu un comutator va determina executarea
următoarei iterații a buclei
25. Ce este o buclă infinită în Java? Explicați cu un exemplu. O buclă infinită este o
secvență de instrucțiuni în Java care se bucură la nesfârșit atunci când o ieșire funcțională nu
este îndeplinită. Acest tip de buclă poate fi rezultatul unei erori de programare sau poate fi, de
asemenea, o acțiune deliberată bazată pe comportamentul aplicației. O buclă infinită se va
termina automat odată ce aplicația iese.
26. Care este diferența dintre this () și super () în Java?
 this () reprezintă instanța curentă a unei clase; super () reprezintă instanța curentă a
unei clase părinte / bază
 2. Folosit pentru a apela constructorul implicit din aceeași clasă; Folosit pentru a
apela constructorul implicit al clasei părinte / bază
 3. Folosit pentru a accesa metodele clasei curente; Folosit pentru accesarea
metodelor clasei de bază
 4. Folosit pentru indicarea instanței de clasă curentă; Folosit pentru indicarea
instanței superclasei
27. Ce este Java String Pool? Java String pool se referă la o colecție de șiruri care sunt
stocate în memoria heap. În aceasta, ori de câte ori este creat un obiect nou, String pool verifică
mai întâi dacă obiectul este deja prezent în pool sau nu. Dacă este prezent, atunci aceeași
referință este returnată variabilei altceva nou obiect va fi creat în grupul de șiruri și referința
respectivă va fi returnată.
28.Faceți diferența între metodele statice și nestatice în Java.
 Cuvântul cheie static trebuie utilizat înainte de numele metodei ; Nu este necesar să utilizați
cuvântul cheie static înainte de numele metodei
 Se numește folosind clasa (className.methodName) ; Se poate numi ca orice metodă generală
 Nu pot accesa nicio variabilă sau metodă de instanță nestatică ; Poate accesa orice metodă
statică și orice variabilă statică fără a crea o instanță a clasei
29. Ce este înlănțuirea constructorului în Java? În Java, înlănțuirea constructorului este
procesul de apelare a unui constructor de la altul în raport cu obiectul curent. Înlănțuirea
constructorilor este posibilă doar prin moștenire în care un constructor de subclasă este
responsabil de invocarea constructorului superclasei mai întâi. Ar putea exista orice număr de
clase în lanțul constructor. Înlănțuirea constructorului poate fi realizată în două moduri:
 În aceeași clasă folosind this ()
 Din clasa de bază folosind super ()
30. Ce este un classloader în Java? Java ClassLoader este un subset al JVM (Java Virtual
Machine) care este responsabil pentru încărcarea fișierelor clasei. Ori de câte ori este executat
un program Java, acesta este încărcat mai întâi de clasă. Java oferă trei încărcătoare de clasă
încorporate:
 Bootstrap ClassLoader
 Extensie ClassLoader
 Sistem / Aplicație ClassLoader
31. De ce șirurile Java au o natură imuabilă? În Java, obiectele șir sunt de natură
imuabilă, ceea ce înseamnă că, odată ce obiectul șir este creat, starea sa nu poate fi modificată.
Ori de câte ori încercați să actualizați valoarea acelui obiect în loc să actualizați valorile acelui
obiect, Java creează un nou obiect șir. Obiectele Java String sunt imuabile, deoarece obiectele
String sunt, în general, stocate în cache în piscina String. Deoarece literele String sunt de obicei
partajate între mai mulți clienți, acțiunea unui client ar putea afecta restul. Îmbunătățește
securitatea, stocarea în cache, sincronizarea și performanța aplicației.
32. Ce este un map în Java? În Java, Map este o interfață a pachetului Util care mapează
cheile unice la valori. Interfața Map nu este un subset al interfeței principale Collection și, prin
urmare, se comportă puțin diferit de celelalte tipuri de colecție. Mai jos sunt câteva dintre
caracteristicile interfeței Map:
 Map nu conține chei duplicat.
 Fiecare tastă poate mapa la maximum o valoare.
33. Ce este clasa collection în Java? Enumerați metodele și interfețele sale. În
Java, colecția este un cadru care acționează ca o arhitectură pentru stocarea și manipularea unui
grup de obiecte. Folosind Colecții puteți efectua diverse activități, cum ar fi căutarea, sortarea,
inserarea, manipularea, ștergerea etc. Cadrul de colectare Java include următoarele:
 Interfețe
 Clase
 Metode
34. Ce este polimorfismul? Polimorfismul este descris pe scurt ca „o interfață, multe
implementări”. Polimorfismul este o caracteristică a capacității de a atribui o semnificație sau
utilizare diferită pentru ceva în contexte diferite - în mod specific, pentru a permite unei entități
precum o variabilă, o funcție sau un obiect să aibă mai multe forme. Există două tipuri de
polimorfism:
 Compilați polimorfismul în timp
 Polimorfismul timpului de rulare
Compilarea timp polimorfism este metoda de supraîncărcare în timp ce Runtime timp
polimorfism se face folosind moștenire și interfață.
35. Ce este polimorfismul în timpul rulării sau expedierea metodei dinamice?
În Java, polimorfismul de execuție sau expediere dinamică a metodei este un proces în care un
apel către o metodă suprascrisă este rezolvat la execuție, mai degrabă decât la compilare. În
acest proces, o metodă suprascrisă este apelată prin variabila de referință a unei superclase.
36. Ce este abstractizarea în Java? Abstracția se referă mai degrabă la calitatea tratării cu
idei decât la evenimente. Practic se ocupă cu ascunderea detaliilor și afișarea lucrurilor esențiale
utilizatorului. Astfel, puteți spune că abstractizarea în Java este procesul de a ascunde detaliile
de implementare de la utilizator și de a le dezvălui doar funcționalitatea. Abstracția poate fi
realizată în două moduri:
 Cursuri abstracte (0-100% din abstractizare se poate realiza)
 Interfețe (100% din abstractizare poate fi realizată)
37. Ce vrei să spui prin interfață în Java? O interfață în Java este un plan al unei clase sau
puteți spune că este o colecție de metode abstracte și constante statice. Într-o interfață, fiecare
metodă este publică și abstractă, dar nu conține niciun constructor. Astfel, interfața este practic
un grup de metode conexe cu corpuri goale.
38.Care este diferența dintre clasele abstracte și interfețele?
 clasă abstractă poate furniza cod complet, implicit și / sau doar detaliile care trebuie
înlocuite; O interfață nu poate oferi deloc niciun cod, doar semnătura
 În cazul unei clase abstracte, o clasă poate extinde o singură clasă abstractă; o clasă
poate implementa mai multe interfețe
 clasă abstractă poate avea metode non-abstracte; Toate metodele unei interfețe sunt
abstracte
 clasă abstractă poate avea variabile de instanță; o interfață nu poate avea variabile de
instanță
 clasă abstractă poate avea orice vizibilitate: publică, privată, protejată; o vizibilitate a
interfeței trebuie să fie publică (sau) niciuna
 Dacă adăugăm o metodă nouă la o clasă abstractă, atunci avem opțiunea de a furniza
implementarea implicită și, prin urmare, tot codul existent ar putea funcționa corect;
Dacă adăugăm o nouă metodă la o interfață, atunci trebuie să urmărim toate
implementările interfeței și să definească implementarea noii metode
 clasă abstractă poate conține constructori; o interfață nu poate conține constructori
 Clasele abstracte sunt rapide; interfețele sunt lente, deoarece necesită o indirectare
suplimentară pentru a găsi metoda corespunzătoare în clasa reală
39. Ce este moștenirea în Java? Moștenirea în Java este conceptul în care proprietățile unei
clase pot fi moștenite de cealaltă. Ajută la refolosirea codului și la stabilirea unei relații între
diferite clase. Moștenirea se realizează între două tipuri de clase:
 Clasa părinte (clasa Super sau Base)
 Clasa pentru copii (subclasă sau clasă derivată)
O clasă care moștenește proprietățile este cunoscută sub numele de clasă copil, în timp ce o
clasă ale cărei proprietăți sunt moștenite este cunoscută sub numele de clasă părinte.
40. Care sunt diferitele tipuri de moștenire în Java? Java acceptă patru tipuri de
moștenire care sunt:
 Moștenirea unică: în moștenirea unică, o clasă moștenește proprietățile altei, adică va exista
un singur părinte, precum și o clasă copil.
 Moștenirea pe mai multe niveluri: Când o clasă este derivată dintr-o clasă care este, de
asemenea, derivată dintr-o altă clasă, adică o clasă având mai multe clase părinte, dar la
niveluri diferite, un astfel de tip de moștenire se numește Moștenire pe mai multe niveluri.
 Moștenirea ierarhică: Când o clasă are mai multe clase de copii (subclasele) sau cu alte
cuvinte, mai multe clase de copii au aceeași clasă părinte, atunci un astfel de tip de
moștenire este cunoscut sub numele de ierarhic.
 Moștenirea hibridă: moștenirea hibridă este o combinație de două sau mai multe tipuri de
moștenire.
41. Ce este overloading metodei și overriding metodei? Metoda de supraîncărcare:
 În Metoda supraîncărcării, metodele din aceeași clasă împărtășesc același nume, dar fiecare
metodă trebuie să aibă un număr diferit de parametri sau parametri având diferite tipuri și
ordine.
 Supraîncărcarea metodei este de a „adăuga” sau „extinde” mai mult comportamentul
metodei.
 Este un polimorfism de compilare.
 Metodele trebuie să aibă o semnătură diferită.
 Poate avea nevoie sau nu de moștenire în supraîncărcarea metodelor.
Overriding metodei:
 În Method Overriding, subclasa are aceeași metodă cu același nume și exact același număr și
tip de parametri și același tip de returnare ca o superclasă.
 Metoda suprascriere este de a „schimba” comportamentul existent al metodei.
 Este un polimorfism în timp de execuție.
 Metodele trebuie să aibă aceeași semnătură.
 Întotdeauna necesită moștenire în Metoda suprascriere.
42. Puteți face override o metodă privată sau statică în Java? Nu puteți suprascrie
o metodă privată sau statică în Java. Dacă creați o metodă similară cu același tip de returnare și
aceleași argumente de metodă în clasa copil, atunci aceasta va ascunde metoda superclasei;
aceasta este cunoscută sub numele de metoda de ascundere. În mod similar, nu puteți
suprascrie o metodă privată din subclasă, deoarece nu este accesibilă acolo. Ce puteți face este
să creați o altă metodă privată cu același nume în clasa copil.
43. Ce este moștenirea multiplă? Este acceptat de Java? Dacă o clasă copil
moștenește proprietatea din mai multe clase este cunoscută sub numele de mostenire multiplă.
Java nu permite extinderea mai multor clase.
Problema cu moștenirea multiplă este că, dacă mai multe clase părinte au același nume de
metodă, atunci la runtime devine dificil pentru compilator să decidă ce metodă să execute din
clasa copil.
Prin urmare, Java nu acceptă moștenirea multiplă. Problema este denumită de obicei problema
Diamond.
44. Ce este încapsularea în Java? Incapsularea este un mecanism în care legați datele
(variabilele) și codul (metodele) împreună ca o singură unitate. Aici, datele sunt ascunse de
lumea exterioară și pot fi accesate numai prin metode actuale de clasă. Acest lucru ajută la
protejarea datelor de orice modificare inutilă. Putem realiza încapsularea în Java prin:
 Declararea variabilelor unei clase ca fiind private.
 Furnizarea de metode publice de setter și getter pentru a modifica și vizualiza valorile
variabilelor.
45. Ce este o asociere? Asocierea este o relație în care toate obiectele au propriul ciclu de
viață și nu există proprietar. Să luăm exemplul de profesor și student. Mai mulți elevi se pot
asocia cu un singur profesor și un singur elev se poate asocia cu mai mulți profesori, dar nu
există proprietate între obiecte și ambii au propriul lor ciclu de viață. Aceste relații pot fi unu la
unu, unul la mulți, mulți la unu și mulți la mulți.
46. Ce vrei să spui prin agregare? O agregare este o formă specializată de asociere în care
toate obiectele au propriul ciclu de viață, dar există proprietar, iar obiectul copil nu poate
aparține altui obiect părinte. Să luăm un exemplu de departament și profesor. Un singur
profesor nu poate aparține mai multor departamente, dar dacă ștergem profesorul de
departament, obiectul nu va fi distrus.
47. Ce este compoziția în Java? Compoziția este din nou o formă specializată de agregare și
o putem numi ca o relație de „moarte”. Este un tip puternic de agregare. Obiectul copil nu are
ciclul lor de viață și dacă obiectul părinte șterge tot obiectul copil va fi șters. Să luăm din nou un
exemplu de relație între House și camere. Casa poate conține mai multe camere, nu există o
viață independentă a camerei și orice cameră nu poate aparține a două case diferite, dacă
ștergem, camera va fi ștearsă automat.
48. Ce este o interfață de marker? O interfață Marker poate fi definită ca interfața care nu
are membri de date și funcții de membru. În termeni mai simpli, o interfață goală se numește
interfață Marker. Cele mai frecvente exemple de interfață Marker în Java sunt Serializabile,
Clonabile etc.
49. Ce este clonarea obiectelor în Java? Clonarea obiectelor în Java este procesul de
creare a unei copii exacte a unui obiect. Practic înseamnă capacitatea de a crea un obiect cu o
stare similară cu obiectul original. Pentru a realiza acest lucru, Java oferă o metodă clonă ()
pentru a utiliza această funcționalitate. Această metodă creează o nouă instanță a clasei
obiectului curent și apoi inițializează toate câmpurile sale cu același conținut exact al câmpurilor
corespunzătoare. Pentru a obiecta clonarea (), interfața markerului java.lang.Cloneable trebuie
să fie implementată pentru a evita orice excepții de execuție. Un lucru pe care trebuie să-l
rețineți este că Object clone () este o metodă protected, deci trebuie să o suprascrieți.
50. Ce este un constructor de copiere în Java? Constructorul de copiere este o funcție
membru care este utilizată pentru a inițializa un obiect folosind un alt obiect din aceeași clasă.
Deși nu este nevoie de un constructor de copiere în Java, deoarece toate obiectele sunt
transmise prin referință. Mai mult, Java nici măcar nu acceptă trecerea automată a valorii.
51. Ce este o supraîncărcare a constructorului în Java? În Java, supraîncărcarea
constructorului este o tehnică de adăugare a oricărui număr de constructori la o clasă având
fiecare o listă de parametri diferită. Compilatorul folosește numărul de parametri și tipurile lor
din listă pentru a diferenția constructorii supraîncărcați.
52.Care sunt diferențele dintre metodele Get și Post?
 Se poate trimite o cantitate limitată de date deoarece datele sunt trimise în antet .; Se poate
trimite o cantitate mare de date deoarece datele sunt trimise în corp.
 Nu este securizat deoarece datele sunt expuse în bara URL .; Securizat deoarece datele nu
sunt expuse în bara URL.
 Poate fi marcat; Nu poate fi marcat
 Idempotent; Non-Idempotent
 Este mai eficient și utilizat decât Post; Este mai puțin eficient și folosit
53.Care este diferența dintre Eroare și Excepție?
O eroare este o condiție irecuperabilă care apare în timpul rulării. Cum ar fi eroarea
OutOfMemory. Aceste erori JVM nu le puteți repara în timpul rulării. Deși eroarea poate fi
surprinsă în blocul de captură, dar executarea aplicației se va opri și nu poate fi recuperată.
În timp ce excepțiile sunt condiții care apar din cauza unei intrări proaste sau a unei erori umane
etc. FileNotFoundException va fi aruncat dacă fișierul specificat nu există. Sau o
NullPointerException va avea loc dacă încercați să utilizați o referință nulă. În majoritatea
cazurilor este posibil să vă recuperați dintr-o excepție (probabil oferind feedback utilizatorului
pentru introducerea valorilor adecvate etc.)
54. Cum puteți face față excepțiilor Java?Există cinci cuvinte cheie utilizate pentru a
gestiona excepțiile în Java: try,catch,finally,throw,throws
55.Care sunt diferențele dintre excepția bifată și excepția bifată ( checked
and unchecked)?
Excepție bifată
 Clasele care extind clasa Throwable cu excepția RuntimeException și Error sunt
cunoscute ca excepții verificate.
 Excepțiile verificate sunt verificate la compilare.

Excepție nebifată

 Clasele care extind RuntimeException sunt cunoscute ca excepții necontrolate.


 Excepțiile nebifate nu sunt verificate la compilare.
56. Ce scop îndeplinesc cuvintele cheie final, finallyl și finalize?
 Final: Final este folosit pentru a aplica restricții asupra clasei, metodei și variabilei. O
clasă finală nu poate fi moștenită, metoda finală nu poate fi anulată și valoarea variabilei
finale nu poate fi modificată.
 Finally: Cuvântul cheie finally este utilizat în asociere cu un bloc try / catch și garantează
că o secțiune de cod va fi executată, chiar dacă se aruncă o excepție. Blocul final va fi
executat după blocurile try and catch, dar înainte ca controlul să se transfere înapoi la
originea sa.
 Finalize: Este o metodă pe care Garbage Collector o numește întotdeauna chiar înainte de
ștergerea / distrugerea obiectului care este eligibil pentru Garbage Collector, astfel încât să
efectueze o activitate de curățare. Activitatea de curățare înseamnă închiderea resurselor
asociate cu acel obiect, cum ar fi Conexiunea bazei de date, Conexiunea de rețea sau putem
spune alocarea resurselor. Rețineți că nu este un cuvânt cheie rezervat.
Odată ce metoda de finalizare se finalizează imediat Garbage Collector distruge acel obiect.
57.Care sunt diferențele dintre throw și throws?
 Throw este folosit pentru a arunca în mod explicit o excepție.; Throws este folosit pentru a
declara o excepție.
 Excepțiile verificate nu pot fi propagate numai cu aruncare .; Excepția bifată poate fi
propagată cu aruncări.
 Throw este urmată de o instanță; Throws sunt urmate de clasă.
 Throw este utilizat în cadrul metodei.; Throws este utilizat cu semnătura metodei.
 Nu puteți arunca o excepție multiplă; puteți declara o excepție multiplă, de ex. public void
method () aruncă IOException, SQLException.
58.Ce este un finally block? Există un caz în care în cele din urmă nu se va
executa?
finally block este un bloc care execută întotdeauna un set de instrucțiuni. Este întotdeauna
asociat cu try block, indiferent de orice excepție care apare sau nu.
Da, în cele din urmă nu va fi executat dacă programul iese fie apelând System.exit (), fie
provocând o eroare fatală care determină întreruperea procesului.
59. static este un modificator fără acces în Java care se aplică pentru următoarele: blocuri,
variabile, metode, imbricate, clase. Când un membru este declarat static, acesta poate fi accesat
înainte de a crea obiecte din clasa sa și fără referire la niciun obiect.
 Atunci când o variabilă este declarată statică, atunci se creează o singură copie a variabilei și
se partajează între toate obiectele la nivel de clasă. Variabilele statice sunt, în esență,
variabile globale. Toate instanțele clasei au aceeași variabilă statică.
 Puncte importante pentru variabilele statice: -
 Putem crea variabile statice numai la nivel de clasă.
 blocul static și variabilele statice sunt executate pentru a fi prezente într-un program
 Când o metodă este declarată cu cuvânt cheie static, este cunoscută sub numele de metodă
statică. Cel mai obișnuit exemplu de metodă statică este metoda main () Așa cum s-a
discutat mai sus, orice membru static poate fi accesat înainte ca obiectele din clasa sa să fie
create și fără referire la niciun obiect. Metodele declarate statice au mai multe restricții:
 Ei pot apela direct alte metode statice.
 Ei pot accesa direct datele statice.
60. Garbage collection: În C / C ++, programatorul este responsabil atât pentru crearea cât și
pentru distrugerea obiectelor. De obicei, programatorul neglijează distrugerea obiectelor inutile.
Din cauza acestei neglijențe, la un moment dat, pentru crearea de obiecte noi, este posibil să nu
fie disponibilă suficientă memorie și întregul program se va termina anormal, provocând
OutOfMemoryErrors.
 Dar în Java, programatorul nu trebuie să aibă grijă de toate acele obiecte care nu mai sunt
folosite. Colectorul de gunoi distruge aceste obiecte.
 Colectorul de gunoi este cel mai bun exemplu de fir Daemon, deoarece rulează întotdeauna
în fundal.
 Obiectivul principal al Garbage Collector este de a elibera memoria heap prin distrugerea
obiectelor inaccesibile.

S-ar putea să vă placă și