Capitolul 8 - Module. Adnotari si Java Reflection. Securitate Flashcards
Ce avantaje au modulele?
- expunere selectiva (string encapsulation)
- verificare a dependintelor
- modularizarea jdk-ului
Cum declari ca modulul A depinde de modulul B
module A { requires B; }
Ce face instructiunea de mai jos prezenta in fisierul module-info.java?
exports service;
Expune toate clasele publice din pachetul service.
Ce este o dependenta tranzitiva?
Daca am 3 module, B depinde de A, C depinde de B
A
By default dependintele nu sunt tranzitive. (a/f)
adevarat
Ce face instructiunea de mai jos prezenta in module-info.java?
requires static A;
specifica o dependinta optionala. Adica modulul A poate sa existe sau poate sa nu existe.
Explicati instructiunea de mai jos prezenta in module-info.java? module D { provides HelloService with EnglishHelloService; }
In modulul D exista o implementarea a interfetei HelloService in clasa EnglishHelloService.
Practic modulul D expune o implementare a interfetei HelloService in clasa EnglishHelloService.
Explicati instructiunea de mai jos prezenta in module-info.java? module E { requires C; uses HelloService; }
Modulul E depinde de modulul C.
Modulul E cauta implementari ale interfetelei HelloService.
Ce face instructiunea de mai jos ?
ServiceLoader services = ServiceLoader.load(HelloService.class);
pune in lista services toate implementarile clasei HelloService
Cum declar o adnotare?
public @interface MyAnnotation
In ce conditii va functiona
@MyAnnotation(3) ?
In conditiile in case adnotarea are o singura proprietate care cere o valoare si aceasta se numeste exact “value”
Ce tipuri pot avea proprietatile unei adnotari?
- orice tip primitiv
- String
- obiect de tip Class
- array-uri ale tipurilor de mai sus
ce tipuri de adnotari exista si ce reprezinta?
- 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.
Ce tip de adnotare este @Override?
Este de tip sursa deoarece e folositoare doar in momentuls scrierii codului si este “inlaturata” de compilator.
cum precizez retention time de runtime?
@Retention