Java test 1 Java test 1 1. Jaki będzie wynik kompilacji i wykonania programu zawierającego linię: B b = new B(); dla klas zdefiniowanych jak niżej? abstract class A { A() { m(); } void m() { System.out.println("A"); } } class B extends A { B() { super(); } void m() { System.out.println("B"); } } błąd kompilacji (nie można przysłaniać metody klasy abstrakcyjnej) B błąd kompilacji (nie można wywoływać konstruktora klasy abstrakcyjnej) A None Poprawna odpowiedź 2. Jaki będzie wynik kompilacji i wykonania linijki programu: A a = new B(); dla klas zdefiniowanych jak niżej? abstract class A { A() { m(); } abstract void m(); } class B extends A { B() { super(); } void m() { System.out.println("B"); } } B błąd kompilacji (nie można przysłaniać metody klasy abstrakcyjnej) błąd wykonania (wyjątek NullPointerException) błąd kompilacji (nie można wywoływać konstruktora klasy abstrakcyjnej) None Poprawna odpowiedź 3. Jeśli metoda Hello() zwraca wartość typu void i nie wymaga podania Żadnych argumentów, to jej deklaracja wygląda następująco: void Hello(); Hello(); void Hello(void); Hello(void); None Poprawna odpowiedź 4. W wyrażeniu: public XXXX extends something1, something2 XXX powinno być interfejsem, something1 oraz something2 zaś interfejsami być nie muszą XXX powinno być klasą, something1 oraz something2 muszą być interfejsami XXX, something1 oraz something2 muszą być interfejsami wyrażenie zawsze będzie niepoprawne, ponieważ Java nie dopuszcza dziedziczenia wielokrotnego None Poprawna odpowiedź 5. Jaki będzie wynik kompilacji i działania poniższego fragmentu programu? Integer ten=new Integer(10); Long nine=new Long (9); System.out.print(ten + nine); int i=1; System.out.println(i + ten); 1911 109110 błąd kompilacji 10911 None Poprawna odpowiedź 6. Co można powiedzieć dla klasy o poniższej definicji? public class A { A() { } } do klasy A można się odwoływać, tworzyć jej obiekty oraz ją rozszerzać gdziekolwiek do klasy A można się odwoływać spoza pakietu, w którym jest zdefiniowana nie można stworzyć obiektu klasy A poza pakietem, w który jest ona zdefiniowana nie można rozszerzać klasy A poza pakietem, w który jest ona zdefiniowana None Poprawna odpowiedź 7. Jaki będzie wynik kompilacji i wykonania poniższego programu? public class A { private void m1() throws Exception { throw new RuntimeException(); } public void m2() { try { m1(); } catch (RuntimeException e) { System.out.print("RE "); } catch (Exception e) { System.out.print("E "); } } public static void main(String args[]) { A a = new A(); a.m2(); } } RE E RE E błąd kompilacji None Poprawna odpowiedź 8. Jaki będzie wynik kompilacji i wykonania poniższego programu? public class Watki implements Runnable { public void run() { while (true) { } } public static void main(String args[]) { Watki w1 = new Watki(); Watki w2 = new Watki(); Watki w3 = new Watki(); w1.run(); w2.run(); w3.run(); } } powstaną 3 nie kończące się wątki nie będące demonami program szybko zakończy (ze względu na zakończenie metody main) błąd kompilacji (nieosiągalne w2.run()) powstanie jeden nie kończący się wątek nie będący demonem None Poprawna odpowiedź 9. Kiedy kończy się działanie programu Javy? kiedy wszystkie wątki nie będące demonami stworzonymi w aplikacji zakończą swoje działanie kiedy wszystkie wątki – demony stworzone w aplikacji zakończą swoje działanie kiedy wątek wykona System.exit(); po zakończeniu się metody main None Poprawna odpowiedź 10. Jaki będzie wynik kompilacji i działania poniższego programu? public class Watek extends Thread { static String s = "a"; public static void main(String argv[]) { Watek w = new Watek(); w.m(s); System.out.println(s); } public void m(String s) { s = s + " b"; start(); } public void run(){ for(int i=0;i < 3; i++) s = s + " " + i; } } a b a lub a 0 lub a 0 1 lub a 0 1 2 a b 0 1 2 3 błąd kompilacji None Poprawna odpowiedź 11. Jaki będzie wynik kompilacji i działania poniższego programu? public class MyClass { public static void main(String args[]) { System.out.println("A"); } public static void main(char args[]) { System.out.println('B'); } } A B błąd kompilacji (podwójna deklaracja metody main) błąd wykonania (wyjątek RuntimeException) None Poprawna odpowiedź 12. Co jest poprawną deklaracją stałej w klasie? final int LINEFEED=10; const int LINEFEED=10; int LINEFEED=10; static final int LINEFEED=10; None Poprawna odpowiedź 13. Jaki będzie wynik kompilacji i działania poniższego programu? abstract class M1 { static int i; abstract void amethod(); } public class M2 extends M1 { public static void main(String argv[]) { int[] ar=new int[5]; for(i=0; i < ar.length; i++) System.out.println(ar[i]); } } pięć linii z wypisanym 0 błąd kompilacji (referencja do ar użyta przed jej inicjalizacja) błąd kompilacji (klasa M2 powinna być zadeklarowana jako abstract) błąd wykonania (zgłoszony wyjątek IndexOutOfBoundes) None Poprawna odpowiedź 14. Jaki będzie wynik działania poniższego kodu? int i=1; switch (i) { case 0: System.out.print("zero "); break; case 1: System.out.print("one "); case 2: System.out.print("two "); default: System.out.print("default "); } one one two default default one default None Poprawna odpowiedź 15. Jaki będzie wynik kompilacji i działania poniższego programu? public class MyClass { static int i; public static void main(String argv[]) { System.out.println(i); } } null 1 0 błąd kompilacji (zmienna i może nie zostać zainicjalizowana) None Poprawna odpowiedź 16. Jaki będzie wynik kompilacji poniższego kodu i wywołania wirtualnej maszyny z argumentem C? class B { } class Sub extends B { } class C { public static void main(String argv[]) { B b = new B(); Sub s = (Sub) b; } } błąd wykonania (wyjątek: ClassCastException) błąd wykonania (wyjątek: NoSuchMethodError) poprawna kompilacja i wykonanie programu błąd kompilacji None Poprawna odpowiedź 17. Jaki będzie wynik kompilacji i działania poniższego programu? import javax.swing.*; import java.awt.*; public class B extends JFrame { B() { JButton HB = new JButton("Hello"); JButton BB = new JButton("Bye"); getContentPane().setLayout(new GridLayout(2, 2)); getContentPane().add(HB); getContentPane().add(BB); setSize(300, 300); setVisible(true); } public static void main(String argv[]) { B b = new B(); } } jeden przycisk Bye zajmujący całą ramkę dwa przyciski w pionie, Hello na górze, Bye na dole błąd kompilacji (funkcja add przy GridLayout powinna mieć dwa argumenty) dwa przyciski w poziomie, Hello po lewej stronie, Bye po prawej None Poprawna odpowiedź 18. Jaki będzie wynik kompilacji i działania poniższego fragmentu programu? public class A { static int j = 20; public static void main(String argv[]) { int i = 10; A a = new A(); a.m(i); System.out.print(i); System.out.print(" "); System.out.println(j); } public void m(int x) { x = x * 2; j = j * 2; } } 10 20 10 40 błąd kompilacji (zły parametr metody m) 20 40 None Poprawna odpowiedź 19. Jaki będzie wynik kompilacji i działania poniższego programu? public class A { public static void main(String argv[]) { int i, j; etykieta1: for (i=1;i <3;i++) etykieta2: for(j=1; j<3; j++) { if (j==2) continue etykieta1; System.out.print("i=" + i + " j=" +j +" "); } } } i=1 j=1 i=2 j=1 i=2 j=2 i=1 j=1 i=2 j=1 i=1 j=1 i=2 j=1 i=2 j=2 i=3 j=1 błąd kompilacji None Poprawna odpowiedź 20. Jaki będzie wynik kompilacji i działania poniższego programu? public class A { final int i; public static void main(String[] arguments) { System.out.println(new A().i); } } 0 błąd kompilacji (nie zainicjalizowana zmienna i) błąd kompilacji (zmiennej finalnej i nie wolno używać w metodach statycznych) błąd wykonania None Poprawna odpowiedź 21. Które z poniższych twierdzeń są prawdziwe? klasy lokalne mogą być deklarowane jako static klasy anonimowe mogą być deklarowane jako static klasy wewnętrzne mogą być deklarowane jako static klasy zewnętrzne mogą być deklarowane jako static None Poprawna odpowiedź 22. Jaki będzie wynik kompilacji i wykonania następującego programu? public class A { public static void main(String argv[]) { A r = new A(); r.met(r); } public void met(A r) { int i = 1; multi(r); System.out.println(i); } public void multi(A r) { r.i = r.i * 2; } } 2 błąd wykonania błąd kompilacji 1 None Poprawna odpowiedź 23. Które z klas pakietu java.net używane są przy tworzeniu gniazd? TCPSocket i BroadcastSocket DatagramSocket i StreamSocket ServerSocket i Socket MulticastSocket i UDPSocket None Poprawna odpowiedź 24. Które z poniższych poleceń nie utworzy połączenia z maszyną, na której uruchomiono program? new Socket(new byte[]{127,0,0,1}, 80); new Socket("localhost", 80); new Socket("127.0.0.1", 80); new Socket(null, 80); None Poprawna odpowiedź 25. Co z poniższego jest prawdziwe dla gniazd implementowanych w Javie? dane są zapisywane do gniazda za pośrednictwem metod zapisu strumienia wyjściowego, który jest tworzony odpowiednią metodą gniazda dane są czytane z gniazda za pośrednictwem metod odczytu ze strumienia wejściowego, który jest tworzony odpowiednią metodą gniazda dane są czytane z gniazda za pomocą metody read() instancji klasy gniazda dane są zapisywane do gniazda za pomocą metody write() instancji klasy gniazda Poprawna odpowiedź 26. Jaki będzie wynik kompilacji i wykonanie poniższego kodu dla standardowo skonfigurowanej wirtualnej maszyny Java public class A { public static void main(String argv[]) { double[] b[] = new double[20000][20000]; b[0][0] = 1.0; } } błąd kompilacji poprawna kompilacja, wykonanie zakończone wyrzuceniem wyjątku OutOfMemoryError poprawna kompilacja i wykonanie programu poprawna kompilacja, wykonanie zakończone wyrzuceniem wyjątku NullPointerException None Poprawna odpowiedź 27. Jaki będzie wynik kompilacji i wykonanie poniższego kodu dla standardowo skonfigurowanej wirtualnej maszyny Java? public class A { public static void main(String argv[]) { double[][] b = new double[10][]; double c = b[0][0]; } } poprawna kompilacja i wykonanie programu poprawna kompilacja, wykonanie zakończone wyrzuceniem wyjątku NullPointerException błąd kompilacji poprawna kompilacja, wykonanie zakończone wyrzuceniem wyjątku OutOfMemoryError None Poprawna odpowiedź 28. Jaki będzie wynik kompilacji i wykonania poniższego programu? public class B { public void m() { System.out.print("m() w B"); } public class A { public void m() { System.out.print("m() w A"); } } public static void main(String[] args) { new B().new A().m(); } } m() w B m() w A błąd kompilacji błąd wykonania None Poprawna odpowiedź Time's up