Capitolul 8 - Module. Adnotari si Java Reflection. Securitate Flashcards

1
Q

Ce avantaje au modulele?

A
  • expunere selectiva (string encapsulation)
  • verificare a dependintelor
  • modularizarea jdk-ului
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Cum declari ca modulul A depinde de modulul B

A
module A {
    requires B;
}
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Ce face instructiunea de mai jos prezenta in fisierul module-info.java?
exports service;

A

Expune toate clasele publice din pachetul service.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Ce este o dependenta tranzitiva?

A

Daca am 3 module, B depinde de A, C depinde de B

A

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

By default dependintele nu sunt tranzitive. (a/f)

A

adevarat

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Ce face instructiunea de mai jos prezenta in module-info.java?
requires static A;

A

specifica o dependinta optionala. Adica modulul A poate sa existe sau poate sa nu existe.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q
Explicati instructiunea de mai jos prezenta in module-info.java?
module D {
    provides HelloService with EnglishHelloService;
}
A

In modulul D exista o implementarea a interfetei HelloService in clasa EnglishHelloService.
Practic modulul D expune o implementare a interfetei HelloService in clasa EnglishHelloService.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q
Explicati instructiunea de mai jos prezenta in module-info.java?
module E {
    requires C;
    uses HelloService;
}
A

Modulul E depinde de modulul C.

Modulul E cauta implementari ale interfetelei HelloService.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Ce face instructiunea de mai jos ?

ServiceLoader services = ServiceLoader.load(HelloService.class);

A

pune in lista services toate implementarile clasei HelloService

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Cum declar o adnotare?

A

public @interface MyAnnotation

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

In ce conditii va functiona

@MyAnnotation(3) ?

A

In conditiile in case adnotarea are o singura proprietate care cere o valoare si aceasta se numeste exact “value”

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Ce tipuri pot avea proprietatile unei adnotari?

A
  • orice tip primitiv
  • String
  • obiect de tip Class
  • array-uri ale tipurilor de mai sus
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

ce tipuri de adnotari exista si ce reprezinta?

A
  • source - sunt vizibile doar la momentul scrierii codului. Existenta lor se opreste in momentul compilarii
  • class - exista in fisierele de tip class dar sunt ignorate de interpretor
  • runtime - sunt declarate in fisieru de cod sursa, trec si de compilare si de interpretare.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Ce tip de adnotare este @Override?

A

Este de tip sursa deoarece e folositoare doar in momentuls scrierii codului si este “inlaturata” de compilator.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

cum precizez retention time de runtime?

A

@Retention

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Cum pot sa definesc de mai multe ori aceiasi adnotare pentru un element?

A

Pot folosi adnotarea container care suporta mai multe adnotari de tip MyAnnotation peste acelasi element de limbaj.

Ca restrictie avem faptul ca trebuie a aiba acelasi Retention si acelasi Target.
Adnotarea mea trebuie marcata ca Repeatable.

17
Q

Ce este java reflection?

A

O metoda prin care Java poate isi vada clasele in momentul runtime-ului

18
Q

Cum se numeste fisierul declarativ de configurare al unui modul?

A

module-info

19
Q

Pentru a specifica dependinta unui modul B de un alt modul A, vom declara in fisierul de configurare al modulului B:

A

requires A;

20
Q

In mod implicit, toate pachetele dintr-un modul sunt expuse public in afara modulului.

A

Fals

21
Q

Daca un modul B depinde de un alt modul A, atunci modulul A nu mai poate depinde de B.

A

Adevarat

22
Q

Pentru a declara in fisierul de configurare al unui modul ca modulul respectiv expunde implementarea Y a unei interfete X vom folosi sintaxa:

A

provides X with Y;

23
Q

Ce clasa poate fi folosita pentru a obtine implementarile unei interfete date expuse de modulele aplicatiei?

A

ServiceLoader

24
Q

Pentru a specifica pe ce elemente de limbaj poate fi pusa o adnotare o adnotam pe aceasta cu:

A

@Target

25
Q

Daca vrem ca o adnotare sa existe doar pana la momentul interpretarii codului compilat, dar nu si la runtime, ce parametru trebuie sa specificam pentru @Retention?

A

CLASS

26
Q

Pentru a putea pune o adnotare de mai multe ori pe acelasi element de limbaj, trebuie sa fie prezenta meta-adnotarea:

A

@Repeatable

27
Q

Care dintre tipurile de data de mai jos nu poate fi folosit pentru proprietatea unei adnotari?

  • String
  • Math
  • Class
  • int
  • char[]
A

Math