1/128
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced |
|---|
No study sessions yet.
Jaki paradygmat programowania traktuje obliczenia jako ewaluację funkcji matematycznych i unika zmian stanu oraz efektów ubocznych?
Programowanie funkcyjne
Czym, w przeciwieństwie do programowania imperatywnego, jest programowanie funkcyjne?
Koncentruje się na tym, CO ma zostać obliczone, a nie JAK komputer ma to wykonać.
Wymień kluczowe cechy programowania funkcyjnego.
Funkcje jako obywatele pierwszej klasy, funkcje wyższego rzędu, czyste funkcje, brak efektów ubocznych, niemutowalność, rekurencja, deklaratywność.
Co oznacza, że funkcje są "obywatelami pierwszej klasy" (first-class citizens)?
Mogą być traktowane jak wartości: przypisywane do zmiennych, przekazywane jako argumenty i zwracane z funkcji.
Czym charakteryzują się "czyste funkcje" (pure functions)?
Dla tych samych danych wejściowych zawsze zwracają ten sam wynik i nie mają efektów ubocznych.
Co to jest "niemutowalność" (immutability) w programowaniu funkcyjnym?
Dane są niezmienne; każda operacja tworzy nowe dane zamiast modyfikować istniejące.
Wokół czego zorganizowany jest kod w programowaniu obiektowym (OOP)?
Wokół obiektów, które mają stan (pola) i zachowanie (metody).
Jak programowanie funkcyjne (FP) podchodzi do stanu?
Stan jest unikalny i niezmienny, dane są niemodyfikowalne.
Jak w programowaniu funkcyjnym (FP) osiągany jest polimorfizm?
Poprzez funkcje wyższego rzędu.
Jak programowanie funkcyjne (FP) zarządza przepływem programu?
Poprzez rekurencję, wyrażenia lambda i funkcje wyższego rzędu (np. map, filter, reduce).
W jakich sytuacjach programowanie obiektowe (OOP) jest szczególnie użyteczne?
Gdy mamy do czynienia ze skomplikowanymi strukturami danych z wieloma stanami i zależnościami.
Kiedy programowanie funkcyjne (FP) jest idealnym wyborem?
Gdy chcemy tworzyć kod łatwy do testowania, modularny i współbieżny.
Czym są wyrażenia lambda w Javie?
Są to anonimowe funkcje, które pozwalają na zwięzłe przekazywanie zachowań jako argumentów do metod.
Od której wersji Javy dostępne są wyrażenia lambda?
Od wersji Java 8.
Jaka jest ogólna składnia wyrażenia lambda w Javie?
(parametry) -> { ciało funkcji }
Kiedy nawiasy klamrowe {} w ciele funkcji lambda są opcjonalne?
Gdy ciało funkcji składa się z jednej instrukcji.
W jakich zastosowaniach używa się wyrażeń lambda?
Operacje na kolekcjach (Stream API), sortowanie, wielowątkowość (Runnable, Callable), przetwarzanie danych.
Jakie są główne korzyści z używania wyrażeń lambda?
Zwięzłość, modularność, deklaratywność i łatwość współbieżności.
Czym jest referencja do metody w Javie?
Jest to bardziej zwięzła i czytelna alternatywa dla wyrażenia lambda, która odwołuje się bezpośrednio do istniejącej metody.
Co, zgodnie z definicją w prezentacji, oznacza "redundancja"?
Nadmiarowość w stosunku do tego, co konieczne lub zwykłe.
Czym jest interfejs funkcyjny w Javie?
To interfejs, który zawiera dokładnie jedną metodę abstrakcyjną.
Jaka adnotacja jest zalecana do oznaczania interfejsów funkcyjnych w Javie?
@FunctionalInterface
Do czego służy adnotacja @FunctionalInterface?
Pomaga w walidacji, że interfejs spełnia wymogi interfejsu funkcyjnego (ma tylko jedną metodę abstrakcyjną).
W jakim pakiecie znajdują się wbudowane interfejsy funkcyjne Javy 8?
java.util.function
Do czego służy interfejs funkcyjny Function<T, R>?
Przyjmuje argument typu T i zwraca wynik typu R (metoda apply).
Do czego służy interfejs funkcyjny Predicate<T>?
Do testowania warunku na obiekcie; jego metoda test zwraca wartość boolean.
Do czego służy interfejs funkcyjny Consumer<T>?
Do wykonania operacji na obiekcie bez zwracania wyniku (metoda accept).
Który interfejs funkcyjny nie przyjmuje żadnych argumentów, a jedynie zwraca wartość?
Supplier<T> (metoda get).
Co reprezentuje interfejs BinaryOperator<T>?
Operację na dwóch argumentach tego samego typu, zwracającą wynik tego samego typu.
Co reprezentuje interfejs BiFunction<T, U, R>?
Funkcję, która przyjmuje dwa argumenty (typu T i U) i zwraca wynik typu R.
Czym jest pakiet w języku Java?
Jest to zbiór powiązanych klas i interfejsów, które są grupowane w logiczne moduły.
Jakie są trzy główne role pakietów w Javie?
Organizacja kodu, unikanie konfliktów nazw, poprawa modularności.
Podaj przykład standardowego pakietu w Javie i co on zawiera.
java.lang - podstawowe klasy jak String, Math, System.
Jaka jest zalecana konwencja nazewnictwa pakietów w Javie?
Użycie odwróconej nazwy domeny internetowej organizacji, pisanej małymi literami.
Jak deklaruje się przynależność klasy do pakietu?
Za pomocą słowa kluczowego package jako pierwszej linii w pliku źródłowym.
Do czego służy instrukcja import?
Umożliwia używanie klas z innych pakietów bez podawania ich pełnej nazwy kwalifikowanej.
Jak zaimportować wszystkie klasy z pakietu java.util?
import java.util.*;
Do czego służą kwalifikatory dostępu?
Określają, jakie inne klasy lub pakiety mogą korzystać z klas, pól i metod.
Jaki zakres dostępu ma kwalifikator public?
Dostęp wszędzie.
Jaki zakres dostępu ma kwalifikator protected?
Dostęp w pakiecie oraz w podklasach.
Jaki zakres dostępu ma kwalifikator private?
Dostęp tylko w obrębie tej samej klasy.
Jaki jest domyślny kwalifikator dostępu (jeśli żaden nie zostanie podany)?
Dostęp tylko w obrębie pakietu (default).
Do czego służy struktura try-catch-finally?
Do przechwytywania i obsługi błędów (wyjątków) w Javie.
Który blok w konstrukcji try-catch-finally jest zawsze wykonywany, niezależnie od wystąpienia wyjątku?
Blok finally.
Do czego służy słowo kluczowe throw?
Do ręcznego rzucenia instancji wyjątku.
Co oznacza słowo kluczowe throws w sygnaturze metody?
Deklaruje, że metoda może rzucić określony typ wyjątku, którego nie obsługuje.
Czym są "checked exceptions" (wyjątki sprawdzane)?
Są to wyjątki dziedziczące po Exception (ale nie RuntimeException), które kompilator wymusza, aby obsłużyć.
Podaj przykład "checked exception".
IOException, SQLException.
Czym są "unchecked exceptions" (wyjątki niesprawdzane)?
Są to wyjątki dziedziczące po RuntimeException, których obsługa nie jest wymuszana przez kompilator.
Podaj przykład "unchecked exception".
NullPointerException, ArrayIndexOutOfBoundsException.
Jaka jest najwyższa klasa w hierarchii wyjątków w Javie?
Throwable.
Na jakie dwie główne podklasy dzieli się klasa Throwable?
Error i Exception.
Czym są obiekty klasy Error?
Wskazują na poważne problemy, których aplikacja zwykle nie jest w stanie obsłużyć, np. OutOfMemoryError.
Kiedy rzucany jest wyjątek NullPointerException?
Gdy próbujemy wywołać metodę lub odwołać się do pola na referencji o wartości null.
Jak można stworzyć własną klasę wyjątku sprawdzanego (checked)?
Dziedzicząc po klasie Exception.
Jak można stworzyć własną klasę wyjątku niesprawdzanego (unchecked)?
Dziedzicząc po klasie RuntimeException.
Czym jest klasa w programowaniu obiektowym?
Jest szablonem lub wzorcem, na podstawie którego tworzone są obiekty.
Co może zawierać klasa w Javie?
Pola, metody, konstruktory, blok inicjalizacyjny, klasy zagnieżdżone.
Co to jest obiekt w kontekście Javy?
Konkretna instancja klasy, posiadająca stan i zachowanie.
Do czego służy słowo kluczowe new?
Do tworzenia nowej instancji obiektu.
Czym są atrybuty instancyjne (pola)?
Są to zmienne przechowujące stan obiektu; każda instancja ma własną kopię.
Do czego służy słowo kluczowe this?
Do odwołania się do bieżącej instancji obiektu, np. w celu odróżnienia pola od parametru.
Czym są atrybuty statyczne?
Są to pola wspólne dla wszystkich instancji danej klasy, zdefiniowane na poziomie klasy.
Jak odwołać się do atrybutu statycznego PI w klasie Math?
Math.PI
Czym charakteryzują się metody statyczne?
Nie działają na konkretnym obiekcie, są wywoływane na poziomie klasy i nie mają dostępu do atrybutów instancyjnych.
Co to jest konstruktor?
Specjalna metoda wywoływana podczas tworzenia obiektu, służąca do inicjalizacji jego stanu.
Do czego służą tablice w Javie?
Do przechowywania wielu elementów tego samego typu w jednej strukturze o stałym rozmiarze.
Czy rozmiar tablicy w Javie może być zmieniony po jej utworzeniu?
Nie, rozmiar tablicy jest stały.
Jaką wartość ma pierwszy indeks w tablicy?
0 (zero).
Jak uzyskać dostęp do długości tablicy o nazwie mojaTablica?
mojaTablica.length
Jaka klasa w Javie dostarcza wbudowane metody do operacji na tablicach (np. sortowania)?
java.util.Arrays.
Do czego służą instrukcje warunkowe?
Do podejmowania decyzji i wykonywania różnych fragmentów kodu w zależności od spełnienia warunków.
Do czego służy instrukcja switch?
Do wyboru jednej z wielu opcji na podstawie wartości wyrażenia, jako alternatywa dla if-else if-else.
Co, od Javy 17, umożliwia słowo kluczowe yield w instrukcji switch?
Pozwala na zwrócenie wartości ze switch'a, czyniąc go wyrażeniem.
Jakie są cztery rodzaje pętli w Javie?
for, for-each, while, do-while.
Jakie są trzy części nagłówka klasycznej pętli for?
Inicjalizacja; warunek; aktualizacja.
Do czego służy pętla for-each?
Do iteracji przez wszystkie elementy kolekcji lub tablicy bez potrzeby manualnego zarządzania indeksem.
Jaka jest podstawowa różnica między pętlą while a do-while?
Pętla do-while wykonuje swój blok kodu co najmniej raz, ponieważ warunek jest sprawdzany na końcu.
Co robi instrukcja break?
Natychmiast przerywa wykonanie pętli lub bloku switch.
Co robi instrukcja continue?
Pomija bieżącą iterację pętli i przechodzi do następnej.
Do czego służy instrukcja return?
Do zakończenia wykonania metody i ewentualnego zwrócenia wartości.
Do czego służą komentarze w kodzie?
Do dokumentowania kodu i pozostawiania notatek; są ignorowane przez kompilator.
Jakiego słowa kluczowego używa się do deklaracji stałej w Javie?
final.
Jaka jest konwencja nazewnictwa stałych w Javie?
Wielkie litery, a słowa oddzielone podkreślnikiem (np. MAX_VALUE).
Co zwraca operator % (modulo)?
Resztę z dzielenia.
Jaki operator służy do sprawdzania, czy dwie wartości są równe?
==.
Jaki operator służy do sprawdzania, czy dwie wartości są różne?
!=.
Co oznacza operator &&?
Logiczne "I" (AND) z ewaluacją skróconą.
Co oznacza operator ||?
Logiczne "LUB" (OR) z ewaluacją skróconą.
Do czego służą operatory ++ i --?
Do inkrementacji (zwiększenia o 1) i dekrementacji (zmniejszenia o 1) wartości.
Jak nazywa się i działa operator ? :?
Operator warunkowy (ternarny); warunek ? wartosc_gdy_prawda : wartosc_gdy_falsz.
Co określa priorytet operatorów?
Kolejność, w jakiej operatory są wykonywane w wyrażeniach.
Który z operatorów ma wyższy priorytet: * czy +?
Mnożenie *.
Kto jest uznawany za twórcę Javy?
James Gosling.
Co oznacza zasada "Write Once, Run Anywhere" (WORA)?
Kod napisany w Javie może być uruchamiany na różnych platformach bez ponownej kompilacji.
Czym jest Maszyna Wirtualna Java (JVM)?
Środowiskiem uruchomieniowym, które interpretuje i wykonuje kod bajtowy Javy, zapewniając przenośność.
Co to jest kompilacja "Just-In-Time" (JIT)?
Technika, w której JVM kompiluje kod bajtowy do kodu maszynowego w trakcie jego wykonywania, co poprawia wydajność.
Czym jest OpenJDK?
Projektem open source zawierającym referencyjną implementację Javy.
Do czego służy klasa ClassLoader w JVM?
Do dynamicznego ładowania klas Javy do JVM podczas działania aplikacji.
Wymień cztery główne filary programowania obiektowego (OOP) w Javie.
Abstrakcja, enkapsulacja, dziedziczenie, polimorfizm.