Připravujete se na pohovor na pozici Java developera? Zvládnutí syntaxe a základních konceptů nestačí. Firmy se zaměřují i na vaše znalosti Java Core. Tento článek vám pomůže s přípravou. Připravili jsme pro vás 50 otázek a odpovědí, které se často objevují na pohovorech pro Java Core pozice.
Základy Javy
Co je to JVM, JRE a JDK?
JVM (Java Virtual Machine) je virtuální stroj, který spouští Java bytecode. JRE (Java Runtime Environment) obsahuje JVM a knihovny potřebné pro spouštění Java aplikací. JDK (Java Development Kit) obsahuje JRE a nástroje pro vývoj Java aplikací, jako je kompilátor a debugger.
Jaké jsou datové typy v Javě?
Java má dva hlavní typy dat: primitivní a referenční. Primitivní datové typy zahrnují byte, short, int, long, float, double, boolean a char. Referenční datové typy odkazují na objekty.
Co je to garbage collection v Javě?
Garbage collection je automatický proces správy paměti v Javě. Automaticky uvolňuje paměť obsazenou objekty, které již nejsou používány. To pomáhá předcházet memory leakům.
Vysvětlete rozdíl mezi == a .equals() v Javě.
Operátor == porovnává referenční proměnné a zkontroluje, zda ukazují na stejný objekt v paměti. Metoda .equals() porovnává obsah objektů. Je důležité si uvědomit, že metoda .equals() může být přepsána v třídě, aby poskytovala specifické porovnání obsahu.
Objektově orientované programování (OOP)
Co jsou to čtyři základní principy OOP?
- Encapsulation (Zapouzdření): Skrývání dat a metod uvnitř objektu a poskytnutí kontrolovaného přístupu k nim.
- Abstraction (Abstrakce): Zjednodušení složitého systému modelováním pouze relevantních vlastností a chování.
- Inheritance (Dědičnost): Umožňuje vytvářet nové třídy na základě existujících tříd, čímž se snižuje redundance kódu.
- Polymorphism (Polymorfismus): Umožňuje objektům různých tříd reagovat na stejné volání metody odlišným způsobem.
Vysvětlete rozdíl mezi třídou a rozhraním v Javě.
Třída může obsahovat jak implementaci, tak deklaraci metod. Rozhraní obsahuje pouze deklarace metod (bez implementace) a konstanty. Rozhraní definuje kontrakt, který musí implementovat třídy.
Co je to abstraktní třída?
Abstraktní třída je třída, kterou nelze instanciovat. Může obsahovat abstraktní metody (bez implementace) a konkrétní metody. Abstraktní třídy slouží jako základ pro dědičnost a definují společné chování.
Co je to polymorfismus a jaké existují typy polymorfismu?
Polymorfismus umožňuje objektům různých tříd reagovat na stejné volání metody odlišným způsobem. Existují dva hlavní typy polymorfismu: compile-time (static) polymorfismus (method overloading) a runtime (dynamic) polymorfismus (method overriding).
Kolekce
Jaké jsou hlavní typy kolekcí v Javě?
Hlavní typy kolekcí v Javě zahrnují List (ArrayList, LinkedList), Set (HashSet, TreeSet), Map (HashMap, TreeMap) a Queue (PriorityQueue).
Vysvětlete rozdíl mezi ArrayList a LinkedList.
ArrayList je založen na dynamickém poli a poskytuje rychlý přístup k prvkům podle indexu. LinkedList je založen na propojeném seznamu a poskytuje rychlé vkládání a odstraňování prvků na začátku a konci seznamu. ArrayList je vhodnější pro čtení dat, zatímco LinkedList pro časté operace vkládání a mazání.
Co je to HashMap a jak funguje?
HashMap je implementace rozhraní Map, která používá hashovací funkci k ukládání a načítání dat. Klíče jsou hashovány a uloženy v poli. Klíče by měly implementovat metodu hashCode() a equals() pro správné fungování HashMap.
Výjimky
Co je to výjimka v Javě?
Výjimka je událost, která naruší normální tok programu. Java poskytuje mechanismus pro zpracování výjimek pomocí bloků try-catch-finally.
Jaké jsou typy výjimek v Javě?
Výjimky v Javě se dělí na checked exceptions (kontrolované výjimky), které musí být explicitně ošetřeny (např. IOException) a unchecked exceptions (nekontrolované výjimky), které nemusí být ošetřeny (např. NullPointerException, ArrayIndexOutOfBoundsException).
Vysvětlete použití bloku try-catch-finally.
Blok try obsahuje kód, který může vyvolat výjimku. Blok catch obsahuje kód pro ošetření výjimky. Blok finally obsahuje kód, který se vždy provede, bez ohledu na to, zda byla výjimka vyvolána nebo ne. Slouží pro uvolnění zdrojů (např. zavření souborů).
Další důležité otázky
Toto je pouze malý výběr možných otázek. Během pohovoru můžete očekávat další otázky týkající se multithreadingu, databází, návrhových vzorů a dalších pokročilých konceptů Javy. Důležité je ukázat nejen znalosti, ale i schopnost řešit problémy a logicky uvažovat.
Pamatujte, že dobrá příprava je klíčem k úspěchu na pohovoru. Hodně štěstí!