Testy z Javy verze 1.0 Stránka 1 z 13

Podobné dokumenty
4IT101 - Otázky k závěrečnému testu

4IT101 otázky k závěrečnému testu verze pro zimní semestr 2007/2008

Výčtový typ strana 67

Úvod do programovacích jazyků (Java)

Úvod do programovacích jazyků (Java)

Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

typová konverze typová inference

Počítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů CZ.1.07/1.3.12/

Předmluva k aktuálnímu vydání Úvod k prvnímu vydání z roku Typografické a syntaktické konvence... 20

Programové konvence, dokumentace a ladění. Programování II 2. přednáška Alena Buchalcevová

Obsah. Úvod 11 Základy programování 11 Objektový přístup 11 Procvičování 11 Zvláštní odstavce 12 Zpětná vazba od čtenářů 12 Errata 13

Datové typy strana 29

PB161 Programování v jazyce C++ Přednáška 7

PB161 Programování v jazyce C++ Přednáška 7

Algoritmizace a programování

Úvod do programování - Java. Cvičení č.4

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15

7 Formátovaný výstup, třídy, objekty, pole, chyby v programech

Maturitní otázky z předmětu PROGRAMOVÁNÍ

PŘETĚŽOVÁNÍ OPERÁTORŮ

Definice třídy. úplná definice. public veřejná třída abstract nesmí být vytvářeny instance final nelze vytvářet potomky

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

1. Programování proti rozhraní

8 Třídy, objekty, metody, předávání argumentů metod

Algoritmizace a programování

Řídicí struktury. alg3 1

Úvod Třídy Rozhraní Pole Konec. Programování v C# Hodnotové datové typy, řídící struktury. Petr Vaněček 1 / 39

5 Přehled operátorů, příkazy, přetypování

Abstraktní datové typy: zásobník

Programování v Javě I. Únor 2009

Paměť počítače. alg2 1

Seminář Java IV p.1/38

Zápis programu v jazyce C#

Programování v Javě I. Leden 2008

3. Třídy. Základní pojmy objektového programování. Třídy

Objektově orientované programování

Algoritmizace a programování

Seminář Java II p.1/43

9. Polymorfismus a rozhraní

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Programovací jazyk Pascal

20. Projekt Domácí mediotéka

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)

Definice třídy. úplná definice. public veřejná třída abstract nesmí být vytvářeny instance final nelze vytvářet potomky

Teoretické minimum z PJV

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Algoritmizace a programování

TŘÍDY POKRAČOVÁNÍ. Události pokračování. Příklad. public delegate void ZmenaSouradnicEventHandler (object sender, EventArgs e);

4. ZÁKLADNÍ POJMY Z OBJEKTOVĚ ORIENTOVANÉHO PROGRAMOVÁNÍ

Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost rozhraním a výjimkám.

6. Příkazy a řídící struktury v Javě

11. Dědičnost. Dědičnost strana 103

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI

Dynamicky vázané metody. Pozdní vazba, virtuální metody

Generické programování

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Windows je registrovaná obchodní známka firmy Microsoft v USA a v ostatních zemích.

3. přednáška. Obsah: Řídící struktury sekvence, if-else, switch, for, while, do-while. Zpracování posloupnosti

2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.

Obsah přednášky 9. Skrývání informací. Skrývání informací. Zapouzdření. Skrývání informací. Základy programování (IZAPR, IZKPR) Přednáška 9

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky

Základy objektové orientace I. Únor 2010

Ukazka knihy z internetoveho knihkupectvi

7. Datové typy v Javě

17. Projekt Trojúhelníky

Programování v C++ 3, 3. cvičení

KTE / ZPE Informační technologie

Profilová část maturitní zkoušky 2017/2018

7. přednáška - třídy, objekty třídy objekty atributy tříd metody tříd

