Příklad testu PR2

název testu PJV zkouškový test
čas na vypracování 00:55:00

[5 | 0]

1. Otázka

Vyberte správně vytvořené identifikátory (z hlediska kompilátoru, nikoli doporučení pro pojmenovávání) proměnné.
pepa
volatile
dědeček
[5 | 0]

2. Otázka

Označte správně zapsané logické výrazy, jejíž hodnotou je hodnota true.
32<64?true:false
(2+15)=!22
false | true
[5 | 0]

3. Otázka

Z následujících výrazů a příkazů vyberte ty, které jsou správně zapsané (z hlediska překladače Javy) a zároveň je po jejich vyhodnocení v proměnné a hodnota 16. Předpokládejte, že proměnná a je deklarována a definována takto: int a = 4; Každý výraz či příkaz posuzujte odděleně.
a = a + 3 * 4;
a = a << 2;
a+=12L;
[5 | 0]

4. Otázka

Mějme definici třídy:
  1. public class MojeTrida{
  2. public static int a = 23;
  3. protected double d = 3.0;
  4. final String name = "Ludva";
  5. private String name2 = "Ludva";
  6. static char c = '\ubaba';
  7. ....
  8. }
Označte pravdivé výroky.
Vypsat jméno (= atribut name) třídy MojeTrida můžeme z jiné třídy ve stejném balíčku příkazem System.out.println(MojeTrida.name);
Třída nepůjde přeložit, protože atribut name nemůže být final aniž by byl zároveň static.
Atribut a nelze v instancích třídy MojeTrida měnit.
[5 | 0]

5. Otázka

Předpokládejme, že máme definovány tyto dvě třídy. Třídu GrO
  1. public abstract class GrO {
  2. public Point pozice = new Point(0,0);
  3. public abstract void kresliSe();
  4. public void setPozice(Point p){pozice = p;}
  5. public Point getPozice(){return pozice;}
  6. }
a dále druhou třídu
  1. public class Obd extends GrO{
  2. int sirka, vyska;
  3. public final int iD;
  4. private static int total;
  5. public Obd(int sirka, int v){
  6. sirka = sirka;
  7. vyska = v;
  8. iD=++total;
  9. }
  10. @Override
  11. public void kresliSe() {
  12. for (int i = 0; i < vyska; i++) {
  13. for (int j = 0; j < sirka; j++) {
  14. System.out.print("*");
  15. }
  16. }
  17. }
  18. }
Označte pravdivé výroky.
Závorka na řádku 24 je přebytečná.
Díky polymorfismu můžeme novou lokální proměnnou deklarovat a definovat tímto způsobem: GrO gr = new Obd();.
Příkaz Obd o = new Obd(3,2); vytvoří objekt Obd s atributem sirka rovným nule a atributem vyska rovnou 2.
[3 | 0]

6. Otázka

Proměnnou typu int deklarujeme zápisem:
Integer a;
int a;
a = int[0];
[5 | 0]

7. Otázka

Označte pravdivé výroky.
Pro vkládání komponent do kontejneru lze využít metodu add(Component c). Tato metoda přidá komponentu na konec seznamu.
BorderLayout nám umožňuje rozmístit komponenty do kontejneru podle světových stran. Poslední bude umístěna komponenta na střed = BorderLayout.CENTER.
Metoda drawRect( 2, 2, 10, 10 ) třídy Graphics vykreslí vyplněný obdélník o rozměrech 8 x 8.
[5 | 0]

8. Otázka

Označte pravdivé výroky.
Text na komponentu JButton nastavíme voláním instanční metody setLabel(String s).
Pro vstup dat do formuláře lze použít třídu JTextField. Vyplněná data od uživatele získáme metodou getData vracející napsaný řetězec.
Třída JDialog vytváří modální okno. Toto okno musíme zavřít pokud se chceme vrátit zpět do jiného okna aplikace.
[3 | 0]

9. Otázka

Označte pravdivé výroky.
Pokud chci ukončit aplikaci, mohu použít příkaz System.exit(11);
Handler je objekt (vytvořený programátorem), který událost přijme a zpracuje. Aby dokázal událost přijmout, musí implementovat jeden či více tzv. listenerů (tj. posluchačů) specifických typů. Listener je specifický interfejs pro každý typ události.
Zdroj události (např. komponenta) je objekt, generující události (i více typů) - např. JButton po kliknutí myši.
Událost v GUI je objekt popisující jev a poskytující metody k obsluze.
Jeden handler musí implementovat právě jedno rozhaní Listener dané typem události, kterou bude zpracovávat, např. MouseMotionListener.
[3 | 0]

10. Otázka

