1. Având în vedere codul de mai jos, care dintre afirmațiile de mai jos sunt adevărate în ceea ce privește conceptul de imutabilitate aplicat în cazul clasei Student?
class Student {
long id;
List<Double> grades;
}
Ambele câmpuri să fie final
Să avem doar metode de tip getter pentru câmpuri
Să avem metode de tip getter și setter pentru câmpuri
În getter-ul pentru grades, trebuie să întoarcem o copie a obiectului grades
În getter-ul pentru grades, putem să întoarcem pur și simplu grades
toate
1, 2, 4
1, 2, 5
1, 3, 5
2. Care dintre afirmațiile de mai jos sunt adevărate?
Într-un Set putem avea duplicate
În LinkedHashMap se păstrează ordinea de inserție a elementelor
Interfața Map extinde interfața Collection
În TreeSet nu se păstrează ordinea de inserție a elementelor
toate
2 și 4
1, 2, 3
1, 3
3. Care dintre următoarele afirmații despre clase abstracte în Java sunt false:
Dacă derivăm o clasă abstractă și nu implementăm toate metodele abstracte, atunci clasă derivată trebuie de asemenea să fie abstractă
Clasele abstracte pot avea constructori
O clasă nu poate fi abstractă fără o metodă abstractă
O clasă abstractă poate moșteni de la mai multe clase abstracte
4. Care dintre următoarele afirmații despre interfețe și clase abstracte sunt adevărate?
O clasă poate moșteni în același timp mai multe clase abstracte
O interfață poate moșteni mai multe interfețe în același timp
O interfață poate moșteni o clasă abstractă care are doar metode abstracte
O clasă poate implementa mai multe interfețe în același timp
1, 2, 3
2, 4
1, 2, 3, 4
2, 3, 4
5. Care dintre următoarele afirmații e corectă?
Cuvântul final în fața unei metode arată faptul că acea metodă poate fi apelată doar în clasa respectivă
Cuvântul final în fața unei clase înseamnă că nu poate fi instanțiată
Cuvântul final în fața unei variabile arată că acea variabilă poate fi asignată o singură dată
Cuvântul final în fața unei variabile arată că acea variabilă nu poate fi moștenită
6. Care dintre următoarele variante nu are legătură cu încapsularea?
expunerea unei interfețe de lucru cu obiectul
accesul la membri privați folosind metode de tip getter și setter
construirea de obiecte complexe și ascunderea modului lor de funcționare
posibilitatea suprascrierii (overriding) metodelor
7. Care este outputul următorului program?
Old shininess: 0 | New shininess: 10
Old shininess: 0 | New shininess: 0
Old shininess: null | New shininess: 0
Old shininess: null | New shininess: 10
8. Care instanțiere este corectă?
List<Integer> list = new ArrayList<Object>();
ArrayList<Integer> list = new List<Integer>();
List<Integer> list = new ArrayList<Integer>();
ArrayList<Object> list = new ArrayList<Integer>();
9. Ce design pattern face ușoară separarea operațiilor de obiectele pe care se execută operațiile respective?
Builder Pattern
Visitor Pattern
Factory Pattern
Observer Pattern
10. Ce design pattern trebuie să folosim în caz că dorim ca un client să nu aibă rol în crearea unui entități după o preferință de a sa?
Singleton Pattern
Factory Pattern
Builder Pattern
Observer Pattern
11. Ce fel de Singleton este această secvență de cod?
Singleton cu inițializare eager
Singleton cu inițializare lazy
nu avem Singleton aici
Singleton cu inițializare în blocuri statice
12. Ce metode pot fi accesate din clasa MyTest?
execute1, execute2 din Test, execute2 din MyTest
execute1, execute2 din Test, execute3, execute2 din MyTest
execute2 din Test, execute2 din MyTest
execute2 din MyTest
13. Ce reprezintă o metodă default în cadrul unei interfețe?
o metodă abstractă
o metodă non-statică care este deja implementată într-o interfață
o metodă statică implementată într-o interfață
nu putem avea metode default într-o interfață
14. Ce se afișează la rularea acestui cod?
15. Ce se va afișa la execuția codului de mai jos?
16. Ce tip de clasă reprezintă următoarea implementare?
Predicate<Integer> check = x -> x % 2 == 0;
clasă locală
clasă anonimă
clasă nested non-statică
clasă nested statică
17. Ce va afișa programul?
goodluck:goodluckluck
goodluck:goodgoodluck
goodluck:goodluck
goodluck:luckgoodluck
18. Identificați pe care linii avem suprascriere (overriding) și pe care avem supraincărcare (overloading) corecte, fără erori de compilare:
Suprascriere: 1, Supraincărcare: 3, 4
Suprascriere: 1, 2, Supraincărcare: 3,4
Suprascriere: 3, 4, Supraincărcare: 1, 2
Suprascriere: 3, 4, Supraincărcare: 1
19. În ce zonă de memorie sunt stocate obiectele?
pe stivă
pe heap
în memoria cache
memoria externă
20. Pentru ce folosim map()
pe colecții și pe arrays în Java?
pentru a selecta elementele dintr-o colecție / dintr-un array care respectă o condiție reprezentată de funcția lambda dată că parametru
pentru a aplica o operație pe fiecare element din cadrul colecției sau al array-ului, operație reprezentată de funcția lambda dată că parametru
pentru a reduce elementele unei colecții / unui array la un singur element prin operația reprezentată de funcția lambda dată că parametru
pentru a crea o nouă copie a colecției / al array-ului