Zkouška 2.6.2011

Předmět zaměřený na praktické programování v jazyku a prostředí Java
6finger
Matfyz(ák|ačka) level I
Příspěvky: 1
Registrován: 2. 6. 2011 09:38
Typ studia: Informatika Bc.

Zkouška 2.6.2011

Příspěvek od 6finger »

jediné co mi připadlo nové byly 2 následující otázky (snad sem si to zapamatoval dobře)

1.

Kód: Vybrat vše

class A {
    public A() {
        super();
        System.out.print("A");
    }
}
class B extends A {
    public B() {
        super();
        System.out.print("B");
    }
}
class C extends B {
    public C() {
        System.out.print("C");
    }
}
public class Main {
    public static void main(String[] args) {
        C c = new C();
    }
}
Co se vypíše? (pokud něco)
A. nepůjde přeložit, konstruktor třídy A volá super() ale přitom nemá explicitně definovaného předka
B. C
C. ABC

správně je C
i když v konstruktoru třídy C není explicitně napsáno super(), tak se stejně zavolá konstruktor předka, protože super() se volá implicitně

2.

Kód: Vybrat vše

public class Main {
    synchronized public void foo() {
        synchronized (this) {
            System.out.print("A");
            synchronized (this) {
                System.out.print("B");
            }
        }
    }
    public static void main(String[] args) {
        new Main().foo();
    }
}
Co se vypíše? (pokud něco)
A. nepůjde přeložit, synchronized nelze napsat uvnitř metody
B. nic, vlákno se zablokuje
C. AB

správně je C
vysvětlení sem si ale přesně nezapamatoval, kdyžtak mě někdo doplňte... ale mělo by to být něco jako že když metoda jednou získá zámek na objektu, tak už ho další bloky kódu v té metodě taky dostanou...

a pak tam byly víceméně standartní otázky...
3. něco na keywords... (bacha, true, false, null nejsou keywords, ale literály) (bacha není ani jedno:P)
4. co jde přiřadit do proměnné typu boolean... pouze true a false, tj. žádný 0, 1, "", null a podobně
5. o jakékoliv třídě Enum platí:
A. nemůže mít konstruktor
B. není potomkem žádné třídy
C. dědí od java.lang.Enum
D. nemůže obsahovat žádné metody
E. může obsahovat public static void main(String[] args)
... platí C, E
6. kam lze napsat abstract? ... jen před třídu a metodu... (a do řetězce nebo komentáře:P)
7. něco ohledně kódu:

Kód: Vybrat vše

interface YourFace {
    public static void main(String[] args) {
        System.out.println("Hello World");
    }
}
metody v interface nemohou mít tělo, a nemohou být static ... (static třídy v interfejsu být mohou)
8. už nevim
9. napsat kód: převedení float x na String bez explicitního použití toString() ... x + ""
10. klasika, napsat nějakou operaci nad polem Pair[] ... viz starší příklady
bacha na porovnávání řetězců... jak v Javě moc neprogramuju a nemám to zažitý tak sem použil a == b místo a.equals(b) i když to je jasný jak facka... (String je objekt a == na objektech porovnává reference)
a nebyl sem sám :twisted:
Odpovědět

Zpět na „PGR013 Java“