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