Označte pravdivé výroky.
Při implementaci třídy implementující rozhraní Serializable musíme přepsat metody writeObject a readObject.
Třída implementující rozhraní DataInput umí načítat primitivní datové typy z proudu.
Metody třídy OutputStream mohou vyvolat výjimky typu IOException, které musíme v místě použití metody ošetřit (=zavřít do chráněného bloku či propagovat výše).
Pokud chceme serializovat kolekci nějakých objektů, pak tyto objekty musí implementovat rozhraní Serializable.
Klíčové slovo transient u atributu objektu specifikuje, že se tento atribut nemá serializovat.
[5 | 0]

11. Otázka

Vyberte klíčová a reservovaná slova jazyka Java.
final
for
Double
throws
package
[5 | 0]

12. Otázka

Označte pravdivé výroky.
Pole ps: String [] ps = {"pepa", "lojza","alena"};
setřídíme příkazem java.util.Arrays.sort(ps);.
Metoda hashCode využívaná v kolekci HashSet je definována již ve třídě Object.
Po úspěšném provedení dvou metod add aplikovaných na TreeSet vzroste jeho velikost (size) právě o dva prvky nezávisle na přidávaných hodnotách.
[5 | 0]

13. Otázka

Označte pravdivé výroky.
Třída Object definuje metody toString, hashCode a equals.
Jestliže je jedno rozhraní potomkem jiného rozhraní, pak tuto skutečnost značíme klíčovým slovem extends.
V Javě se třída označuje klíčovým slovem class.
[5 | 0]

14. Otázka

Vyberte správně vytvořené logické výrazy, jejichž hodnotou je true .
false & true | true
Předpokládejte boolean b1, b2;
b1 = b2 = true
true | false && true
[2 | 0]

15. Otázka

Označte správná doporučení pro pojmenovávání prvků Javy.
Rozhraní pojmenováváme přídavnými jmény, např. Serializable.
Třídy pojmenováváme podstatnými jmény oddělenými podtržítkem.
[5 | 0]

16. Otázka

Předpokládejme deklaraci a definici proměnných:
int[] i = new int[3];
int[][]p1 = new int[4][2]
int[][]p2 = {{2,6},{1,5,9},{4}}
int[][][]p3 = new int[10][2][0];
int[][]p4 = new int[12][];
byte[][] b2 = new byte[12][1];
Vyberte správně zapsaná přiřazení(tedy přiřazení, která jsou správně zapsaná z hlediska překladače a nezpůsobí za běhu žádnou výjimku):
p3[2][2] = 18;
i = b2[1];
p3[3]=p1;
i[3] = -7;
i[0]=2;
[5 | 0]

17. Otázka

Předpokládejme deklarace a definice proměnných:
  1. char c = 'M';
  2. String s = "irek";
  3. double d = 5.2E100;
  4. float fl = 3.1F;
  5. int i = 255;
  6. short sh = 15;
  7. byte b = -1;
  8. long l = 100000000000L;
Označte správně vytvořené příkazy.
sh = b + b;
d = (double)l;
s = c + s;
[5 | 0]

18. Otázka

Označte pravdivé výroky.
Aby se ustavilo spojení mezi klientem a serverem, musí znát klient URL a číslo portu serveru.
Aby se ustavilo spojení mezi klientem a serverem, musí znát server URL a číslo portu klienta.
Třída ServerSocket nepředstavuje Socket, ale umožňuje Sockety vytvářet. Pro vytvoření instance třídy ServerSocket potřebujeme znát číslo portu, na kterém bude server poslouchat.
[5 | 0]

19. Otázka

Označte pravdivé výroky.
Jestliže je v objektu jedna metoda označena klíčovým slovem synchronized, pak musí být celá třída označena klíčovým slovem synchronized.
Synchronizace brání vstupu více vláken do tzv. kritických sekcí, aby jejich nekoordinovaná činnost nezpůsobila chaos v hodnotách atributů. Taková sekce je označena klíčovým slovem synchronized.
Metoda sleep třídy Thread vyvolává výjimku InterruptedException. Tato výjimka je potomkem třídy RuntimeException.
[5 | 0]

20. Otázka

Označte pravdivé výroky.
Třídy IllegalArgumentException, NumberFormatException a ArrayIndexOutOfBoundsException reprezentují výjimky, jež jsou potomky třídy java.lang.RuntimeException.
Kontrolované výjimky musíme ošetřit klauzulí try – catch anebo metodu, kde může taková výjimka vzniknout musí být deklarována s klíčovým slovem throws.
Přiřazení
int e = Integer.parseInt("0x25");
vyvolá výjimku java.lang.NumberFormatException: For input string: "0x25".