for (i = 0, j = 5; i < 10; i++) { // tělo cyklu }

KTE / ZPE Informační technologie

Pokud zadání nerozumíte nebo se vám zdá nejednoznačné, zeptejte se. Pište čitelně, nečitelná řešení nebudeme uznávat.

IB111 Programování a algoritmizace. Objektově orientované programování (OOP)

Z. Kotala, P. Toman: Java ( Obsah )

PREPROCESOR POKRAČOVÁNÍ

Objekty strana 11. Abstrakce je základní objektovou vlastností. Skutečnost, kterou chceme do programu promítnout,

1. Téma 03 - Rozhodování

Regulární výrazy. Vzory

Programovací jazyk Java

11 Diagram tříd, asociace, dědičnost, abstraktní třídy

Java Výjimky Java, zimní semestr

Obsah přednášky. Příkaz for neúplný. Příkaz for příklady. Cyklus for each (enhanced for loop) Příkaz for příklady

PB161 Programování v jazyce C++ Přednáška 9

Jazyk C# a platforma.net

Jazyk C++ 1. Blok 3 Objektové typy jazyka C++ Třída. Studijní cíl. Doba nutná k nastudování. Průvodce studiem

PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1

3. Je defenzivní programování technikou skrývání implementace? Vyberte jednu z nabízených možností: Pravda Nepravda

Řídicí příkazy KAPITOLA 3. Vstup znaků z klávesnice

Proměnné a datové typy

Vyřešené teoretické otázky do OOP ( )

1. ÚVOD ZÁKLADY JAZYKA...

O autorovi O odborném korektorovi Úvod 17 Vývoj jazyka Java Java SE 8 Struktura této knihy Předchozí zkušenosti s programováním nejsou potřebné

NPRG031 Programování II --- 2/2 Z, Zk

Programování v C++ 2, 4. cvičení

Základy jazyka C# Obsah přednášky. Architektura.NET Historie Vlastnosti jazyka C# Datové typy Příkazy Prostory jmen Třídy, rozhraní

Funkcionální programování. Kristýna Kaslová

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

Transkript:

1 Popište rozdíl mezi instancí a třídou. 2 Může být třída objektem? Pokud ano, tak v jakém kontextu. 3 Popište rozdíl mezi instancí a odkazem na instanci. 4 Popište rozdíl mezi objektem a instancí. 5 Popište rozdíly mezi konstruktorem a metodou. 6 Popište rozdíl mezi instancí a identifikátorem. 7 Jaký je rozdíl mezi datovým atributem a lokální proměnnou. 8 Popište následující pojmy: výraz podmínka příkaz 9 Popište následující pojmy: příkaz sekvence příkazů blok příkazů 10 Co se označuje pojmem pozdní vazba (late binding)? 11 Lze přetypovat potomka na předka? Pokud ano, napište nějaký příklad. Pokud ne, vysvětlete proč. 12 Lze přetypovat předka na potomka? Pokud ano, napište nějaký příklad. Pokud ne, vysvětlete proč. 13 Proč je nebezpečné používat veřejné datové atributy? 14 Kde (v čem) se uchovává stav instance mezi jednotlivými voláními metod instance. 15 Existuje dědičnost mezi rozhraními? Pokud ano, zkuste popsat situaci, kdy by mělo smysl ji použít. 16 Stručně vysvětlete rozdíl mezi metodou instance a statickou metodou. 17 Co označuje v souvislostí s objektovou teorií pojem "posílání zpráv"?. Jak se realizuje v Javě? 18 Čím se liší konstruktor a ostatních metod? 19 Jak souvisí dědičnost se znovupoužitelností kódu? 20 Nakreslete diagram tříd, ve kterém je třída A potomkem třídy B a třída A současně implementuje rozhraní R. 21 Popište krátce, jak budete zjišťovat syntaktické chyby? Jak objevíte logické chyby? 22 Ukažte na příkladu, jak rozhraní umožňuje volbu implementace. 23 Stručně vysvětlete polymorfismus v souvislosti s přetěžováním metod. 24 Vysvětlete pojem zapouzdření z objektové teorie. 25 Vysvětlete pojem ukrývání implementace z objektové teorie. 26 Popište rozdíly mezi new Ucet(5, "Jarmila", 10); a Ucet ucet = new Ucet(5, "Jarmila", 10); 27 Popište rozdíly mezi Ucet a; a Ucet a = new Ucet(5, "Jarmila", 10); Testy z Javy verze 1.0 Stránka 1 z 13

28 Najděte chybu v následujícím kódu: CtyrUhelnik r = (5, 10, 15, 20); 29 Najděte chybu v následujícím kódu: double x = Ucet(5, "Jarmila", 10).getStav(); 30 Najděte chybu v následujícím kódu: Ucet ucet; ucet.vloz(10000); 31 Přepiště následující výraz pomocí matematického zápisu: obsah = 4 * Math.PI * Math.pow(r, 3) / 3; 32 Která z následujících tříd je neměnná (read only): String java.util.random java.util.arraylist 33 Jednou z vlastností objektově orientovaných jazyků je posílání zpráv, které se v Javě obvykle realizuje přes volání metod. Kdy se v Javě kontroluje, zda příjemce typ poslané zprávy zná? 34 Které tři základní řídící struktury se v Javě rozlišují? 35 Napište aspoň tři varianty příkazu pro přičtení 1 k celočíselné proměnné x. 36 K čemu se používá příkaz přiřazení? Jak se zapisuje v Javě? 37 Jak zakreslíte typ enum v diagramu tříd? 38 K čemu se používá metoda System.exit()? 39 Lze v Javě dědit konstruktory mezi třídami? 40 Co to je Java virtual machine? 41 Co to je konzole? 42 Popište speciální význam escape znaku \ v Javě při psaní znakových řetězců. 43 Jaký je význam odkazu this. 44 Jaký význam má použití klíčového slova final v deklaraci proměnné. 45 Popište podobnost a rozdíly při kopírování pomocí přiřazovacího příkazu ( = ) primitivních a referenčních typů. 46 Popište rozdíl mezi operátorem == a metodou equals() při porovnávání referenčních typů. 47 Napište jednoduchá pravidla pro použití jednotlivých příkazů cyklu v Javě. 48 Co je to nekonečný cyklus? 49 Co je to vnořený cyklus? Napište příklad situace, kdy se vnořený cyklus typicky používá. 50 Co označuje pojem nepojmenovaný balíček (noname package)? 51 Popište dvě rozdílné situace, kdy se používá klíčové slovo super. 52 Popište dvě odlišné situace, kdy se používá klíčové slovo this. 53 Které modifikátory přístupu lze použít u datových atributů? Testy z Javy verze 1.0 Stránka 2 z 13

54 Které modifikátory přístupu lze použít u statických proměnných? Které lze použít u statických proměnných, které jsou též final? 55 Které modifikátory přístupu je možné použít u metod instancí? Lze je použít i u statických metod? 56 Které z následujících výroků je pravdivý o balíčcích (packages) v Javě: V jednom balíčku může být více tříd stejného jména. Balíčky slouží pro vytváření jmenných prostorů v Javě, tj. v různých balíčcích mohou být třídy stejného jména. Balíčky se používají k seskupování tříd pro posílání zpráv je možné poslat zprávu všem třídám v jednom balíčku. Balíčky se používají k seskupování instancí je možné poslat zprávu všem instancím v jednom balíčku. 57 Které z následujících prvků mohou být součástí hlavičky metody: deklarace lokální proměnných, typ návratové hodnoty, modifikátory přístupu, modifikátor final, příkazy. 58 Vyberte pravdivé výroky o metodách (nemluvíme o konstruktorech), které nevracejí žádnou návratovou hodnotu: taková metoda musí být veřejná, taková metoda nesmí obsahovat příkaz return, taková metoda musí obsahovat příkaz return, návratový typ musí být specifikován slovem void, 59 Vyberte pravdivé výroky o formálních parametrech metody: v deklaraci formálního parametru musí být vždy uveden typ, v deklaraci formálního parametru může být uvedena defaultní hodnota (např. int hodnota = 4), u formálního parametru metody mohou být uvedeny modifikátory přístupu, formální parametr metody může být označen modifikátorem final. 60 Jaké modifikátory přístupu lze použít v deklaraci metod v rozhraní? Které lze použít u metod předepsaných rozhraním ve třídě, která implementuje rozhraní? 61 Napište koncovky následujících souborů (pokud na koncovce nezávisí, tak uveďte hodnotu libovolná): - soubor se zdrojovým textem programu v Javě, - soubor vytvořený překladačem při úspěšném překladu zdrojového programu v Javě - soubor se zdrojovým textem deklarace rozhraní v Javě, - soubor se zdrojovým textem výčtového typu (enum) v Javě. 62 Popište aspoň dvě situace, ve kterých se v Javě používají složené závorky. 63 Popište aspoň tři situace, ve kterých se v Javě používají kulaté závorky. 64 Popište dvě situace, ve kterých se v Javě používají hranaté závorky. 65 Zkuste vysvětlit rozdíl mezi skutečným a formálním parametrem metody. 66 Popište význam balíčku (package) v Javě? 67 Vysvětlete rozdíl mezi deklarací a inicializací datového atributu. 68 Jaký je rozdíl mezi lokální proměnnou metody a datovým atributem? 69 Může být statická proměnná deklarována uvnitř metody (podobně jako lokální proměnná)? 70 Popište aspoň dvě situace, ve kterých se v Javě používá klíčové slovo new. 71 Kolik může mít třída konstruktorů? Jak se od sebe odliší? 72 Pokud zdrojovém kódu třídy neuvedu konstruktor, bude mít tato třída konstruktor? Pokud ano, uveďte jaký? 73 Mohou se konstruktoryv Javě překrývat (overriding)? Pokud ne, tak napište důvod. 74 Mohou se konstruktory v Javě přetěžovat (overloading)? Pokud ne, tak napište důvod. 75 Záleží na pořadí klauzulí import? Pokud ano, napište proč. Testy z Javy verze 1.0 Stránka 3 z 13

76 K čemu se využívají literály u číselných primitivních datových typů? 77 Proč existují v Javě obalové třídy k primitivním datovým typům? 78 Jaký je význam modifikátorů static a final u pojmenovaných konstant? 79 K čemu se používají statické proměnné (proměnné třídy)? 80 Je statická proměnná třídy s modifikátorem private dostupná z instancí této třídy? Pokud ne, zdůvodněte. 81 Může být statická proměnná třídy referečního typu, tj. může obsahovat odkaz na instanci nějaké třídy? Pokud ne, zdůvodněte. 82 Jaký význam má modifikátor final u parametru metody? 83 Jaký význam má modifikátor final u lokální proměnné (proměnné deklarované uvnitř metody)? 84 Popište jednotlivé části výrazu System.out.println("výsledky:"), tj. co je System, co je out, co je println, co je "výsledky:". 85 Vyberte přípustné deklarace metody main jako vstupního bodu aplikace. U nesprávných popište chybu. public static void main (String [] args) public static void main (String [] parametry) public static void main () public static void main (String args) 86 Co označuje pojem escape znak u řetězců? Lze použít escape znaky i u typu znak? 87 Co označuje pojem regulární výraz? 88 Jaké jsou výhody tříd StringBuffer a StringBuilder proti používání třídy String? 89 Nechť třída Predek má tyto dva konstruktory: Predek(int cislo) Predek(String retezec) Musí mít potomek této třídy uveden explicitně konstruktor? Pokud ano, vysvětlete důvod. 90 Lze z jednoho konstruktoru volat konstruktor předka (přes super) i jiný konstruktor stejné třídy (přes this)? Pokud ano, uveďte příklad. 91 Může mít některá Vaše třída v Javě konstruktor, ze kterého by se nevolal jiný konstruktor? Vysvětlete svůj názor. 92 Popište rozdíl významu modifikátoru protected od ostatních možností přístupu k prvkům. 93 Může nějaká třída implementovat rozhraní (tj. má ho v hlavičce) a současně nemít implementaci metod uvedených v rozhraní? Pokud ano, vysvětlete. 94 Může abstraktní třída implementovat rozhraní? Pokud ne, vysvětlete proč. 95 Napište příklad přetypování referenčních typů. 96 Jaké jsou důvody pro používání dědičnosti? 97 Vysvětlete tvrzení, že dědičnost porušuje zapouzdření. Testy z Javy verze 1.0 Stránka 4 z 13

98 Prohlédněte si tento kód: final int cislo; cislo = 5; Která z následujících variant je správná: bude chyba při překladu, vznikne chyba (výjimka) při běhu programu, nevznikne žádná chyba, v proměnné cislo bude hodnota 0 nevznikne žádná chyba, v proměnné cislo bude hodnota 5 99 Následující příkazy if jsou chybně. Popište u každého z nich chyby: if castka > 0 then System.out.println("částka je :" + castka); if (1 + x > Math.pow(x, Math.sqrt(2)) y = y + 2; if (x = 1) y++; else if (x = 2) y = y + 2; if (1 <= x <= 10) System.out.println(x); 100 V následujících dvou ukázkách jsou chyby v příkazu if, popište je. int x = 5; if (x!= null) { y = y + x; a jazyk = "angličtina"; if (country.equals("us")) if (stat.equals("portoriko")) { jazyk = "španělština"; else if (country.equals("cz")) { jazyk = "čeština"; 101 Popište rozdíl mezi s = 0; if (x > 0) { s++; if (y > 0) { s++; a s = 0; if (x > 0) { s++; else { if (y > 0) s++; 102 Zkuste zjednodušit následující podmínky:! ( x > 0 && y > 0)! ( x!= 0 y!= 0) 103 Co je chybně v následujícím kódu: Ucet ucet;... if (ucet.equals(null)) { ucet = new Ucet(1, "Jarmila", 10); Testy z Javy verze 1.0 Stránka 5 z 13

104 Kolikrát se provede tělo jednotlivých následujících cyklů (předpokládejte, že uvnitř těla nejsou příkazy break, continue apod.): for (int i = 1; i <= 10; i++)... for (int i = 0; i < 10; i++)... for (int i = 10; i > 0; i--)... for (int i = 10; i>= 10; i++)... for (int i = 0; i <= 10; i = i + 2)... 105 Přepište následující cyklus do cyklu while int soucet = 0; for (int i = 1; i <= 10; i++) { soucet = soucet + i; 106 Nechť třída Trida implementuje dvě rozhraní Rozhr1 a Rozhr2. V kterých z následujících řádků vznikne výjimka a proč: Trida instance1 = new Trida(); Rozhr1 rozhr1 = instance1; Rozhr2 rozhr2 = (Rozhr2) rozhr1; Trida instance2 = (Trida) rozhr1; 107 Nechť identifikátor emanuel obsahuje odkaz na instanci třídy Motyl, která implementuje rozhraní ObyvatelLouky. Které z následujících podmínek vrátí true? emanuel instanceof Motyl emanuel instanceof Serializable emanuel instanceof Cloneable emanuel instanceof ObyvatelLouky emanuel instanceof Object 108 Nechť třída BigMac je potomkem třídy Hamburger. Které z přiřazení v následující sekvenci příkazů jsou legální (tj. přeloží se bez chyby): Hamburger x = new Hamburger(); BigMac y = new BigMac(); x = y; y = x; y = new Hamburger(); x = new BigMac(); 109 Které z následujících výroků jsou pravdivé. U nepravdivých napište důvod. - Pokud se v Javě deklaruje proměnná, musí se vždy uvést typ. - V Javě jsou identifikátory number a Number identické. - Aritmetické operátory +, -, *, / a % mají stejnou prioritu. - Kulaté závorky v aritmetickém výrazu ovlivňují pořadí vyhodnocování jednotlivých částí výrazu. - Aritmetický výraz bez závorek se vyhodnocuje zleva doprava. 110 Najděte a opravte chyby v následujících třech výrazech: if ( cislo < 7 ) ; System.out.println("cislo je menší než 7"); if ( cislo => 7 ) System.out.println("cislo je větší nebo rovno 7"); if ( cislo % 7 ) System.out.println("cislo je dělitelné 7"); 111 Co je špatného na následujícím cyklu while: while ( z >= 0 ) { suma += z; Testy z Javy verze 1.0 Stránka 6 z 13

112 Které z následujících výroků jsou pravdivé. U nepravdivých napište důvod. - Větev default musí být vždy uvedena v příkazu switch. - Příkaz break je povinný v poslední větvi case příkazu switch. - Výraz ( x > y && a < b ) je pravdivý, pokud je buď x > y pravdivé nebo pokud je a < b pravdivé. 113 Najděte a opravte chyby v následujících částech kódu: a) následující kód by měl vypsat čísla od 1 do 10: n = 1; while ( n < 10 ) { System.out.println( n++ ); b) následující kód by měl vypsat lichá čísla od 19 do 1: for ( i = 19; i >= 1; i += 2 ) { System.out.println( i ); 114 Napište statickou metodu fahrenheit, která bude převádět stupně dle stupnice Celsiovy na stupně dle Fahrenheitovy stupnice. Parametrem bude počet stupňu dle Celsiovy stupnice. Vzorec na převod stupňů je následující: F = 9.0 / 5.0 * C + 32 115 Uveďte aspoň dvě jazykové konstrukce Javy, které nelze uvést uvnitř metody. 116 Uveďte ukázku kódu, ve kterém se uplatní autoboxing. 117 Jaký je rozdíl mezi rozhraním Comparable a Comparator? 118 Jaké jsou nevýhody použití pojmenovaných konstant např. pro výjádření dnů v týdnu? 119 Chceme vyjádřit seznam přípustných hodnot (např. dnů v týdnu). Proč je použití typu enum pro tento účel typově bezpečné na rozdíl od použití pojmenovaných konstant? 120 Popište význam metody tostring() u třídy Object a u jejich potomků? 121 Popište význam metody equals() u třídy Object a u jejich potomků? 122 Jaký má význam metoda hashcode() u třídy Object a u jejich potomků? 123 Kdy se používá metoda finalize() třídy Object či jejich potomků? 124 Popište formátování řetězců v Javě 5.0 včetně ukázky kódu. 125 Někdy se uvádí, že rozhraní je v podstatě stejné jako abstraktní třída, která má pouze abstraktní metody. Vysvětlete, v čem se tyto dvě situace v Javě liší. 126 Může nastat chyba překročení hranice pole u seznamů (instancí třídy List)? 127 Co označuje pojem index u seznamů a u polí? 128 V jaké situaci dojde k překročení hranice pole (tj. vznikne výjimka ArrayIndexOutOfBoundException). Napište část kódu, ve kterém se překročí hranice pole (tj. vznikne ArrayIndexOutOfBoundException). 129 Které z následujících výroků jsou pravdivé: Všechny prvky pole jsou stejného typu. Indexem v poli musí být celé číslo. Pole nemůže obsahovat řetězce jako prvky pole. Pole nemůže používat řetězce jako indexy. Dvourozměrné pole musí mít stejný počet řádek, jako má sloupců. 130 Které z následujících výroků o seznamech (implementace rozhraní List) jsou pravdivé: Všechny prvky seznamu jsou stejného typu. Indexem pro přístup k prvku seznamu musí být celé číslo. Seznam nemůže obsahovat řetězce jako prvky pole. Seznam nemůže používat řetězce jako indexy. Seznam může jako prvky obsahovat instance seznamů. Testy z Javy verze 1.0 Stránka 7 z 13

131 Které z následujících výroků o polích jsou pravdivé: Pole může být návratovým typem metody. Pomocí metody lze změnit velikost pole. Pokud pole obsahuje instance nějaké třídy, musí být v každém políčku umístěn odkaz na jinou instanci. 132 U kterých datových struktur lze používat indexy? 133 Které datové struktury je možné procházet pomocí klasického cyklu for s řídící proměnnou, podmínkou a krokem? 134 Jaké jsou nevýhody typu enum proti množině (Set) či seznamu (List)? 135 V čem se liší mapy od kolekcí? 136 Co je chybně v následujícím kódu: double[] data = new double[10]; for (int i = 1; i <= 10; i++) { data[i] = i * i; 137 Může mapa obsahovat dva různé klíče odkazující na stejnou hodnotu (stejnou instanci)? Může mapa obsahovat dvě různé hodnoty ke stejnému klíči? 138 Popište rozdíly mezi kolekcemi a poli v Javě. 139 Popište rozdíly mezi seznamy (implementacemi rozhraní List) a množinami (implementacemi rozhraní Set). 140 Máte pole s pěti prvky. Jak můžete z pole vymazat prvek s indexem 2? 141 Popište rozdíl mezi tříděním kolekce pomocí Collections.sort() a použitím třídy TreeSet? Co mají shodného? 142 Obsah trojúhelníka se dá vypočítat pomocí vzorce ab sin(γ ) S = 2 Přepište tento vzorec do programového kódu. 143 Nechť je proměnná x typu double. Jaký je rozdíl mezi výsledky následujících výrazů: (int) x; (int) (x + 0.5); 144 Popište, co bude výsledkem následujících dvou částí kódu (kód lze přeložit, proměnné jsou odpovídajících typů): x = 2; y = y + 2; a s = "2"; t = s + s; 145 Setřiďte primitivní datové typy pro čísla dle maximální velikosti ukládané hodnoty (od nejmenší k největší): byte, double, float, int, long, short. 146 Co vypíše následující kód: System.out.prinln("*\n**\n***\n****\n*****"); 147 Napište příklad kódu, ve kterém dojde k přetečení celého čísla. 148 Popište rozdíly mezi následujícími výrazy: 2 2.0 '2' "2" "2.0" Testy z Javy verze 1.0 Stránka 8 z 13

149 Když zkopírujete odkaz na instanci třídy Ucet, budou oba identifikátory odkazovat na stejnou instanci. Přes oba identifikátory můžete měnit obsah (datové atributy) této jedné instance (pomocí volání metod). Platí toto i pro instance třídy String? 150 V čem se liší přetypování instance (Ucet)x od přetypování celého čísla (int)cislo? 151 Vznikne v následujícím kódu výjimka ArithmeticException z důvodu dělení nulou? Zdůvodněte. int cislo; int vysledek = cislo / 0; 152 Vznikne v následujícím kódu výjimka ArithmeticException z důvodu dělení nulou? Zdůvodněte. double cislo; double vysledek = cislo / 0; 153 Vznikne v následujícím kódu výjimka ArithmeticException z důvodu dělení nulou? Zdůvodněte. int cislo; double vysledek = cislo / 0; 154 Uveďte příklad kódu, ve kterém se musí použít přetypování u primitivních datových typů. 155 Máte celé číslo 23456. Napište kód, pomocí kterého získáte první číslici (tj. číslici 2), aniž byste převedli číslo na řetězec. 156 Máte celé číslo 23456. Napište kód, pomocí kterého získáte poslední číslici (tj. číslici 6), aniž byste převedli číslo na řetězec. 157 Nechť jsou deklarovány následující proměnné: int m = 18; int n = 4; String s = "Hello"; String t = "World"; Jaký bude výsledek následujících výrazů: s + t s + n s.substring(1, 3) s.length() + t.length() 158 Máme matematický vzorec y=ax 3 + 7. Které z následujících výrazů v Javě odpovídají tomuto vzorci: y = a * x * x * x + 7; y = a * x * x * ( x + 7); y = ( a * x ) * x * ( x + 7 ); y = ( a * x ) * x * x + 7 ; y = a * ( x * x * x ) + 7; y = a * x * ( x * x + 7 ); 159 Proč se nemusí v hlavičce metody uvádět, že v metodě může vzniknout výjimka NullPointerException? 160 Pokud se v programu provede příkaz throw, jaký příkaz následuje? 161 Je instance výjimky vždycky stejného typu, jako typ uvedený v klauzuli catch, která výjimkou odchytne? 162 Jaký je rozdíl mezi kontrolovanou a nekontrolovanou výjimkou? 163 Jaký je význam klauzule finnaly při odchytávání výjimek? 164 Jak mohou vznikat výjimky? Může je vyvolat programátor? 165 Co označuje pojem "předání výjimky výš"? Testy z Javy verze 1.0 Stránka 9 z 13

166 Kdy by se měla používat výjimka IllegalArgumentException, kdy IllegalStateException? 167 Popište pravidla pro používání malých a velkých písmen v identifikátorech v Javě. 168 Vysvětlete, proč by na jednom řádku měl být pouze jeden příkaz a proč by se měl odsazovat kód v bloku. Výhody ukažte na příkladech. 169 Jaké jsou možnosti kontroly správnosti kódu? 170 Uveďte příklad umístění ladících výpisů do kódu. 171 Jaké má výhody debugování kódu pro hledání chyb? Jaké má nevýhody? 172 K čemu se používají při debugování kódu zarážky (breakpoints)? 173 Jaké jsou výhody jednotkového testování (např. pomocí JUnit) v porovnání s umisťováním ladících výpisů do kódu a debugováním kódu? 174 Co by mělo být uvedeno v dokumentačním komentáři ke třídě? Které značky pro javadoc se zde obvykle používají? 175 Co by mělo být uvedeno v dokumentačním komentáři k metodě? Které značky pro javadoc se zde obvykle používají? 176 Které programovací jazyky byly primárně navrženy pro oblast vědecko-technických výpočtů? 177 Které programovací jazyky se často používají pro programování operačních systémů (v širším slova smyslu)? 178 Je datový atribut instance proměnnou? 179 Objekt (třída) je nejčastější příklad abstraktního datového typu. Existují i jiné příklady abstraktního datového typu? 180 Popište krátce některé jazyky, které slouží pro komunikaci s počítačem a nejsou programovací. 181 Popište krátce rozdíly v požadavcích na programovací jazyky pro vědecko-technické výpočty od požadavků na programovací jazyky pro obchodní aplikace. 182 Zkuste vysvětlit výrok Programátor komunikuje s virtuálním strojem příslušného programovacího jazyka. 183 Jaké jsou fáze překladu u klasicky překládaných programovacích jazyků? 184 Vysvětlete rozdíl mezi klasicky překládaným programovacím jazykem a interpretem. 185 Jaké jsou výhody a nevýhody interpretovaných programovacích jazyků? 186 Z hlediska překladu se Java označuje za hybridní programovací jazyk. Proč je právě hybridní? 187 Jak byste charakterizovali assembler. 188 Vyjmenujte čtyři základní rysy procedurálních programovacích jazyků. 189 Které programovací jazyky byste zařadili mezi procedurální programovací jazyky? 190 Napište příklady programovacích jazyků, které byly doplněny o objektové vlastnosti a příklady programovacích jazyků, které byly od začátku navrženy objektově. 191 Charakterizujte programovací jazyky 4. generace. 192 K čemu se používají skriptovací programovací jazyky? 193 Charakterizujte programovací jazyk Plankalkül. 194 Charakterizujte programovací jazyk Fortran. 195 Charakterizujte programovací jazyk LISP. 196 Charakterizujte programovací jazyk Algol. 197 Charakterizujte programovací jazyk Algol 68. Jak ovlivnil další programovací jazyky? Testy z Javy verze 1.0 Stránka 10 z 13

198 Charakterizujte programovací jazyk Cobol. 199 Charakterizujte programovací jazyk Basic či Visual Basic. 200 Charakterizujte programovací jazyk PL/I. 201 Charakterizujte programovací jazyk Pascal. 202 Charakterizujte programovací jazyk C. 203 Charakterizujte programovací jazyk Prolog. 204 Charakterizujte programovací jazyk Ada. 205 Charakterizujte programovací jazyk Smalltalk. 206 Charakterizujte programovací jazyk C++. 207 Charakterizujte programovací jazyk C#. 208 Charakterizujte programovací jazyk JavaScript. 209 Charakterizujte programovací jazyk PHP. 210 Zkuste krátce vysvětlit pojem proměnná. 211 Jaké jsou atributy proměnné. 212 Co se zvažuje při návrhu pravidel pro názvy proměnných v programovacím jazyce? 213 Co je to jmenná konvence? Uveďte příklady jmenných konvencí. 214 Zkuste krátce charakterizovat maďarskou notaci. 215 Kdy se přiřazuje typ k proměnné? 216 Jaké jsou nevýhody dynamické vazby typu proměnné. 217 Jaký je rozdíl mezi zásobníkem a haldou z hlediska alokace paměti pro proměnné? 218 Co to je globální proměnná? Jaké má výhody/nevýhody? 219 Co to je typová kontrola? Kdy se provádí? 220 Co znamená, že je nějaký programovací jazyk je silně typový? Uveďte příklady silně typových jazyků. 221 Jaký je rozdíl mezi životností a rozsahem platnosti proměnné. 222 Jaké typy se zařazují mezi primitivní datové typy? 223 Charakterizujte dekadický číselný typ. 224 Jak se může alokovat paměť pro pole? 225 Uveďte nějaké informace o vícerozměrných polích v různých programovacích jazycích. 226 K čemu se používá datový typ pointer? Jaké operace jsou pro pointer k dispozici? 227 Jaký je rozdíl mezi typem pointer a referenčním typem? 228 Jaké vlastnosti musí splňovat abstraktní datový typ? 229 Patří typ záznam mezi uživatelem definované typy? Proč? 230 Patří typ záznam mezi abstraktní datové typy? Proč? 231 Jaké jsou výhody abstraktního datového typu? Testy z Javy verze 1.0 Stránka 11 z 13

232 Uveďte příklad parametrických abstraktních datových typů. 233 V čem se liší datový typ objekt od abstraktního datového typu? 234 Co víte o objektech (datovém typu objekt) ve Smalltalku? 235 Co víte o objektech (datovém typu objekt) v C++? 236 Popište rozdíl mezi používáním počítačového programu a programováním počítače. 237 Vypište nevýhody assembleru vůči programovacímu jazyku vyšší úrovně. 238 Co označuje pojem integrované vývojové prostředí 239 Jedním z kritérií pro hodnocení programovacích jazyků jsou náklady spojené s konkrétním programovacím jazykem. Co všechno se do těchto nákladů zahrnuje? 240 Vysvětlete (např. pomocí příkladů) vliv jednoduchosti návrhu programovacího jazyka na čitelnost programu? 241 Co označuje pojem ortogonalita v souvislosti s návrhem programovacího jazyka? 242 Jaká kritéria ovlivňují čitelnost kódu určitého programovacího jazyka? 243 Co ovlivňuje snadnost zápisu programu v jednotlivých programovacích jazycích? 244 Co se označuje výrazem expresivita programovacího jazyka? 245 Jaký je rozdíl mezi lexikální a syntaktickou analýzou? 246 Jaký je rozdíl mezi syntaxí a sémantikou programovacího jazyka. 247 Jak se formálně popisuje syntaxe programovacího jazyka. 248 Co to je syntaktický strom programu. 249 K čemu se používá Backus-Naurova forma. 250 V čem se liší statická sémantika od dynamické sémantiky? 251 Jak lze popsat dynamickou sémantiku programovacího jazyka? 252 Jak vypadá výčtový typ v Javě? Jakým jiným způsobem se realizuje v některých jiných programovacích jazycích? 253 Co označuje pojem asociativní pole? Je k dispozici programátorům v Javě? Pokud ano, jak se v Javě označuje. 254 Co to je datový typ záznam (record)? Uveďte příklady programovacích jazyků, které používají datový typ záznam. 255 Co víte o datovém typu union (záznam proměnlivé délky)? Je k dispozici programátorům v Javě pokud ano, tak pod jakým názvem. 256 Vysvětlete datovou abstrakci. 257 Jaký je rozdíl mezi infixovou a postfixovou notací? 258 Vysvětlete prefixovou (polskou) notaci. Kde se používá? 259 Popište krátce rozdíly mezi procedurálními a funkcionálními programovacími jazyky? 260 Vypište nejznámější funkcionální programovací jazyky včetě stručné charakteristiky. 261 Pro jaké aplikace se nejčastěji používají funkcionální programovací jazyky? 262 Stručně charakterizujte logické programovací jazyky? 263 Vysvětlete tvrzení, že Prolog patří mezi deklarativní jazyky. 264 Jaké jsou nejčastější oblasti použití Prologu. Testy z Javy verze 1.0 Stránka 12 z 13

265 Jaký je v Prologu rozdíl mezi faktem (predikátem) a pravidlem. 266 Vysvětlete význam následujících funkcí definovaných ve Scheme: (DEFINE (mocnina cislo) (* cislo cislo) ) (DEFINE (prepona strana1 strana2) (SQRT(+(mocnina strana1)(mocnina strana2))) ) 267 Nakreslete diagram tříd pro následující třídy a rozhraní: public class Gamma extends Delta implements Epsilon { public interface Epsilon { public interface Beta { public class Alpha extends Gamma implements Beta { public class Delta { 268 Jaká je chyba v následujícím kódu? Jak by jste ji opravili? String text1 = "1. verze"; String text2 = "2. verze"; boolean vysledek = (text1 < text2); 269 Jak bude vypadat výpis z následujícího programu: for (int i=0; i < 6; i++) { for (int j=0; j< i; j++) { System.out.print("*"); System.out.println(); 270 Nechť máme nadeklarovanou metodu: private double vratcislo() {... Při kterých z následujících použití ve stejné třídě vznikne chyba a proč: a) int cislo = vratcislo(); b) double cislo = vratcislo(); c) vratcislo(); d) String cislo = vratcislo(); Testy z Javy verze 1.0 Stránka 13 z 13