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 błąd kompilacji (nie można wywoływać konstruktora klasy abstrakcyjnej) błąd kompilacji (nie można przysłaniać metody 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łąd kompilacji (nie można przysłaniać metody klasy abstrakcyjnej) błąd kompilacji (nie można wywoływać konstruktora klasy abstrakcyjnej) błąd wykonania (wyjątek NullPointerException) B 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(); void Hello(void); Hello(); Hello(void); None Poprawna odpowiedź 4. W wyrażeniu: public XXXX extends something1, something2 wyrażenie zawsze będzie niepoprawne, ponieważ Java nie dopuszcza dziedziczenia wielokrotnego XXX, something1 oraz something2 muszą być interfejsami XXX powinno być interfejsem, something1 oraz something2 zaś interfejsami być nie muszą XXX powinno być klasą, something1 oraz something2 muszą być interfejsami 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 10911 błąd kompilacji 109110 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(); } } błąd kompilacji RE RE E E 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 błąd kompilacji (nieosiągalne w2.run()) program szybko zakończy (ze względu na zakończenie metody main) 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 – demony stworzone w aplikacji zakończą swoje działanie kiedy wszystkie wątki nie będące demonami stworzonymi w aplikacji zakończą swoje działanie po zakończeniu się metody main kiedy wątek wykona System.exit(); 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 błąd kompilacji a b 0 1 2 3 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? int LINEFEED=10; static final int LINEFEED=10; final int LINEFEED=10; const 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]); } } błąd kompilacji (referencja do ar użyta przed jej inicjalizacja) błąd kompilacji (klasa M2 powinna być zadeklarowana jako abstract) pięć linii z wypisanym 0 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 default one two default 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); } } 1 błąd kompilacji (zmienna i może nie zostać zainicjalizowana) 0 null 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: NoSuchMethodError) poprawna kompilacja i wykonanie programu błąd wykonania (wyjątek: ClassCastException) 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(); } } dwa przyciski w pionie, Hello na górze, Bye na dole jeden przycisk Bye zajmujący całą ramkę dwa przyciski w poziomie, Hello po lewej stronie, Bye po prawej błąd kompilacji (funkcja add przy GridLayout powinna mieć dwa argumenty) 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 błąd kompilacji (zły parametr metody m) 10 40 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=3 j=1 i=1 j=1 i=2 j=1 i=2 j=2 błąd kompilacji i=1 j=1 i=2 j=1 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 wykonania błąd kompilacji (zmiennej finalnej i nie wolno używać w metodach statycznych) błąd kompilacji (nie zainicjalizowana zmienna i) None Poprawna odpowiedź 21. Które z poniższych twierdzeń są prawdziwe? klasy zewnętrzne mogą być deklarowane jako static klasy lokalne mogą być deklarowane jako static klasy anonimowe mogą być deklarowane jako static klasy wewnę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; } } błąd kompilacji 2 1 błąd wykonania None Poprawna odpowiedź 23. Które z klas pakietu java.net używane są przy tworzeniu gniazd? MulticastSocket i UDPSocket DatagramSocket i StreamSocket TCPSocket i BroadcastSocket ServerSocket i Socket None Poprawna odpowiedź 24. Które z poniższych poleceń nie utworzy połączenia z maszyną, na której uruchomiono program? new Socket("localhost", 80); new Socket("127.0.0.1", 80); new Socket(null, 80); new Socket(new byte[]{127,0,0,1}, 80); None Poprawna odpowiedź 25. Co z poniższego jest prawdziwe dla gniazd implementowanych w Javie? dane są czytane z gniazda za pośrednictwem metod odczytu ze strumienia wejściowego, który jest tworzony odpowiednią metodą gniazda dane są zapisywane do gniazda za pomocą metody write() instancji klasy gniazda 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 pomocą metody read() 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; } } 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ź 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 błąd kompilacji poprawna kompilacja, wykonanie zakończone wyrzuceniem wyjątku OutOfMemoryError poprawna kompilacja, wykonanie zakończone wyrzuceniem wyjątku NullPointerException 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(); } } błąd kompilacji błąd wykonania m() w B m() w A None Poprawna odpowiedź Time's up