Jinak já si dovolím tedy doplnit otázky, tak jak si je pamatuji:
1) StringBuilder sb1 = new StringBuilder("Hello");
StringBuilder sb2 = sb1;
sb1.append(" world");
System.out.println(sb1);
System.out.println(sb2);
Co se vypíše? 2x Hello world
2) definované dvě přetížené funkce
void foo(String s){
System.out.println("string");
}
void foo(int i){
System.out.println("int");
}
Co se vypíše po zavolání foo("Hello" + 1)?
- zde se sice převede celý parametr na string, ale pozor na deifnici metod - člověk se nesmí unáhlit a vypsat parametr, ale skutečně řetězec "string" (to ale lidé občas u zkoušky přehlédli)
3)
class A {
public A(){super(); System.out.println("A");}
}
class B {
public B(){super(); System.out.println("B");}
}
class C {
public C(){super(); System.out.println("C");}
}
Co se vypíše při vytvoření instance C? (někoho může zmást volání super v A, to je ale v pořádku) Vypíše se ABC
4) synchornized blok ve statické funkci - rozhodnout co se stane - synchronized ve statických funkcích nefunguje
5) Naimplementujte MyException, kterou není odchytávat.
- MyException dědí Error nebo RuntimeException, ideálně popsat i konstruktory, ale bral to i bez nich
6) Otázka zmíně výše
class Student {
private int studentID;
private String fullName;
// naimplementovat equals, důležité aby bylo metoda přepsána, nikoli přetížena
}
7) vtvořte fukcionální interface pro (x, y) -> x.equals(y)
interface Foo {
@Funcional
boolean foo(Object o1, Object o2);
}
Nebo ještě lépe
interface Foo<T> {
@Funcional
boolean foo(T t1, T t2);
}
ukázka jak vypadá funkiconální interface používající se ve filtru pro streamy, bylo za úkol napsat použití tak, aby vypsal pouze řetezce delší než 5
tj. něco jako
stream.filter((param) -> { return s.length > 5; }
9) Napsat metodu, která má parametr pole Stringů a string a má ověřit zda je string v poli
- řešení spousta, asi není nutné ho explicitně psát
10) jedna otázka se bohužel vytratila a nevím jaká
(jo, a pořadí asi taky nebude úplně stejné)