Výsledky: pár jedniček a dvojek, hromada trojek a čtyřek
Formát: klasický - 8 testových otázek s 1+ správnou odpovědí, 2 otevřené na doplnění kódu. Za špatně (ne)zvolené odpovědi se akumulují trestné body. 0..2 jednička, 3..5 dvojka, 6..9 trojka, jinak čtyřka.
1. Co se nepřeloží?
a) byte x = 1024;
b) int x = 08;
c) long x = null;
d) char x = "a";
e) int x = 0x1234;
2. Co se stane při překladu programu?
Kód: Vybrat vše
class MyClass {
public static void main(String[] args) {
amethod(args);
}
public void amethod(String arguments[]) {
System.out.println(arguments[1]);
System.out.println(arguments);
}
}
b) nelze přeložit - statická metoda main volá instanční metodu amethod
c) nelze přeložit - špatná deklarace pole v main
d) nelze přeložit - println nepřijímá jako parametr pole
3. Co se přeloží?
a)
Kód: Vybrat vše
if (3 == 2) System.out.println("Hi!");
Kód: Vybrat vše
if (3 = 2) System.out.println("Hi!");
Kód: Vybrat vše
if (true) System.out.println("Hi!");
Kód: Vybrat vše
if (3 != 2) System.out.println("Hi!");
a) element je přístupný pouze ze třídy
b) element je přístupný pouze ze třídy a jejích potomků, pokud jsou ve stejném balíčku
c) element je přístupný pouze ze třídy a jejích potomků, pokud jsou kdekoliv
d) element je přístupný pouze ze třídy, jejích potomků (pokud jsou kdekoliv) a z balíčku, do kterého třída patří
5. Vyberte klíčová slova
a) throws
b) object
c) override
d) do
6. Co je pravda?
a) vnitřní třídy musí implementovat alespoň jeden interface
b) vnitřní třídy mají přístup ke všem (i private) elementům třídy, která je obsahuje
c) vnitřní třídy nedědí od třídy Object
d) (už si nepamatuju, co tu bylo, ale bylo to správně)
7. Co se přeloží?
a)
Kód: Vybrat vše
import java.util.*;
package MyPackage;
class MyClass {}
Kód: Vybrat vše
package MyPackage;
import java.util.*;
class MyClass {}
Kód: Vybrat vše
/* komentar */
package MyPackage;
import java.util.*;
class MyClass {}
8. Co je pravda?
a) notify(), notifyAll() a wait() je definováno na třídě Object
b) notify(), notifyAll() a wait() je definováno na třídě Thread
c) notify(), notifyAll() a wait() lze volat jen ze synchronized sekcí a bloků
d) třída Thread je abstraktní
9. Funkce forEach má hlavičku:
Kód: Vybrat vše
void forEach(Consumer<? super T> action)
Kód: Vybrat vše
interface Consumer<T> {
void accept(T t);
}
Kód: Vybrat vše
List<String> list = ...;
list.stream.forEach(
// zde byly asi 3 volne radky
)
Kód: Vybrat vše
class Complex {
int re; int im;
// zde bylo asi 5 volnych radku
}
Řešení:
1. a (přetečení int literálu v byte proměnné), b (neplatný osmičkový literál), c (nelze narvat null do primitivního typu), d (nelze narvat String literál do charu)
2. b
3. a, c, d
4. d
5. a, d
6. b, d
7. b, c
8. a, c
9. například
Kód: Vybrat vše
s -> { System.out.println(s); }
Kód: Vybrat vše
System.out::println
Kód: Vybrat vše
@override
public boolean equals(Object other) {
if (other instanceof Complex) {
Complex that = (Complex) other;
return this.re == that.re && this.im == that.im;
}
return false;
}