Co reprezentují instance třídy java.io.File?
● Abstraktní cestu k souboru či složce
● Data uložená v souborech, které jsou uloženy ve vnější paměti (disk, flash ...) a uspořádány do stromové struktury
● Data uložená na disku | ● Abstraktní cestu k souboru či složce |
Identifikátor v Javě může obsahovat:
● podtržítko _
● ampersand &
● mezeru
● číslice
● zavináč @ | ● podtržítko _
● číslice |
Identifikátor emanuel obsahuje odkaz na instanci třídy Motýl, která implementuje rozhraní ObyvatelLouky. Které z následujících podmínek vrátí hodnotu true?
● emanuel instanceof Motyl
● emanuel instanceof Serializable
● emanuel instanceof Object
● emanuel instanceof Cloneable
● emanuel instanceof ObyvatelLouky | ● emanuel instanceof Motyl
● emanuel instanceof Object
● emanuel instanceof ObyvatelLouky |
Jak dělíme datové proudy?
● vstupní x výstupní
● datové proudy nijak nedělíme
● bajtové x znakové
● otevřené x zavřené
● soubory x složky (Datové proudy pro Otevření a uzavření souboru v C a C++) | ● vstupní x výstupní
● bajtové x znakové |
Jako typ návratové hodnoty metody může být uvedeno:
● pole prvků primitivních datových typů
● pole prvků objektových (referenčních) typů
● jakýkoli objektový (referenční) typ
● typ void | ● pole prvků primitivních datových typů
● pole prvků objektových (referenčních) typů
● jakýkoli objektový (referenční) typ
● typ void |
Je dána deklarace proměnných int cislo; int desítky;
Který z následujících kódů získá do proměnné desítky číslici z pozice desítek v proměnné cislo ?
(Například aby pro cislo=1234 bylo desitky=3.)
● desitky = (cislo % 100)/10
● desitky = (cislo/ 100)*10
● desitky = (cislo/10)%10
● desitky = cislo/10 | ● desitky = (cislo % 100)/10
● desitky = (cislo/10)%10 |
K čemu se v Javě používá identifikátor:
● Pro pojmenování metody
● Pro pojmenování klíčových slov
● Pro pojmenování proměnné
● Pro pojmenování balíčku | ● Pro pojmenování metody
● Pro pojmenování proměnné
● Pro pojmenování balíčku |
Kde se v javě používají složené závorky?
● pro ohraničení deklarace třídy nebo rozhraní
● jako operátor přetypování
● ve výrazech pro označení priority operací
● při volání metody při uvádění skutečných parametrů metody
● v deklaraci metody pro ohraničení seznamu formálních parametrů
● při přístupu k prvku vícerozměrného pole
● v příkazech selekce a iterace pro uvedení podmínek | ● pro ohraničení deklarace třídy nebo rozhraní |
Kde se v Javě používají kulaté závorky?
● v deklaraci metody pro ohraničení seznamu formálních parametrů
● při volání metody při uvádění skutečných parametrů metody
● pro ohraničení bloku příkazů
● při určení pořadí položky uvnitř pole | ● v deklaraci metody pro ohraničení seznamu formálních parametrů
● při volání metody při uvádění skutečných parametrů metody |
Která tvrzení o seznamech (třídách implementujících rozhraní List<E>) jsou pravdivá a která nepravdivá?
- Seznam může obsahovat prvky primitivních typů
- Seznamy udržují pořadí prvků a je možné používat indexy.
- Seznamy mohou obsahovat libovolný počet shodných prvků
- Seznamy není možné procházet pomocí klasického cyklu for.
- Všechny prvky v seznamu jsou stejného typu nebo jeho podtypů.
- Pomocí metody add s jedním parametrem vkládáme prvek na konec seznamu.
- Indexy v seznamu jsou číselné a začínají od 1.
- V seznamech jsou jako indexy používány řetězce. | Pravdivá:
- Seznamy udržují pořadí prvků a je možné používat indexy.
- Seznamy mohou obsahovat libovolný počet shodných prvků
- Všechny prvky v seznamu jsou stejného typu nebo jeho podtypů.
- Pomocí metody add s jedním parametrem vkládáme prvek na konec seznamu. |
Která z uvedených pravidel musí platit pro implementaci metody equals()?
- Musí být tranzitivní: pokud x.equals(y) vrátí true a y.equals(z) také true pak musí x.equals(z) vrátit true.
- Musí být symetrická: pokud x.equals(y) vrátí true, musí y.equals(x) vrátit true.
- Pro x, které není null, musí x.equals(null) vrátit false
- Pro x, které je rovné null, musí x.equals(null) vrátit true. | - Musí být tranzitivní: pokud x.equals(y) vrátí true a y.equals(z) také true pakmusí x.equals(z) vrátit true.
- Musí být symetrická: pokud x.equals(y) vrátí true, musí y.equals(x) vrátit true.
- Pro x, které není null, musí x.equals(null) vrátit false |
Která z následujících pravidel musí platit pro implementaci metody hashCode()?
- Pokud zavoláte metodu hashCode() několikrát za sebou pro tutéž instanci, musí se vždy vrátit stejný výsledek.
- Pokud jsou si dvě instance rovny (metoda equals() při jejich porovnání vrátí true), musí metoda hashCode pro obě instance vrátit stejné číslo.
- Pokud metoda hashCode() pro dvě instance vrátí stejné číslo, znamená to, že jsou tyto instance shodné (metoda equals() při jejich porovnání vrátí true).
- Pokud jsou dvě instance shodné (metoda equals() vrátí true), musí metoda hashCode() pro tyto instance vrátit hodnotu 0.
- Pro dvě rozdílné instance (metoda equals() při jejich porovnání vrátí false) nesmí metoda hashCode() vrátit stejnou hodnotu. | - Pokud zavoláte metodu hashCode() několikrát za sebou pro tutéž instanci, musí se vždy vrátit stejný výsledek.
- Pokud jsou si dvě instance rovny (metoda equals() při jejich porovnání vrátí true), musí metoda hashCode pro obě instance vrátit stejné číslo. |
Které modifikátory přístupu lze použít u datových atributů?
- Private
- protected
- public
- modifikátor přístupu neuveden | - Private
- protected
- public
- modifikátor přístupu neuveden |
Které modifikátory přístupu je možné použít u metod instancí?
- Private
- protected
- public
- modifikátor přístupu neuveden | - Private
- protected
- public
- modifikátor přístupu neuveden |
Které z následujících / uvedených metod jsou definované ve třídě Object?
- toString()
- clear()
- hashCode()
- getName()
- equals()
- size()
- get Class()
- finalize()
- clone() | - toString()
- hashCode()
- equals()
- get Class()
- finalize()
- clone() |
Které z následujících cyklů se provedou právě 6× (šestkrát)?
- for (int i=1; i<12; i=i+2)
- for (int i=-2; i<=10; i=i+2)
- for (int i=-5; i<=5; i=i+2)
- for (int i=6; i>=0; i--)
- for (int i=7; i>-11; i=i-3)
- for (int i=0; i<=6; i++)
- for (int i=1; i<=6; i++)
- for (int i=0; i<6; i++) | - for (int i=1; i<12; i=i+2)
- for (int i=-5; i<=5; i=i+2)
- for (int i=7; i>-11; i=i-3)
- for (int i=1; i<=6; i++)
- for (int i=0; i<6; i++) |
Který z následujících identifikátorů je platný v JAVĚ?
- MOJE_KONSTANTA
- 5prstu
- celeCislo
- this
- Něco
- MoješikovnáMetoda | - MOJE_KONSTANTA
- celeCislo
- Něco
- MoješikovnáMetoda |
Máme dva textové řetězce:String s1="Praha"; String s2="praha"; Které vrátí hodnotu True ?
- s1.length() == s2.length()
- s1.length() != s2.length()
- s1.toUpperCase().equals (s2.toUpperCase();
- s1.equals(s2) | - s1.length() == s2.length()
- s1.toUpperCase().equals (s2.toUpperCase(); |
Při kterých použití ve stejné třídě vznikne chyba (při překladu nebo za běhu programu):
//předpokládám, že metoda vrací float nebo double
● vratCislo();
● int cislo = vratCislo();
● String cislo = vratCislo();
● double cislo = vratCislo(); | ● int cislo = vratCislo(); //chyba za překladu, possible loss of precision
● String cislo = vratCislo(); //chyba za překladu, incompatible types |
Mezi základní objektové vlastnosti patří:
- dědičnost
- možnost definování tříd objektů
- komunikace objektů (posílání zpráv, volání metod)
- existence objektů (instancí)
- zapouzdření a ukrývání implementace | - dědičnost
- možnost definování tříd objektů
- komunikace objektů (posílání zpráv, volání metod)
- existence objektů (instancí)
- zapouzdření a ukrývání implementace |
Modifikátor final může být uveden:
- V záhlaví třídy
- v záhlaví konstruktoru
- v záhlaví metody
- U parametru metody
- u formálního parametru metody | - V záhlaví třídy
- v záhlaví metody
- u formálního parametru metody |
Nekonečný cyklus while (true) { ..... } lze uvnitř bloku (cyklu) ukončit:
- vyvoláním výjimky pomocí
- příkazem continue
- příkazem break
- pomocí příkazu goto
- příkazem return
- zavoláním metody System.exit(0) | - vyvoláním výjimky pomocí
- příkazem break
- pomocí příkazu goto
- příkazem return
- zavoláním metody System.exit(0) |
Označte dvojice hlaviček metod, ve kterých se jedná o přetížení metod v rámci jedné třídy:
- void metoda ( ) { ...
a void metoda ( int pocet) { ...
- void metoda (double stranaA) { ...
a void metoda (double stranaB) { ...
- void metodaA (double stranaA) { ...
a metodaA (double stranaB) { ...
- void metodaA ( ) { ...
a void metodaB ( ) { ... | - void metoda ( ) { ...
a void metoda ( int pocet) { ... |
Označte části počítače, které jsou součástí historického von Neumannova schématu počítače:
- Vstupně-výstupní zařízení
- Komunikační zařízení
- Řídící obvody (ŘADIČ)
- Monitor
- Paměť
- Pevné disky | - Vstupně-výstupní zařízení
- Řídící obvody (ŘADIČ)
- Paměť |
Označte pravdivá a nepravdivá tvrzení o konstruktorech:
- Při psaní konstruktoru potomka lze volat předka pomocí super(..)
- Při vytváření instance se provádí konstruktor, ostatní metody pouze pokud jsou volány z konstruktoru
- V hlavičce konstruktoru musí být uvedeno jméno třídy
- Konstruktory nelze přetěžovat
- Konstruktor nelze volat ze statických metod
- Provádění konstruktoru nelze ukončit pomocí příkazu return | Pravdivá:
- Při psaní konstruktoru potomka lze volat předka pomocí super(..)
- Při vytváření instance se provádí konstruktor,ostatní metody pouze pokud jsou volány z konstruktoru
- V hlavičce konstruktoru musí být uvedeno jméno třídy |
Označte pravdivá tvrzení o debugeru v Javě:
- Zarážky se používají pro vyznačení místa, kde se provádění kódu má přerušit.
- Krokování kódu označuje činnost, kdy programátor v debugeru sledujeprovádění kódu po jednotlivých řádcích - stisknutím tlačítka volí okamžik,kdy se má provést další řádek.
- Při zastavení provádění kódu lze vidět v debugeru hierarchie volání metod.
- Pokud se zastaví provádění kódu, lze v debugeru zobrazit obsah datových atributů a lokálních proměnných.
- Pomocí krokování kódu v debugeru se nejčastěji testuje veřejné rozhraní (API) třídy.
- Při krokování kódu lze v debugeru změnit průběh provádění kódu (např. přeskočit některé příkazy). | - Zarážky se používají pro vyznačení místa, kde se provádění kódu má přerušit.
- Krokování kódu označuje činnost, kdy programátor v debugeru sledujeprovádění kódu po jednotlivých řádcích - stisknutím tlačítka volí okamžik,kdy se má provést další řádek.
- Při zastavení provádění kódu lze vidět v debugeru hierarchie volání metod.
- Pokud se zastaví provádění kódu, lze v debugeru zobrazit obsah datových atributů a lokálních proměnných. |
Označte ty hodnoty proměnné x, pro které je splněna následující podmínka:
(x>2 && x<10) || ( x>5 && x <15)
● 6
● 15
● 5
● 3
● 9
● 11 | x= 6; 5; 3; 9; 11 |
Označte ty hodnoty proměnné x, pro které je splněna následující podmínka:
( x>0 && x<6 ) || ( x>6 && x<10 )
● 0
● 1
● 6
● 5
● 10
● 7 | x= 1; 5; 7 |
Označte ty hodnoty proměnné x, pro které je splněna následující podmínka:
(X<5 || x>15) && (x>10 || x<6)
● -5
● 15
● 0
● 16
● 6 | x= -5; 0; 16 |
Označte ty hodnoty proměnné x, pro které je splněna následující podmínka:
(x>5 || x<0 ) && (x<10 && x>-5)
● 9
● 6
● 0
● 5 | x= 9; 6 |
Označte případy, kdy vznikne výjimka:
● int cislo=5 int vysledek = cislo / 0
● int cislo=5 double vysledek = cislo / 0
● double cislo = 5 double vysledek = cislo / 0
● double cislo = 5.0 double vysledek = cislo / 0.0 | ● int cislo=5 int vysledek = cislo / 0
------------------------------------
● int cislo=5 double vysledek = cislo / 0 (nejspíš) |
Označte případy, které pro deklaraci String ss = " PŘÍKLAD "; překladač přeloží:
- String tt = ss.trim();
- ss>>>=3
- String tt = "NA"+ss
-ss[3] = "x" | - String tt = ss.trim()
- String tt = "NA"+ss |
Přetížené metody se od sebe mohou lišit:
- Počtem parametrů
- jménem metody
- typem a pořadím parametrů
- návratovou hodnotou | - Počtem parametrů
- typem a pořadím parametrů |
Při deklaraci formálních parametrů metody lze uvést:
- modifikátor final
- přiřadit defaultní (implicitní) hodnotu
- určit typ parametru
- modifikátor public | - modifikátor final
- určit typ parametru |
Při zpracování cyklu (kde z je proměnná typu int):
while(z>=0){
suma+=z;}
mohou nastat tyto případy:
- cyklus neproběhne ani jednou
- Cyklus proběhne právě jednou
- program se zacyklí
- Skončí až bude proměnná z rovna 0 | - cyklus neproběhne ani jednou
- program se zacyklí |
Při zpracování vstupně-výstupních operací mohou být vyhozeny výjimky, jejichž typy mají následující hierarchii: Exception - IOException - FileNotFoundException ... záleží na formulaci otázky ... pozor ...
- Každá metoda, která volá metodu mmm musí použít konstrukci try-catchzachytávající a ošetřující výjimku FileNotFoundException.
- Metoda mmm musí deklarovat, že vyhazuje výjimku IOException neboException.
- Metoda mmm musí deklarovat, že vyhazuje výjimku FileNotFoundException.
- Na uvedené metody nejsou kladeny žádné speciální požadavky. | ● Na uvedené metody nejsou kladeny žádné speciální požadavky. ...nejlépe neodpovídat
--------------------------
Jinde se tvrdí, že:
● Každá metoda, která volá metodu mmm musí použít konstrukci try-catch zachytávající a ošetřující výjimku FileNotFoundException.
● Metoda mmm musí deklarovat, že vyhazuje výjimku IOException nebo Exception |
Shodně se mohou jmenovat:
- dvě metody se stejnou návratovou hodnotou a různými parametry
- dvě metody se stejnou návratovou hodnotou a stejnými parametry
- dvě metody s různými návratovými hodnotami a různými parametry
- dvě metody s různými návratovými hodnotami a stejnými parametry | - dvě metody se stejnou návratovou hodnotou a různými parametry
- dvě metody s různými návratovými hodnotami a různými parametry |
Shodně se mohou jmenovat:
- lokální proměnná a datový atribut instance
- formální parametr metody a datový atribut instance
- formální parametr metody a lokální proměnná
- datový atribut instance a metoda instance | - lokální proměnná a datový atribut instance
- formální parametr metody a datový atribut instance
- datový atribut instance a metoda instance |
Slovo super se používá při:
- volání metody předka
- použití datového atributu předka (pokud k němu má potomek přístup)
- volání konstruktoru předka
- jako odkaz na jinou třídu z téhož balíčku | - volání metody předka
- použití datového atributu předka (pokud k němu má potomek přístup)
- volání konstruktoru předka |
Uvnitř metody může být deklarace:
- lokální proměnné
- datového atributu instance
- jiné metody
- statické proměnné třídy | - lokální proměnné |
Uvnitř těla metody může být:
- příkaz return
- prázdný odkaz
- prázdný příkaz
- příkazy skoků a cyklu
- deklarace atributu instance | - příkaz return
- prázdný příkaz
- příkazy skoků a cyklu
- prázdný odkaz ...spíše ne - raději neodpovídat-to je sporné |
U kterých z následujících zápisů ohlásí překladač chybu?
Předchází deklarace float abc = 5
(Tahle "otázka" je nějaká divná)
● if (abc=5.37)
● if(abc !<=4L)
● if (abc<4.3)
● (int) 4 | (Tahle "otázka" je nějaká divná)
● if (abc=5.37)
● if (abc<4.3)
● (int) 4
---------------------
jinde tvrdí jenom:
● if (abc=5.37) |
U kterého z následujících zápisů podmínky příkazu if překladač ohlásí chybu?
Kódu předchází deklarace double abc = 5.3;
● if (abc < (int)4)
● if (abc < 4)
● if (abc = 5.37)
● if (abc >= 5.3) | ?
● u žádné z možností
?
--------------------------
Jinde tvrdí:
● if (abc < (int)4)
● if (abc = 5.37) |
Uvnitř jedné třídy se mohou shodně jmenovat:
- lokální proměnná a datový atribut instance
- formální parametr metody a datový atribut instance
- datový atribut instance a metoda instance
- formální parametr metody a lokální proměnná metody | - lokální proměnná a datový atribut instance
- formální parametr metody a datový atribut instance
- datový atribut instance a metoda instance |
V Javě může identifikátor začínat:
- Podtržítkem
- Mezerou
- Písmenem
- Zavináčem@
- Ampersandem &
- Číslicí | - Podtržítkem
- Písmenem |
Vyberte pravdivá tvrzení o datovém typu pointer:
- Proměnná typu pointer může odkazovat na hodnotu, které již byla zrušena.
- Po nevhodné aritmetice s proměnnou typu pointer může proměnná ukazovat jinam, než kam bylo zamýšleno.
- Typ pointer podporuje operace přiřazení adresy, přičítání celého čísla k adrese a odečítání celého čísla od adresy.
- Java podporuje datový typ pointer. | - žádná z možností //podle mě není nic správně, TYP pointer v jave podle mě není, ale pointery ano, zvláštní co
--------------------------------
Jinde tvrdí že je správně:
● Proměnná typu pointer může odkazovat na hodnotu, které již byla zrušena.
● Po nevhodné aritmetice s proměnnou typu pointer může proměnná ukazovat jinam, než kam bylo zamýšleno.
● Typ pointer podporuje operace přiřazení adresy, přičítání celého čísla k adrese a odečítání celého čísla od adresy. |
Vyberte pravdivá tvrzení o objektech a abstraktních datových typech
- Třídy v objektových programovacích jazycích jsou příklady abstraktního datového typu.
- Abstraktní datový typ (ADT) umožňuje ukrývat implementaci.
- V programu lze deklarovat a inicializovat proměnné abstraktního datového typu.
- Při deklaraci abstraktního datového typu (ADT) může programátor definovat operace(metody, funkce) pro tento typ.
- Při deklaraci abstraktního datového typu lze použít dědičnost a to i v případě, že se nejedná o třídu v OOP jazycích. | - Abstraktní datový typ (ADT) umožňuje ukrývat implementaci.
- V programu lze deklarovat a inicializovat proměnné abstraktního datového typu.
- Při deklaraci abstraktního datového typu (ADT) může programátor definovat operace(metody, funkce) pro tento typ.
- Při deklaraci abstraktního datového typu lze použít dědičnost a to i v případě, že se nejedná o třídu v OOP jazycích. |
Vyberte pravdivá tvrzení o jednotkovém testování pomocí Junit
- Dle konvencí by jméno testovací třídy mělo tvořit jméno testové třídy a slovo Test
- Pro porovnání očekávané hodnoty se skutečnou návratovou hodnotou se v testech nejčastěji používá metoda assertEquals.
- S pomocí Junit se většinou testuje veřejné rozhraní (API) třídy
- Dle konvencí by jméno testovací metody mělo začínat slovem test
- Pomocí Junit testů lze přímo otestovat privátní metody testované třídy
- Pomocí JUnit testů nelze testovat vznik výjimek v testované metodě. | ● Dle konvencí by jméno testovací třídy mělo tvořit jméno testové třídy a slovo Test
● Pro porovnání očekávané hodnoty se skutečnou návratovou hodnotou se v testech nejčastěji používá metoda assertEquals.
● Dle konvencí by jméno testovací metody mělo začínat slovem test
// někde je uvedeno i:
● S pomocí Junit se většinou testuje veřejné rozhraní (API) třídy |
Vyberte pravdivá tvrzení o vedlejších efektech metody (výrazu):
- Vedlejší efekt metody (výrazu) označuje situaci, kdy metoda (či výraz) mění i jinýstav (proměnnou) procesu, než je návratová hodnota.
- Metody bez vedlejších efektů jsou čitelnější, neboť při pochopení významu senemusí brát v úvahu další proměnné mimo metodu.
- Operátor ++ v Javě je příkladem operátoru s vedlejším efektem - vrací návratovou hodnotu a současně zvyšuje hodnotu příslušné proměnné.
- Metody bez vedlejších efektů deklarované uvnitř třídy nemění hodnotu datovýchatributů instance této třídy.
- Pokud by metody met1 a met2 v následující ukázce byly bez vedlejších efektů,tak nezávisí na pořadí volání následujících dvou příkazů: int a = met1(prom1);int b =met2(prom2); | - Vedlejší efekt metody (výrazu) označuje situaci, kdy metoda (či výraz) mění i jinýstav (proměnnou) procesu, než je návratová hodnota.
- Metody bez vedlejších efektů jsou čitelnější, neboť při pochopení významu senemusí brát v úvahu další proměnné mimo metodu.
- Operátor ++ v Javě je příkladem operátoru s vedlejším efektem - vrací návratovou hodnotu a současně zvyšuje hodnotu příslušné proměnné.
- Metody bez vedlejších efektů deklarované uvnitř třídy nemění hodnotu datovýchatributů instance této třídy.
- Pokud by metody met1 a met2 v následující ukázce byly bez vedlejších efektů,tak nezávisí na pořadí volání následujících dvou příkazů: int a = met1(prom1);int b =met2(prom2); |
Vyberte pravdivé výroky o jazyce Prolog:
- Databáze v pojetí Prologu je seznam fakt a pravidel
- Fakta v Prologu popisují vlastnosti objektů a vztahy mezi objekty
- Pravidla umožňují ze stávajících fakt odvozovat další fakta
- Prolog podporuje cykly i v rekurzi
- V Prologu jsou všechny proměnné stejného typu | - Databáze v pojetí Prologu je seznam fakt a pravidel
- Fakta v Prologu popisují vlastnosti objektů a vztahy mezi objekty
- Pravidla umožňují ze stávajících fakt odvozovat další fakta
- V Prologu jsou všechny proměnné stejného typu // Jak se to vezme, spíš ne |
Vyberte správnou verzi hlavičky metody, která se musí ve třídě nadeklarovat pro spuštění
- Public static void main (String [ ] cokoliv)
- Java aplikace z příkazové řádky:
- Static void main (String [ ] ars)
- Public static void start (String [ ] parametry)
- Public static void main (String args) | - Public static void main (String [ ] cokoliv) |
Výjimky dělíme na:
- Kontrolované x nekontrolované
- nepoužíváme žádné z uvedených dělení
- aplikační x programové x systémové
- ošetřené x neošetřené | - Kontrolované x nekontrolované |