kart Flashcards

1
Q

Podaj przykład odstępstwa od obiektowości w javie i go wyjaśnij

A

Przykładem odstępstwa jest autoboxing i unboxing. Polega na tym, że zmienna prymitywna jest opakowywana w klasę np zmienna int jest opakowywana w Integer. Przy okazji operacji na zmiennych opakowanych na początku następuje translacja do typu prymitywnego następnie wykonywana jest akcja, a po wykonaniu operacji automatycznie zmienna prymitywna jest na nowo opakowywana.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Podaj na co trzeba zwracać uwagę przy porównywaniu zmiennych opakowujących zmienne prymitywne

A

Trzeba pamiętać o tym, że są to obiekty które wskazują na coś. Przy zwykłym == porównywane są wskaźniki a nie wartości. Aby mieć pewność, że zostanie stworzony nowy obiekt, a nie zostanie stworzona referencja należy wywołać konstruktor. Najlepiej porównywać poprzez equals()

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Co oznaczają trzy kropki … przy definicji metody

A

Oznacza to, że przy wywoływaniu metody można podać różną liczbę argumentów. Argumenty te są konwertowane do tablicy. np void test(int… a)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Podaj różnicę pomiędzy List i List

A

Obie przechowują referencje do obiektu, ale List przy dodawaniu nie sprawdza czy typy się zgadzają - można dodać wartość int, a potem string. Jeżeli lista ma zdefiniowany typ ten problem nie występuje

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Podaj interfejsy jakie trzeba dodać, żeby po liście dało się iterować za pomocą foreach()

A

Iterable<> oraz Iterator

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Na co trzeba zwracać uwagę przy iteratorze

A

Iterator na początku wskazuje na obiekt. Aby wskazywał na pierwszy element listy należy na nim wywołać metode next()

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Czym są typy wyliczeniowe

A

Są one klasą

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Jak się odwoływać do metod operujących na kolekcjach

A

Pomimo tego, że są to metody statyczne to odwołujemy się do nich jak do zmiennych globalnych

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Podaj adnotacje które można umieścić przed definicja metod i ich znaczenie

A

@ Override sprawdza czy dana metoda znajduje się już w klasie – jeżeli nie to wywala wyjątek. Używane przy polimorfizmie
@Deprecated – metoda jest przestarzała – w przyszłości może nie działać
@SuppressWarnings – ostrzeżenie na pomarańczowo o danym tekście
@Description – opis metody, np. ważność, przedmiot, autor

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Czym są metaadnotacje i metainformacje

A

Są to informacje na temat naszych interfejsów. Nie możemy tworzyć własnych.
Metainformacje czyli informacje na temat zawartości obiektu

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Podaj atrybuty metaadnotacji??????

A
@dounented
@Retantion
	Runtime – ile coś ma przetrwać
Source – adnotacja istnieje tylko w naszym kodzie źródłowym, np. @Override
Class – adnotacja usuwana w momencie załadowania klasy do maszyny wirtualnej, dla programów które przetwarzają klasę
@Target
	target
@Inherited - czy dziedziczne
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Podaj nazwę metody zwracającej obiekt o podanej nazwie i mechanizm z tym związany

A

Class.forName zwrócenie referencji na obiekt o podaną nazwę. Jest związana z mechanizmem refleksji – polega on na tym, ze program jest świadomy swojej własnej struktury)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

podaj operator referencji na metodę oraz metodę pozwalającą na pobranie metody obiektu

A

:: operator referencji na metode – przed dwukropkiem obiekt a po nim metoda która powinna zostać wywołana metoda.
getMethod pobieramy obiekt metody

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q
Co robią podane metody
split() 
chars() 
findFirst() 
ifPresent()
collect()
groupingBy()
reduce()
A

chars() zwraca tablicę kodów ascii
split() rozdzielanie napisu bazując na podany symbol
findFirst() zwraca typ optional - wynik, ale w niektórych momentach nie może zwróci
ifPresent jeżeli dane były obecne(z findFirst) to wykonuje dalej program
jeżeli metoda zwraca null to lepiej dać optional – zabezpiecza przed tym, że nie sprawdzimy czy zmienna nie zawiera nulla
collect tworzy kolekcję w oparciu o strumień
groupingBy grupowanie bazując na wyrażeniu labmda 35
reduce pozwala wybrać jeden z dwóch elementów

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Wyjaśnij czym są testy jednostkowe i ich założenia. Jak się nazywa klasa które symuluje testowaną klasę

A

Testy jednostkowe służą do testowania jednej klasy – powinno się ją testować w odłączeniu od innych klas – błąd w klasie A nie powinien doprowadzać do tego, że test w klasie B nie przejdzie test
Klasy powinny zależeć od sowich interfejsów
Zaślepki-mock klasa symulująca klasę pozwalając na przeprowadzanie testów jednostkowych.
Przy testowaniu powinno się sprawdzać zwykłe dane oraz dane graniczne - przy których spodziewamy się zmiany działania programu

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Jak zdefiniować klasę dowolnego typu i jak pozyskać informacje na jej temat

A

Class> oznacza, że obiekt klasy może być dowolnego typu. Class przechowuje metainformacje na temat klasy. Metainformacje czyli informacje na temat zawartości obiektu

17
Q

Podaj nazwę klasy która pozwala na przechowywanie informacji na temat klasy

A

AnnotatedElement jest to klasa która pozwala uzyskać dane na temat podanego elementu/obiektu. Np. autora, zawartość, ważność

18
Q

Podaj operacje na kolekcjach i ich działanie

A

addAll – metoda dodająca(kopjuje) wszystkie elementy jednego obiektu do drugiego
shuffle – przemieszanie elementów kolekcji
sort – posortowanie kolekcji
rotate -obrócenie listy(przesunięcie wszystkich elementów o )
reverse – odwrócenie listy
swap – zamienienie konkretnych elementów
replaceAll – zamienienie wszystkich elementów daną wartością
max – maksimum kolekcji
min – minimum kolekcji
frequency – ilość wystąpień podanego parametru

19
Q

Podaj jam można się iterować przez każdy element tablicy

A

for(Klasa a:jakaskolekcja){

}

20
Q

Co oznacza ten zapis

A

Podanie przy deklaracji klasy oznacza, że N będzie typu numerycznego

21
Q

Jak przekazać więcej niż jeden parametr do wyrażenia lambda

A

Poprzez definicję interfejsu do wyrażenia lambda można przekazywać więcej niż jeden parametr
Składnia ([wyrażenia]) ->{[operacje na danych]}

22
Q

Podaj przykład wyrażenia lambda z dwoma parametrami

A

interface IntegerMath {

        int operation(int a, int b);
    }
        IntegerMath addition = (a, b) -> a + b;
        // or 
        IntegerMath subtraction = (a, b) -> {
            return a - b;
        };
23
Q

Podaj przykład użycia foreach

A

newList.forEach(n -> System.out.println(“new: “ + n));

24
Q

Co robią podane metody
stream()
filter()

A

stream konwersja na strumień

filter odfiltrowanie danych

25
Q
Co robią podane metody
IntStream 
chars 
average 
max
map 
Sum
A

IntStream – zwraca napis składający się z podanego ciągu intów
.chars zmienienie znaków w napisie na ich odpowiedniki w ascii
average – zwraca średnią
max – zwraca maksimum
map - zwraca parę
Sum – suma elementów

26
Q

Podaj opcje testów

A

@Order() Można ustawić kolejność wykonywania testów

Testy parametryzowane poprzez- pojedyncze wartości podawane w teście
@ParameterizedTest
@ValueSource(strings = {“a”, “ab”})

Powtórzenie testu w celu sprawdzenia czy dane się zmieniają poprzez
@RepeatedTest(10)

@CsvSource – jeżeli test ma mieć dużą pulę danych do przetestowania to najlepiej podać to w tym CsvSource

@Disabled(string) dezkatywacja testu jednak zostawienie powiadomienie o tym

27
Q

Podaj testowe porównania w teście pozwalające na sprawdzanie czy wynik jest poprawny

A

assertEquals() zakładana równość – jeżeli nie to błąd, fraza używana a try bo jeżeli nie jest prawdziwa to przechodzi do catch gdzie jest obsługa
assert false:[string]; błąd + tekst błędu
assertArrayEquals – porównywanie tablic
assertNotSame porównanie dwóch obiektów
asserNull załóż null
asserNotNull załóż nie null
assertSame – załóż równość

28
Q

Podaj definicję testów parametryzowanych z podanymi danymi

A

Testy parametryzowane poprzez- pojedyncze wartości podawane w teście
@ParameterizedTest
@ValueSource(strings = {“a”, “ab”}) // add “”

Testy parametryzowane poprzez- pary wartości w jednym teście wartości
@ParameterizedTest
@CsvSource({“test,TEST”, “tEst,TEST”, “Java,JAVA”})