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
jediné co mi připadlo nové byly 2 následující otázky (snad sem si to zapamatoval dobře)
[b]1.[/b]
[code]
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();
}
}
[/code]
Co se vypíše? (pokud něco)
[b]A.[/b] nepůjde přeložit, konstruktor třídy A volá super() ale přitom nemá explicitně definovaného předka
[b]B.[/b] C
[b]C.[/b] 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ě
[b]2.[/b]
[code]
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();
}
}
[/code]
Co se vypíše? (pokud něco)
[b]A.[/b] nepůjde přeložit, synchronized nelze napsat uvnitř metody
[b]B.[/b] nic, vlákno se zablokuje
[b]C.[/b] 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...
[b]3.[/b] něco na keywords... (bacha, [i]true[/i], [i]false[/i], [i]null [/i]nejsou keywords, ale literály) (bacha není ani jedno:P)
[b]4.[/b] co jde přiřadit do proměnné typu boolean... pouze [i]true[/i] a [i]false[/i], tj. žádný 0, 1, "", [i]null[/i] a podobně
[b]5.[/b] o jakékoliv třídě Enum platí:
A. nemůže mít konstruktor
B. není potomkem žádné třídy
C. dědí od [i]java.lang.Enum[/i]
D. nemůže obsahovat žádné metody
E. může obsahovat [i]public static void main(String[] args)[/i]
... platí C, E
[b]6.[/b] kam lze napsat [i]abstract[/i]? ... jen před třídu a metodu... (a do řetězce nebo komentáře:P)
[b]7.[/b] něco ohledně kódu:
[code]
interface YourFace {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
[/code]
metody v interface nemohou mít tělo, a nemohou být static ... (static třídy v interfejsu být mohou)
[b]8.[/b] už nevim
[b]9.[/b] napsat kód: převedení [i]float x[/i] na [i]String[/i] bez explicitního použití [i]toString()[/i] ... [b]x + ""[/b]
[b]10.[/b] klasika, napsat nějakou operaci nad polem [i]Pair[][/i] ... 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: