Professional Documents
Culture Documents
Pytanie 1
Jaki wpływ mają typy generyczne na wydajność w czasie działania programu (runtime)?
(poniżej przykład użycia ArrayList z typem generycznym i bez niego)
public class Question1 {
List list1 = new ArrayList();
List<String> list2 = new ArrayList<>();
Pytanie 2
Dla poniższego fragmentu kodu, która zasada SOLID została złamana?
Uzasadnij odpowiedź i zaproponuj modyfikacje (można używać pseudo kodu).
class LazyStudent {
public void studyWithManyBreaks();
}
class GoodStudent {
public void studyHard();
}
public Lecturer() {
this.student1 = new LazyStudent();
this.student2 = new GoodStudent();
}
Pytanie 3
Napisałeś i uruchomiłeś podany niżej fragment kodu. Po uruchomieniu, na konsoli program wypisał
true. Przekazałeś program koledze, a on zgłasza, że program wypisał na konsoli false. Używacie tej
samej wersji Javy (”11.0.4”).
Co jest przyczyną problemu i jak można go wyeliminować?
public class DoTests{
private static boolean testPi(){
return String.format(“%f”, Math.PI).equals(“3,141593”);
}
}
Co wypisze powyższy kod zawarty w pliku MyClass.java?
a) Nic,
b) @MyAnnotation()
c) Myclass.class
d) Nic nie wypisze i wyrzuci wyjątek
Pytanie 7
Czym jest relacja happens-before w kontekście wielowątkowości?
Zdefiniuj relację, przedstaw i opisz 2 przykłady jej występowania w Javie.
Pytanie 8
Opisz gdzie można zdefiniować i jakie są różnice w stosunku do standardowych metod, następujące
rodzaje metod: metoda abstrakcyjna (abstract method), metoda domyślna (default method) oraz
metoda finalna (final method).
Pytanie 9
private static long sum1() {
long sum = 0L;
for (long i = 0; I <= Integer.Max_VALUE; i++)
sum += i;
return sum;
}
Metoda sum1() wykonuje się w około 0.65 sekundy, natomiast metoda sum2() – około 6.5 sekund, na
tej samej instancji JVM. Wyjaśnij dlaczego?
Pytanie 10
Zdefiniuj i omów różnice między dziedziczeniem (extends) a implementacją (implements) w Javie?
Pytanie 11
Podaj i omów przykład niezachowania zasady podstawiania Liskov (Liskov substitution) ze
standardowej biblioteki Javy.