ewyniki :D
http://appsrv.prz.edu.pl:8080/resmgr-web/ login: java_d hasło: java345 Poprawa w przyszla srode (16.02) o 8.00 w A1/A61 Prokop powiedział, że zrobi nowe pytania, bo wie, że mamy pytania sprzed roku i nauczenie się na pamięć tych sprzed roku albo z tego roku nic nie da. Nie zgodził się na poprawę w piątek z tego powodu.
1.String a = new String(“fuck”);
String b = new String(“fuck”);
Czy wyrażenie a == b ma wartość true ?
//Odp : Nie. od a==b sprawdza referencje do obiektu a nie porównuje "zawartość", mimo że a i b zawierają ten sam napis to zmienne wskazują inne obszary pamięci. (JB)
Czy wyrażenie a.equals(b) ma wartość true ?
Odp: Tak.
Czy wyrażenie a.compareTo(b) ma wartość true?? //Odp. Nie. // compareTo zwraca int, a nie boolean. if (a.compereTo(b) == 0) Wtedy zwróci true. (JB)
2. Co się stanie po kompilacji kodu:
Integer a = null; // Poprawna “inicjalizacja”.
int b = a; // Tutaj się wywali przy uruchomieniu: NullPointerException, Nie można do typów wbudowanych przypisywać null. (JB)
System.out.println(b); Gdyby było println(a) i nie było ‘int b = a’, to się skompiluje i wyświetli null. (JB) Odp: Otrzymamy: java.lang.NullPointerException
3. Co to jest out w wyrażeniu System.out.println(“fuck”) ?
Odp. pole klasy System. System jest napisane z dużej litery, więc to nie nazwa pakietu tylko klasa/interfejs, więc out nie może być podpakietem, funkcją też nie jest, bo nie ma po nim nawiasów, zostaje pole i nie pamiętam co jeszcze, ale też nie pasowało chyba. Możliwe też, że żadna odpowiedź nie jest tu poprawna. Była jeszcze odpowiedź, ze jest obiektem,ale czy poprawna? //no jeżeli jest to pole i wywołujemy na jego rzecz metody, to raczej tak, o ile tylko tam się te typy zgadzały
//TZ: Wystarczy wpisać w Netbeans System.out i już widać odpowiedź - jest obiekt klasy “Prin tStream” - odpowiadający za wyjście “standardowe”, będący polem statycznym klasy System.
4. Tworzenie schematu XML z klas java.
Odp: Na pewno schemagen.
5. Program bez maina, w środku w klasie głównej blok static bez public, w środku nie ma exit, czy się uruchomi?
class myClass{static{System.out.println(“tralala”);}}
Odp. Skompiluje się, wypisze “tralala” i wywali wyjątek: NoSuchMethodError: main (JB) Gdyby class myClass{static{System.out.println(“tralala”);System.exit(0);}} To wypisze “tralala” i nie wywali żadnego wyjątku. (JB)
6. Czy można dziedziczyć z klasy string?
Odp: krótko - nie, bo finalna. Długo: Zadeklarowanie klasy jako finalnej oznacza, że nie może być ona dziedziczona przez inne klasy co może być podyktowane względami bezpieczeństwa lub efektywności. Wiele standardowych klas Javy jest klasami finalnymi np.: java.lang.System i java.lang.String. Wszystkie metody w klasie finalnej są automatycznie finalne
7. Interfejs sparametryzowany bez modyfikatora public, w środku metoda bez public, klasa dziedziczące ten interfejs implementuje metodę, ale ma napisane przy niej public - czy to zadziała? interface myInterface<T>{ myMethod(T argument){ } } /* nie wiem czy był modyfikator*/ class myClass<T> implements myInterface<t> {
public static void main(String[] args) {
myClass<Double> d = new myClass<Double> ();
d.myMethod(123);
}
public myMethod(T dupa) { System.out.println(dupa);
}
} //wg klucza nie skompiluje się, ponieważ jest błąd, pytałem o to Prokopa i powiedział, że w javie nie ma automatycznej konwersji w takim przypadku
Odpowiedzi: - wypisze 123 - wypisze 123.0 - nie skompiluje się - skompiluje się ale nie uruchomi //TZ: 1. Nie można definiować ‘zawartości’ funkcji w interfejsie - nie skompiluje się //”Zawartość” nie jest defniowana w interfejsie
2. brakuje też zwracanego typu - nie skompiluje się //Możliwe, że na teście był:P
3. Wszystkie metody w intefejsie są automatycznie publiczne - jedyny dopuszczalny modyfikator to public W zadaniu na pewno chodziło o to, że int nie skonwertuje się automatycznie na Double (co ciekawe na double by się skonwertował).
8.class A {} class B extends A {//tu tworzymy obiekt}
Co wywali błąd?: A obiekt = new A(); A obiekt = new B(); B obiekt = new A(); // Odpowiedź poprawna. Nie można inicjalizować obiektu klasy pochodnej klasą macierzystsą B obiekt = new B(); //Pytanie czy można w ogóle tworzyć obiekty (wywoływać new) w ciele klasy (nie w żadnej metodzie/konstruktorze, tylko natychmiast po “{“ )? Odp. Można. To tak jak przypisanie domyślnych wartości polom klasy. Np.:String ss = new String(); To nie musi być w konstruktorze czy żadnej metodzie. (JB)
9. Mamy Class$1.class oraz Class$2.class. Dlaczego mamy te liczby po $ ?.
Odp: Bo w środku są 2 klasy wewnętrzne anonimowe.
10. Lista stringów, jak napisać pętlę for: Odpowiedzi: for (String s : myList) { System.out.println(s); } // Poprawne. (JB) for (int i = 0; i < myList.size(); i++)
{
System.out.println(myList(i));
} // Nie poprawne!! (JB) // W Javie nie ma przeciążania operatorów. Więc nie da się wykonać operacji na operatorze nawiasów na obiekcie ArrayList<String> Ale można użyć takiej konstrukcji myList.get(i) i to zadziała. (JB) //potwierdzam, tak jest w kluczu // Tak istnieje metoda size() klasy ArrayList<T>. (JB)
11. Która składnia dodawania obiektu panelu (JPanel panel = new JPanel();) do kontenera okna (JFrame frame = new JFrame();) lub podmieniania jego zawartości w języku Java jest poprawna:
frame.add(panel); // Odp: poprawna. Od wersji Javy 1.5 jak dobrze // pamiętam.
panel.add(frame); // Odp: niepoprawna!! // kompiluje się ale wywala exception frame.getContentPane().add(panel); // Odp: poprawna. Przed wersją Javy 1.5, ale nadal // działa. frame.setContentPane().add(panel); // Odp: niepoprawne //wg NetBeans błąd (setContentPane zwraca void, a void nie jest obiektem, który ma metodę add) //tam chyba było tak jak niżej frame.setContentPane(panel); // Ja mialem taka odpoweidź, wg klucza poprawna (AM) //potwierdzam, tak jest w kluczu
12. Rozkład komponentów 3 wiersze reszta rozkłada się w kolumnach.
Odp: GridLayout(3,0) //potwierdzam, tak jest w kluczu
13. Czy można dodać button do buttona?
Odp: Tak. //potwierdzam, tak jest w kluczu, w tym zadaniu wszystkie odpowiedzi były poprawne
14. Czy można dodać button z html w konstruktorze do buttona? (pamięta ktoś, czy było jbutton czy zwykly button z awt?).
Odp. Można. W Button (AWT) zostanie wyświetlony “tekst HTML-a”. W JButton (Swing) HTML zostanie zinterpretowany, tak jak w przeglądarce. (JB) //potwierdzam, tak jest w kluczu, w tym zadaniu // wszystkie odpowiedzi były poprawne
15. Zmienna “akcja” jest obiektem klasy AbstractAction. Czy można wywołać new Button (action)?(a może tam było JButton?)
Odp. Dla klasy Button (AWT) nie ma takiego konstruktora, więc nie można wywołać. Dla klasy JButton (Swing) można wywołać taki konstruktor. (JB) //potwierdzam, tak jest w kluczu, był to JButton, poza tym dobra była jeszcze odpowiedź z metodą setAction();
16. Obsługa bazy danych z apletu ze względów bezpieczeństwa powinna być realizowana:
- Bezpośrednio z apletu za pomocą JDBC //Odp: źle.
- Z apletu przez serwer zainstalowany w kontenerze Web na serwerze //Odp: dobrze.
- Z apletu przez inny aplet //Odp: źle.
- Tam chyba było ze: aplet może obsługiwać bazę danych //Odp:i to właśnie też // było podobno OK //wydaje mi się, że tak było w kluczu, ale ktos (;)) twierdzi, że w kluczu były zaznaczone 2 odpowiedzi Przypomniałem sobie to, ostatnia odpowiedź brzmiała “z apletu nie można BEZPOŚREDNIO obsługiwać bazy danych” i ta odpowiedź jest poprawna ze względu na słowo “bezpośrednio” i stwierdzenie “ze względów bezpieczeństwa” w pytaniu. Na laborce ktoś to robił bezpośrednio i o ile dobrze pamiętam działało tylko w applet viewerze.
17. Czy można czytając StAXem przerwać czytanie jak mamy już potrzebne dane?
- Na pewno można czytać i zapisywać.// tak I nie ma validacji//nie ma
- Czy mozna skończyć parsowanie w połowie //tak //potwierdzam, tak jest w kluczu
18. Wyłączenie walidacji dokumentu XML z DTD z poziomu kodu Java w XML DOM jest możliwe po użyciu składni:
factory.setValidating(true); //Odp: źle.
factory.setValidating(false); //Odp: dobrze.
validator.validate(source); //Odp: źle.
validator.validate(source, result); //Odp: źle. //potwierdzam, tak jest w kluczu
19. Wskazać poprawną definicję interfejsu.
public interface MyInterface implements MyInterface1 {}; // Odp. źle.
public interface MyInterface implements MyInterface1, My interface2 {}; // Odp. źle.
public interface MyInterface extends MyInterface1 {}; // Odp. dobrze.
public interface MyInterface extends MyInterface1, My interface2 {}; // Odp. dobrze. Dziedziczenie w javie jest jednokrotne. Interfejsy są wyjątkiem. //potwierdzam, tak jest w kluczu Wszystko było by OK gdybyśmy byli pewni że MyInterface1 i MyInterface2 są interfejsami a nie klasami... No raczej są, nie róbmy sobie już takich jaj. Chyba nawet było to wyszczególnione w pytaniu, ale nawet jak nie, to w takim wypadku nie dało się ustalić, czy dana definicja jest poprawna - za mało danych.
20. MySQL, które linijki niezbędne?
Connection connection = DriverManager.getConnection(url, user, password); Class.forName(”com.mysql.jdbc.Driver”);
Statment statement = connection.createStatement();
ResultSet resultSet = Statement.executeQuery(query);
Odp. Wszystkie //potwierdzam, tak jest w kluczu
21. Adnotacje - która linijka odpowiada za element o nazwie “cos”
@element (name = “cos”) //dobrze
@rootelement(name = “cos”) //wg mnie dobrze, wg klucza źle; // Prokop powiedział, że element główny też jest elementem, ale nie o to chodziło w pytaniu:/ “Za bardzo pan kombinuje”. W pytaniu nie było to sprecyzowane, ale mimo to Prokop uznaje tą odpowiedź za błędną i nie udało mi się wykłócić z attribute // na pewno źle, bo atrybut != element
java nie obsługuje adnotacji” // Odp. źle.
22. Czy dla JButton button można wywołać:
button.setOpaque(true); // Odp: tak.
button.setToolTipText(“java”); // Odp: tak.
button.getToolTipText(“java”); // Odp. nie.
getToolTipText nie przyjmuje parametrów, // jedynie zwraca String. (JB) . nie pamietam ale chyba to co w ptk 13 . nie pamiętam ale chyba to co w ptk 14 //potwierdzam, tak jest w kluczu, w tym zadaniu wszystkie odpowiedzi były poprawne (odpowiedzi z getToolTipText nie było na teście)
23. Która składnia klasy sparametryzowanej o nazwie MyClass jest poprawna (class MyClass<T exteneds Number> {...})
- MyClass<int> obj = new MyClass<int>(123); // Odp. źle. int to typ prosty, a nie klasa!
- MyCLass<String> obj = new MyClass<String>(“asdf”) // Odp. źle. String nie dziedziczy po Number.
- MyClass<Double> obj = new MyClass<Double>(123.0) // Odp. dobrze. Double dziedziczy po Number. // (JB) //potwierdzam, tak jest w kluczu
24.Zdefiniowana jest klasa zewnętrzna B i wewnętrzna o nazwie A:
class B{
class A {
}
} Która składnia tworzenia obiektu klasy wewnętrznej jest poprawna:
- B.A a = (new B()).new A(); // Odp. Dobrze. KM: racja
- B b =new B(); B.A a = b.new A(); // Odp. Dobrze. KM: racja
- A a = new A(); // Odp. źle.
- B.A a = new B.A(); // Odp. źle. //potwierdzam, tak jest w kluczu
25. Który z niżej wymienionych interfejsów nie posiada swojej klasy adaptacyjnej?
- java.awt.event.MouseListener // Odp. Ma.
- java.awt.event.WindowListener // Odp. Ma.
- java.awt.event.ActionListener // Odp. Nie ma.
- java.awt.event.KeyListener // Odp. Ma. //potwierdzam, tak jest w kluczu
26. Za pomocą obiektu jakiej klasy powinien odbywać się dostęp do pliku file_name.xml z serwletu języka Java:
- File file = new File(„file_name.xml”); // Odp. Tak. (JB) // potwierdzam, tak jest w kluczu
- InputStream is = new InputStream(„file_name.xml”); // na pewno źle, bo nie ma takiego // konstruktora, jeżeli już, to InputStream is = new FileInputStream(„file_name.xml”);
- URL url = new URL(getCodeBase(),”file_name.xml”); // Odp. Tak. (JB) // potwierdzam, tak jest w kluczu
- serwlet nie obsługuje dostępu do pliku // Odp. Źle. (JB) // potwierdzam, tak jest w kluczuOkazuje sie ze poprawne byly 3 odpowiedzi, bo wg Prokopa istnieje klasa ‘InputStream’. Jednak jak poszukal w dokumentacji, to jej nie znalazl z takim konstruktorem.mi powiedział, że to zależy od wersji javy, ale dopisał mi punkt za tą odpowiedź, czyli standardowo dawał punkt jak się zaznaczyło 3 odpowiedzi, ale jak się do niego pójdzie i ma się zaznaczone file i url, to dopisuje punkt ze słowami “jak są wątpliwości, to zawsze idę na korzyść studenta” Podwyższył o punkt każdej osobie która miała zaznaczone tylko File i Url. Kto miał zaznaczone File, InputStrem i Url NIE OBNIŻAŁ.
27. Jak się dostać do PrintWrite w serwlecie albo jakoś podobnie.
getWriter() // Odp. dobrze.
getReader() // Odp. źle.
getOutputStream() // Odp. źle. (JB) //chyba tak jest w kluczu
28. cos z DocumentBilderemFactory Jak utworzyć obiekt klasy fabrykującej XSLT TransformerFactory fabryka = new TransformerFacroty().newInstance(); // Odp. Poprawna. (JB) TransformerFactory fabryka = new TransformerFactory(); // Niepoprawna. //TransformerFactory nie ma //publicznego konstruktora. (JB) Odpowiedzi na pewno błędne to te dwie gdzie było FactoryFactory. //potwierdzam, tak jest w kluczu
29. Jak parsować xml w SAX? //nie jestem pewien, czy w pierwszym parametrze było “my_file.xml” czy jakiś obiekt klasy File/URL/InputStream, ale chyba powinien być obiekt.
a) parser.parse(“my_file.xml”); // Odp. źle. b) parser.parse(“my_file.xml”, new cosHandler); // Odp. dobrze.
W SAX-ie ta odpowiedź jest //poprawna. // (JB). //potwierdzam, tak jest w kluczu, tylko ta jedna //odpowiedź była poprawna
30. W metodzie init() klasy głównej apletu implementującej interfejs MouseLinstener znajduje się kod dodania słuchacza zdarzeń od myszki do źródła:
addMouseListener(this):
Które stwierdzenia są prawdziwe?
-Źródłem zdarzeń jest myszka //źle, źródłem jest aplet, bo nie ma nic przed add, czyli //domyślnie jest this.
- źródło to to, na rzecz czego wywołujemy //add
-Źródło zdarzeń nie jest określone i kompilator zgłosi błą //źle, źródłem jest aplet
-Słuchaczem zdarzeń jest aplet //dobrze, słuchacz to to w nawiasie, potwierdzam (JB) -Słuchacz zdarzeń nie jest określony //na pewno źle //potwierdzam, tak jest w kluczu, dobra jest tylko odpowiedź potwierdzona przez JB
31. Cos z Egzemplarz interfejsu ActionListner /jawny niejawny. //dobrze jest :) // tylko ta/odpowiedź była poprawna //potwierdzam, tak jest w kluczu
new ActionListener() { public void actionPerformed(ActionEvent e) {System.out.println(”OK”) } };
- nie mozna tworzyć obiektu interefejsu (bo nie zawiera konstruktora) // Odp. Niepoprawna.
- niejawny egzamplarz anonimowej klasy implementującej ActionListener // Odp .Poprawne (JB). //niejawny
- nie jestem pewien, ale chyba chodzi o to, że nie ma coś = new actionListener tylko samo new ActionListener podane np. w parametrze funkcji //klasa anonimowa, bo nigdzie nie widać jej nazwy (mogłoby być new Nazwa implements ActionListener)
c) nazwany egzemplarz czegośtam - źle, bo nienazwany
d) egzemplarz interfejsu bla bla bla - źle, to jest obiekt, czyli egzemplarz klasy //potwierdzam, tak jest w kluczu
Poprawka 16 II 2011 :
1. Mamy class A { class B { } } Czy to : A.B b = new A().new B(); zadziała ? Odp: wg NetBeans’a tak //potwierdzam, tak jest w kluczu
2. Mamy klasę: class A<T>{ } Co jest poprawne:
A <String>a = new A<String>(“jaś”);
A <int>a = ne<Double>a = new A<Double>(1.1);
w A<String>(1);
A A <double>a = new A<double>(1.1);
A <int>a = new A<int>(1); Odp: wg NetBeans’a żadne (bo nie ma konstruktora) Poprawny jest kod typu : A <Double>a = new A<Double>(); //Na zaliczeniu nie była chyba podana definicja klasy, albo był konstruktor, w każdym razie zaznaczyłem na zaliczeniu wersję z Double i String i miałem za to zadanie punkt, ale nie przyglądnąłem się dziś samemu zadaniu.
3. Jaka może być deklaracja tablicy?
int []d = {1,2,3,4}; Odp: ok
int d[] = new int[45]; Odp: ok //potwierdzam, tak jest w kluczu
4. Mamy metodę: private void Method(String ... stringTable) { for(String string : stringTable) { System.out.println(string); } } oraz jej wywołanie:
Method();
Method("Zofia Przyciółkówna");
Method("Maria J"); Odp: otrzymujemy: Zofia Przyciółkówna Maria J //na zaliczeniu było print a nie println i dlatego wypisuje się w jednej linijce
6. Czy zadziała import klasy a nie pakietu (System, Math), czy Math nie zawiera przypadkiem zmiennej o nazwie “out” (wtedy sie nie skompiluje)? //import działa, wszystko się kompiluje i w programie można używać out bez System wcześniej
7. Czy StAX obsługuje XML Scacthema? odp. nie //potwierdzam, tak jest w kluczu
8. class A { class B { } } class C{ //wywołanie tutaj obiektu klasy B }
Odp: Nie można: B cośtam = new A(); Pozostałe możliwości OK.
9. Jakie pliki zostaną utworzone dla : class A { class B { class C { class D { } } } }
Odp: A.class, A$B.class, A$B$C.class, A$B$C$D.class
10. Jakie pliki zostaną utowrzone: class A { void method() { class B { } } } Odp: A$1B.class oraz A.class - tylko ta odpowiedź jest poprawna wg klucza. Odpowiedź z samym A.class jest błędna, choć teoretycznie “test na prawdę” powinien ją uznawać, bo taki plik zostanie stworzony :)
11. setOpaque(true) odpowiedź nieprzeźroczysty //potwierdzam, tak jest w kluczu
12. W modelu MVC co odpowiada za kontroler?
Odp: Servlet //potwierdzam, tak jest w kluczu, przy okazji w tym pytaniu Prokop użył stwierdzenia “zwykła klasa javy”, spytałem go co oznacza “zwykła” i chodziło mu o klasę, która z niczego nie dziedziczy //Za model odpowiadają klasy javy, a za widok JSP.
Ktoś pamięta jeszcze jakieś pytania? ;) To już chyba wszystkie, większość na poprawce się powtórzyła, lub zmiany były niewielkie. W pytaniu 7 na pewno zmienił na 123.0 i dzięki temu całość działa i wypisuje na ekran 123.0 bez warninga.
v