Zkouška 28.1.2019

Předmět zaměřený na praktické programování v jazyku a prostředí Java
Uživatelský avatar
LadyMalande
Matfyz(ák|ačka) level I
Příspěvky: 5
Registrován: 27. 1. 2019 21:14
Typ studia: Informatika Bc.

Zkouška 28.1.2019

Příspěvek od LadyMalande »

Tak se znovu objevily nějaké nové příklady. Tentokrát znovu bylo 5 otázek na zaškrtnutá odpovědi a 5 otázek na doplnění kódu.

1) Co program vypíše? (Odpovědi píšu na řádek, ale hodnoty mají být odřádkovány)
int i1 = 5;
int i2 = i1;
i1 += 1;
System.out.println(i1);
System.out.println(i2);

A) 5 5
B) 5 6
C) 6 5
D) 6 6
E) Nevypíše nic

2) Co vypíše kód: (nejsem si úplně jistá přesností zadání)
class MyClass{
public static int i = 0;
public MyClass() {
i++;
}
public static void main(String[] args){
MyClass[] my = new MyClass[5];
for(int i = 0; i < 5; i++){
my = new MyClass();
}
System.out.println(i);
}}

A) 0
B) 1
C) 4
D) 5
E) Nelze určit

3) Co vypíše následující program
Interface Iface {
default void foo(){ System.out.println("Interface");}
}
class A{
public void foo(){ System.out.println("Class");}
}
......class B extends A implements Iface{
public static void main(String[] args){
B b = new B();
b.foo();
}

A) Interface
B) Class
C) Nevypíše nic
D) nepůjde přeložit

4) Callable, Suplies a Predicate jsou standardní interfacy z JDK a jsou definovány takto:
interface Callable<T> {
T call();
}
interface Supplier<T> {
T get();
}
interface Predicate<T>{
boolean test(T t);
}
Která z následujících přiřazení lamda výrazu jsou správná (kompilátor je přeloží):
A) Supplier<Boolean> su = () -> {return true;};
B) Callable<Boolean> sa = () -> {return true;};
C) Predicate<Boolean> pr = () -> {return true;};

5) Co vypíše následující kód:
public class A{ public static void foo(){ System.our.println("A");}}
public class B extends A{ public static void foo() {System.out.println("B");}}
public class Main{
public static void main(String[] args){
A a = new B();
a.foo();
}}

A) A
B) B
C) nelze určit

6) Do následujícího kódu doplňte do parametru metody map lambda výraz tak, aby výstupní stream obsahoval délky řetězců ve vstupním streamu.
List<String> list = ...;
Stream<Integer> st = list.stream().map(.........................

7) doplňte dekladaci hashTable tak, aby obsahovala základní sémantiku hash tabulky. (tedy objekt má alespoň metody V get (K key) a void put(K key, V value) pro vytvoření asociace hodnoty na klíč. Navíc k objektu musí bezpečně přistupovat více vláken najednou (tedy volání metod musí být vyloučeno pro více vláken zároveň). Můžete si definovat libovolné další třídy nebo použít cokoliv ze standardní knihovny.
......hashTable = ............
- prázdná A5 -

8 ) Napište metodu, která vytiskne obsah jakékoliv kolekce (jako parametr bere instance typu Collection a jakéhokoliv podtypu a jsou definovány jakýmkoliv typem mezi špičatými závorkami)
Tedy vytiskne všechny prvky z například těchto kolekcí: Collection<String>, Set<Object>, List<Thread>... (Set i List jsou potomci Collection)
public void printAllItemsInCollection(...............................
}

9) Doplňte metodu tak, aby vracela počet osob s daným křestním jménem narozených v daném roce. Nezapomeňte otestovat, zda předané parametry nejsou null atd.
class Person { String firstname; String surname; int yearOfBirth;}
public class Test{
public static int metoda(Person [] array, int year, String firstname){
...........
}

10) Napište metodu, která vrátí řetězec obsahující n-krát řetězec str, který bere v parametru. Např. pro 3 a Hello vypíše HelloHelloHello:
public static String metoda(String str, int n){
........
}
We now have a dog and Alistair is still the dumbest one in the party. - Morrigan
Odpovědět

Zpět na „PGR013 Java“