Table of Contents

Zkouška

Formát zkoušky

Klíčová slova

Třídy, rozhraní; vnitřní třídy, anonymní vnitřní třídy, uzávěry.

Proměnné, statické proměnné, atributy, lokální proměnné, parametry, vázání jmen; halda, zásobník a prostor statických proměnných; primitivní typy a ukazatele, instance, == a equals.

Metody, pozdní a brzká vazba metod, dvojité volání; statické metody a konstruktory.

Inkluzivní polymorfismus (vztah nadtyp/podtyp), subsumpce a substituční princip, kovariance a kontravariance, operátor instanceof a přetypování.

Parametrický polymorfismus (generické třídy), typové parametry, hranice typových parametrů, instanciace generické třídy, ko- a kontravariance generických tříd.

Ad hoc polymorfismus: přetěžování metod a koerce.

Dědičnost, kaskádování konstruktorů, překrývání metod, stínění proměnných, abstraktní třídy a metody, klíčové slovo super.

Skrývání implementace (zapouzdření), invarianty a aserce, zpřístupnění vnitřní reprezentace; problém rámce při dokumentování funkce tříd a metod.

Návrhové vzory tovární metoda, továrna, abstraktní továrna, stavitel, adaptér, dekorátor, proxy, stav, strategie, command, strom, interpretr, návštěvník, iterátor, pozorovatel, šablonová metoda, nulový objekt.

Imutabilita, funkcionální programování, funkce vyšších řádů (filter, map/transform a fold/reduce); Google Guava, Functional Java.

Metaprogramování.

Použití vzorů v Java Např. zde