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"); } } A błąd kompilacji (nie można przysłaniać metody klasy abstrakcyjnej) błąd kompilacji (nie można wywoływać konstruktora klasy abstrakcyjnej) B 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 wykonania (wyjątek NullPointerException) B błąd kompilacji (nie można przysłaniać metody klasy abstrakcyjnej) 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: Hello(); Hello(void); void Hello(void); void Hello(); None Poprawna odpowiedź 4. W wyrażeniu: public XXXX extends something1, something2 XXX, something1 oraz something2 muszą być interfejsami XXX powinno być interfejsem, something1 oraz something2 zaś interfejsami być nie muszą wyrażenie zawsze będzie niepoprawne, ponieważ Java nie dopuszcza dziedziczenia wielokrotnego 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); 10911 błąd kompilacji 109110 1911 None Poprawna odpowiedź 6. Co można powiedzieć dla klasy o poniższej definicji? public class A { A() { } } nie można stworzyć obiektu klasy A poza pakietem, w który jest ona zdefiniowana 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 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(); } } E RE E RE 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 powstanie jeden nie kończący się wątek nie będący demonem program szybko zakończy (ze względu na zakończenie metody main) błąd kompilacji (nieosiągalne w2.run()) 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 wątek wykona System.exit(); kiedy wszystkie wątki – demony stworzone w aplikacji zakończą swoje działanie 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 błąd kompilacji a b 0 1 2 3 a lub a 0 lub a 0 1 lub a 0 1 2 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'); } } błąd wykonania (wyjątek RuntimeException) błąd kompilacji (podwójna deklaracja metody main) A B None Poprawna odpowiedź 12. Co jest poprawną deklaracją stałej w klasie? const int LINEFEED=10; static final int LINEFEED=10; final int LINEFEED=10; 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 (klasa M2 powinna być zadeklarowana jako abstract) błąd wykonania (zgłoszony wyjątek IndexOutOfBoundes) błąd kompilacji (referencja do ar użyta przed jej inicjalizacja) 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 default one two default default one 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); } } 0 błąd kompilacji (zmienna i może nie zostać zainicjalizowana) 1 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) błąd kompilacji błąd wykonania (wyjątek: ClassCastException) poprawna kompilacja i wykonanie programu 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(); } } błąd kompilacji (funkcja add przy GridLayout powinna mieć dwa argumenty) 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 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; } } 20 40 10 40 błąd kompilacji (zły parametr metody m) 10 20 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=2 j=2 i=3 j=1 i=1 j=1 i=2 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); } } błąd kompilacji (zmiennej finalnej i nie wolno używać w metodach statycznych) błąd kompilacji (nie zainicjalizowana zmienna i) błąd wykonania 0 None Poprawna odpowiedź 21. Które z poniższych twierdzeń są prawdziwe? klasy wewnętrzne mogą być deklarowane jako static klasy anonimowe mogą być deklarowane jako static klasy lokalne 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; } } błąd kompilacji błąd wykonania 2 1 None Poprawna odpowiedź 23. Które z klas pakietu java.net używane są przy tworzeniu gniazd? DatagramSocket i StreamSocket TCPSocket i BroadcastSocket 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(null, 80); new Socket("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ą czytane z gniazda za pomocą metody read() instancji klasy 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 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, wykonanie zakończone wyrzuceniem wyjątku OutOfMemoryError błąd kompilacji poprawna kompilacja, wykonanie zakończone wyrzuceniem wyjątku NullPointerException poprawna kompilacja i wykonanie programu 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, wykonanie zakończone wyrzuceniem wyjątku OutOfMemoryError poprawna kompilacja, wykonanie zakończone wyrzuceniem wyjątku NullPointerException błąd kompilacji poprawna kompilacja i wykonanie programu 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