User Tools

Site Tools


Problem constructing authldap
test:test_2018

This is an old revision of the document!


Test grilă ianuarie 2018

Au fost 20 de întrebări, 4 variante de răspuns, un singur răspuns corect. 4 numere, aceleași 20 de întrebări în ordine diferită.

Metoda de evaluare: grilă franceză, -1/4 din punctajul unei întrebări la răspuns greșit, 0 dacă nu este marcat niciun răspuns.

Analizăm aici întrebările pe rând, structurat pe secțiuni.

OOP

1. Care dintre următoarele cuvinte cheie realizează \textit{moștenirea} în Java?

  • implements
  • inherits
  • extends
  • super

2. Care dintre următoarele concepte reprezintă o relație HAS-A?

  • moștenirea
  • polimorfismul
  • agregarea
  • încapsularea

3. Care variantă reprezintă o supraîncărcare corectă pentru metoda: protected int getGrade(String course)

  • protected int getGrade(String course) throws IOException
  • private int getGrade(String course)
  • protected long getGrade(String course)
  • public long getGrade(int studID)

4. Ce se afișează?

public class Test {
    public static void main(String []args) {
        Drink tea = new Tea();
        tea.make();
    }
}
 
class Drink {
    public static void make() {
        System.out.println("Making drink");
    }
}
 
class Tea extends Drink {
    public static void make() {
        System.out.println("Making tea");
    }
}
  • Making tea
  • Making drink
  • eroare la compilare, metoda make nu poate fi suprascrisă
  • excepție la rulare

Constructori și referințe

5. Ce se afișează?

public class BasicInit {
        private int x;
        private boolean flag;
        protected String s;
        @Override
        public String toString() {
                return x + " " + flag + " " + s;
        }
        public static void main(String []args) {
                BasicInit basicInit = new BasicInit();
                System.out.println(basicInit);
        }
}
  • 0 true
  • null true
  • 0 false null
  • null false null

6. Ce se afișează?

class Device {
    public Device() {
        System.out.print("D");
    }
}
 
public class Watch extends Device {
    public Watch() {
        System.out.print("W");
    }
 
    public Watch(String name) {
        this();
        System.out.print(name);
    }
 
    public static void main(String []args) {
        new Watch("F");
    }
}
  • WF
  • DWF
  • DW
  • DF

7. Ce înseamnă constructorul implicit (default)?

  • constructor fără parametri declarat de utilizator
  • constructor fără parametri adăugat de Java dacă nici un constructor nu a fost declarat
  • constructor fără implementare
  • constructor fără modificatori de acces

Clase abstracte și interfețe

8. Ce cuvinte cheie pot fi folosite pentru membrul MY_VALUE?

public interface Status {
        /* insert qualifier here */ int MY_VALUE = 10;
}
  • final, static, private
  • final, static, protected
  • final, private, abstract
  • final, static, public

9. Care variantă definește cel mai bine legătura dintre interfețe și clase?

  • Atât clasele, cat și interfețele definesc modul în care un obiect execută o operație
  • Interfețele precizeaza operatiile expuse de un obiect, în timp ce clasele modul în care acesta le execută
  • Nici clasele, nici interfețele nu precizează modul în care un obiect execută o operație
  • Nu pot exista relații între clase și interfețe

10. Dacă B extinde clasa abstractă A și C extinde B, atunci care instanțiere este corectă?

  • C cb = new B();
  • B ba = new A();
  • A ab = new B();
  • C ca = new A();

Clase interne

11. Care din următoarele afirmații sunt adevarate despre clase interne statice? A. Nu au acces la membri non-statici ai clasei exterioare B. Este nevoie de o instanță a clasei externe pentru a o instanția C. Trebuie sa moștenească clasa exterioară D. Trebuie instanțiată astfel: Outer out = new Outer(); Inner in = out.new Inner();

  • A
  • B, D
  • A, B
  • C

12. Care dintre următoarele afirmații este adevărată cu privire la clasele anonime?

  • clasele anonime trebuie să aibă în constructor o referință către clasa exterioară
  • clasele anonime trebuie să definească explicit constructorul fără parametri
  • claselor anonime nu li se poate declara un constructor
  • niciuna din variante

Colecții și genericitate

13. Ce se afișează?

Set<Integer> mySet = new LinkedHashSet<>();
mySet.add(1);
mySet.add(10);
mySet.add(100);
System.out.println(mySet);
  • [10, 1, 100]
  • [100, 10, 1]
  • [1, 10, 100]
  • numerele vor fi afișate într-o ordine arbitrară

14. Ce colecție ar fi mai eficientă de folosit dacă dorim să stocăm o secvență de elemente pe care să o modificăm rar dar pe care să o accesăm foarte des?

  • LinkedList
  • ArrayList
  • Vector
  • niciuna din variante

15. Care instanțiere este corectă? - Set<Integer> set = new HashSet<Object>(); - HashSet<Integer> set = new Set<Integer>(); + Set<Integer> set = new HashSet<Integer>(); - HashSet<Object> set = new HashSet<Integer>();

JUnit și Excepții

16. Ce este JUnit?

  • un framework pentru integration testing
  • un framework pentru unit testing
  • un framwork pentru fuzzy testing
  • un framework pentru system testing

17. Ce se afișează?

public class Test {
    int count = 0;  
    void modifyCount() throws Exception {
        try {
            count++;
            try {
                count++;
                try {
                    count++;
                    throw new Exception();
                }
                catch(Exception e) {
                    count++;
                    throw new Exception();
                }
                finally {
                    count++;
                }
            }
            catch(Exception e) {
                count++;
            }
        }
        catch(Exception e) {
            count++;
        }
 
    }
    public static void main(String[] args) throws Exception {
        Test test = new Test();
        test.modifyCount();
        System.out.println(test.count);
    }
}
  • 6
  • 4
  • 5
  • 7

Design Patterns

18. Care dintre următoarele patternuri ar fi mai util dacă dorim ca anumite clase să fie notificate de schimbări ale altor clase?

  • Visitor
  • Strategy
  • Factory
  • Observer

19. Ce se afișează?

public class NetworkService {
    private static NetworkService instance
                            = new NetworkService();
    public String str;
 
    private NetworkService() {
        str = ""Hello, I am a string"";
    }
 
    public static NetworkService getService() {
        return instance;
    }
 
    public static void main(String[] args) {
        NetworkService a = NetworkService.getService();
        NetworkService b = NetworkService.getService();
 
        System.out.println(a.str == b.str);
    }
}
  • true
  • false
  • 0
  • 1

20. Pentru a modela mai multe butoane din interfața grafică cu o anumită funcționalitate (ce este executată la apăsare) și diverse proprietăți (icon, text, animație), este o buna idee de a folosi urmatorul design pattern:

  • Visitor Pattern
  • Singleton Pattern
  • Factory Pattern
  • Command Pattern
test/test_2018.1516531235.txt.gz · Last modified: 2018/01/21 12:40 by Adriana Draghici