Podcast
Questions and Answers
Która z poniższych opcji najlepiej opisuje główną różnicę między tablicami w Javie i C++?
Która z poniższych opcji najlepiej opisuje główną różnicę między tablicami w Javie i C++?
- W Javie tablice zarządzają pamięcią ręcznie, a w C++ automatycznie.
- W Javie tablice są indeksowane od 1, a w C++ od 0.
- W Javie tablice mogą przechowywać tylko typy proste, a w C++ tylko obiekty.
- W Javie tablice mają stały rozmiar, a w C++ można dynamicznie alokować pamięć dla tablic. (correct)
Która z poniższych kolekcji w Java Collections Framework nie implementuje interfejsu List
?
Która z poniższych kolekcji w Java Collections Framework nie implementuje interfejsu List
?
- `ArrayList`
- Żadna z powyższych
- `LinkedList`
- `HashSet` (correct)
Co odróżnia Java Collections Framework od Standard Template Library (STL) w C++?
Co odróżnia Java Collections Framework od Standard Template Library (STL) w C++?
- Java Collections Framework oferuje generyczne struktury i automatyczne zarządzanie pamięcią. (correct)
- STL nie wspiera wzorców kontenerów, które są dostępne w Java Collections Framework.
- Java Collections Framework oferuje większą kontrolę niskopoziomową niż STL.
- STL automatycznie zarządza pamięcią, w przeciwieństwie do Java Collections Framework.
Które słowo kluczowe w Javie służy do synchronizacji bloków kodu, aby zapobiec wyścigom danych w programowaniu współbieżnym?
Które słowo kluczowe w Javie służy do synchronizacji bloków kodu, aby zapobiec wyścigom danych w programowaniu współbieżnym?
Który interfejs w Javie pozwala na wykonanie zadania współbieżnie i zwrócenie wyniku?
Który interfejs w Javie pozwala na wykonanie zadania współbieżnie i zwrócenie wyniku?
Jaką rolę pełni ExecutorService
w programowaniu współbieżnym w Javie?
Jaką rolę pełni ExecutorService
w programowaniu współbieżnym w Javie?
Który mechanizm w Javie pozwala kontrolować liczbę wątków, które mogą jednocześnie korzystać z danego zasobu?
Który mechanizm w Javie pozwala kontrolować liczbę wątków, które mogą jednocześnie korzystać z danego zasobu?
Które z poniższych stwierdzeń nie jest prawdą w kontekście użycia klasy Thread
w Javie?
Które z poniższych stwierdzeń nie jest prawdą w kontekście użycia klasy Thread
w Javie?
Która z poniższych cech nie charakteryzuje generics w Javie?
Która z poniższych cech nie charakteryzuje generics w Javie?
W jakich elementach języka Java nie można stosować generics?
W jakich elementach języka Java nie można stosować generics?
Które stwierdzenie najlepiej opisuje różnicę między generics w Javie a szablonami w C++?
Które stwierdzenie najlepiej opisuje różnicę między generics w Javie a szablonami w C++?
Które z poniższych zastosowań najmniej pasuje do koncepcji generics w Javie i szablonów w C++?
Które z poniższych zastosowań najmniej pasuje do koncepcji generics w Javie i szablonów w C++?
Co charakteryzuje interfejs funkcyjny w Javie?
Co charakteryzuje interfejs funkcyjny w Javie?
W którym z poniższych przypadków użycie lambda-wyrażenia w Javie byłoby najmniej odpowiednie?
W którym z poniższych przypadków użycie lambda-wyrażenia w Javie byłoby najmniej odpowiednie?
Która z poniższych korzyści nie jest bezpośrednio związana z użyciem lambda-wyrażeń w Javie?
Która z poniższych korzyści nie jest bezpośrednio związana z użyciem lambda-wyrażeń w Javie?
Co reprezentuje operacja .map(x -> x * 2)
w kontekście Stream API w Javie?
Co reprezentuje operacja .map(x -> x * 2)
w kontekście Stream API w Javie?
Która z poniższych cech nie charakteryzuje Stream API w Javie?
Która z poniższych cech nie charakteryzuje Stream API w Javie?
Która operacja na Stream API służy do transformacji każdego elementu strumienia na inny, stosując do niego daną funkcję?
Która operacja na Stream API służy do transformacji każdego elementu strumienia na inny, stosując do niego daną funkcję?
Jaką rolę pełnią operacje pośrednie w Stream API?
Jaką rolę pełnią operacje pośrednie w Stream API?
Które z poniższych nie jest kluczowym zastosowaniem Stream API?
Które z poniższych nie jest kluczowym zastosowaniem Stream API?
Która z klas w pakiecie java.io
służy do buforowanego odczytu danych tekstowych z pliku?
Która z klas w pakiecie java.io
służy do buforowanego odczytu danych tekstowych z pliku?
Który element NIO (New Input/Output) umożliwia monitorowanie wielu kanałów wejścia/wyjścia przez pojedynczy wątek?
Który element NIO (New Input/Output) umożliwia monitorowanie wielu kanałów wejścia/wyjścia przez pojedynczy wątek?
Która z poniższych zalet nie jest charakterystyczna dla nowoczesnych narzędzi NIO w porównaniu do klasycznych java.io
?
Która z poniższych zalet nie jest charakterystyczna dla nowoczesnych narzędzi NIO w porównaniu do klasycznych java.io
?
W kontekście zarządzania projektem budowy oprogramowania, jaki aspekt obejmuje dobór odpowiedniej metodyki?
W kontekście zarządzania projektem budowy oprogramowania, jaki aspekt obejmuje dobór odpowiedniej metodyki?
Który z wymienionych protokołów warstwy aplikacji zapewnia szyfrowanie danych podczas transmisji?
Który z wymienionych protokołów warstwy aplikacji zapewnia szyfrowanie danych podczas transmisji?
Który protokół warstwy aplikacji odpowiada za zamianę nazw domen na adresy IP?
Który protokół warstwy aplikacji odpowiada za zamianę nazw domen na adresy IP?
Która flaga TCP jest używana do zainicjowania nawiązania połączenia?
Która flaga TCP jest używana do zainicjowania nawiązania połączenia?
Który mechanizm protokołu TCP zapobiega przeciążeniom sieci poprzez regulację szybkości transmisji?
Który mechanizm protokołu TCP zapobiega przeciążeniom sieci poprzez regulację szybkości transmisji?
Która flaga TCP służy do potwierdzenia odebrania pakietu danych?
Która flaga TCP służy do potwierdzenia odebrania pakietu danych?
Która z poniższych cech nie charakteryzuje protokołu TCP?
Która z poniższych cech nie charakteryzuje protokołu TCP?
Który z protokołów warstwy aplikacji jest bezpiecznym protokołem do zdalnego logowania?
Który z protokołów warstwy aplikacji jest bezpiecznym protokołem do zdalnego logowania?
Która flaga TCP sygnalizuje natychmiastowe zerwanie połączenia?
Która flaga TCP sygnalizuje natychmiastowe zerwanie połączenia?
W jakiej kolejności przebiega trójstopniowe nawiązywanie połączenia TCP?
W jakiej kolejności przebiega trójstopniowe nawiązywanie połączenia TCP?
Która flaga TCP wymusza natychmiastowe przesłanie bufora, pomijając buforowanie?
Która flaga TCP wymusza natychmiastowe przesłanie bufora, pomijając buforowanie?
Który z poniższych przykładów najlepiej ilustruje użycie wzorca Singleton?
Który z poniższych przykładów najlepiej ilustruje użycie wzorca Singleton?
W którym scenariuszu wzorzec Fasada byłby najbardziej odpowiedni?
W którym scenariuszu wzorzec Fasada byłby najbardziej odpowiedni?
Która z niżej wymienionych sytuacji najlepiej oddaje ideę wzorca Kompozyt?
Która z niżej wymienionych sytuacji najlepiej oddaje ideę wzorca Kompozyt?
W jakich okolicznościach zastosowanie wzorca Dekorator byłoby najbardziej korzystne?
W jakich okolicznościach zastosowanie wzorca Dekorator byłoby najbardziej korzystne?
Które z poniższych zdań najlepiej opisuje problem rozwiązywany przez wzorzec Adapter?
Które z poniższych zdań najlepiej opisuje problem rozwiązywany przez wzorzec Adapter?
Jaki jest główny cel stosowania wzorca Most (Bridge)?
Jaki jest główny cel stosowania wzorca Most (Bridge)?
Który z poniższych scenariuszy jest najlepszym przykładem użycia wzorca Łańcuch Zobowiązań (Chain of Responsibility)?
Który z poniższych scenariuszy jest najlepszym przykładem użycia wzorca Łańcuch Zobowiązań (Chain of Responsibility)?
W jakim celu stosuje się wzorzec Polecenie (Command)?
W jakim celu stosuje się wzorzec Polecenie (Command)?
Który z poniższych elementów nie charakteryzuje protokołu URG?
Który z poniższych elementów nie charakteryzuje protokołu URG?
Która z poniższych cech jest najmniej charakterystyczna dla protokołu OSPF?
Która z poniższych cech jest najmniej charakterystyczna dla protokołu OSPF?
W której z poniższych topologii sieci, uszkodzenie jednego węzła centralnego spowoduje odcięcie komunikacji dla wszystkich pozostałych węzłów?
W której z poniższych topologii sieci, uszkodzenie jednego węzła centralnego spowoduje odcięcie komunikacji dla wszystkich pozostałych węzłów?
Która z poniższych topologii sieci zapewnia najwyższą odporność na awarie pojedynczych węzłów?
Która z poniższych topologii sieci zapewnia najwyższą odporność na awarie pojedynczych węzłów?
Co najmniej charakteryzuje fizyczne aspekty transmisji w standardzie Ethernet?
Co najmniej charakteryzuje fizyczne aspekty transmisji w standardzie Ethernet?
Który z wymienionych mechanizmów nie jest kluczowy dla działania protokołów WiFi (802.11)?
Który z wymienionych mechanizmów nie jest kluczowy dla działania protokołów WiFi (802.11)?
Jaki jest główny cel stosowania obszarów w protokole OSPF?
Jaki jest główny cel stosowania obszarów w protokole OSPF?
W jaki sposób protokół Ethernet radzi sobie z problemem kolizji w sieci?
W jaki sposób protokół Ethernet radzi sobie z problemem kolizji w sieci?
Flashcards
Tablice w Javie
Tablice w Javie
Statyczna struktura danych w Javie o stałym rozmiarze, przechowująca typy proste i obiektowe.
Java Collections Framework
Java Collections Framework
Interfejs w Javie zapewniający generyczne struktury danych z automatycznym zarządzaniem pamięcią i bogatym zestawem metod manipulacji.
Kolekcje bazowe w Javie
Kolekcje bazowe w Javie
Podstawowe kolekcje w Java Collections Framework: Listy (ArrayList, LinkedList), Zbiory (HashSet, TreeSet) i Mapy (HashMap, TreeMap).
Programowanie współbieżne w Javie
Programowanie współbieżne w Javie
Signup and view all the flashcards
Klasa Thread
Klasa Thread
Signup and view all the flashcards
Interfejs Runnable
Interfejs Runnable
Signup and view all the flashcards
synchronized
synchronized
Signup and view all the flashcards
ExecutorService
ExecutorService
Signup and view all the flashcards
Singleton
Singleton
Signup and view all the flashcards
Fasada
Fasada
Signup and view all the flashcards
Kompozyt (Composite)
Kompozyt (Composite)
Signup and view all the flashcards
Dekorator
Dekorator
Signup and view all the flashcards
Adapter
Adapter
Signup and view all the flashcards
Polecenie (Command)
Polecenie (Command)
Signup and view all the flashcards
Mediator
Mediator
Signup and view all the flashcards
Memento
Memento
Signup and view all the flashcards
Java Generics
Java Generics
Signup and view all the flashcards
C++ Szablony
C++ Szablony
Signup and view all the flashcards
Lambda-wyrażenia (Java)
Lambda-wyrażenia (Java)
Signup and view all the flashcards
Interfejsy funkcyjne (Java)
Interfejsy funkcyjne (Java)
Signup and view all the flashcards
Zalety lambda-wyrażeń
Zalety lambda-wyrażeń
Signup and view all the flashcards
Przetwarzanie strumieniowe (Java)
Przetwarzanie strumieniowe (Java)
Signup and view all the flashcards
Interfejs Operacja
Interfejs Operacja
Signup and view all the flashcards
Stream API (Java)
Stream API (Java)
Signup and view all the flashcards
Cechy Stream API
Cechy Stream API
Signup and view all the flashcards
Rodzaje operacji Stream API
Rodzaje operacji Stream API
Signup and view all the flashcards
Podstawowe operacje Stream API
Podstawowe operacje Stream API
Signup and view all the flashcards
Główne zalety Stream API
Główne zalety Stream API
Signup and view all the flashcards
Pakiety Java I/O
Pakiety Java I/O
Signup and view all the flashcards
Strumienie Wejścia/Wyjścia
Strumienie Wejścia/Wyjścia
Signup and view all the flashcards
Zaawansowane mechanizmy NIO
Zaawansowane mechanizmy NIO
Signup and view all the flashcards
Zalety nowoczesnych narzędzi I/O
Zalety nowoczesnych narzędzi I/O
Signup and view all the flashcards
URG (Pilny)
URG (Pilny)
Signup and view all the flashcards
OSPF
OSPF
Signup and view all the flashcards
Obszary OSPF
Obszary OSPF
Signup and view all the flashcards
Topologia Gwiazdy (Star)
Topologia Gwiazdy (Star)
Signup and view all the flashcards
Topologia Magistrali (Bus)
Topologia Magistrali (Bus)
Signup and view all the flashcards
Topologia Pierścienia (Ring)
Topologia Pierścienia (Ring)
Signup and view all the flashcards
Topologia Siatki (Mesh)
Topologia Siatki (Mesh)
Signup and view all the flashcards
Topologia Drzewa (Tree)
Topologia Drzewa (Tree)
Signup and view all the flashcards
HTTP
HTTP
Signup and view all the flashcards
HTTPS
HTTPS
Signup and view all the flashcards
DNS
DNS
Signup and view all the flashcards
TCP
TCP
Signup and view all the flashcards
Flaga SYN
Flaga SYN
Signup and view all the flashcards
Flaga ACK
Flaga ACK
Signup and view all the flashcards
Flaga FIN
Flaga FIN
Signup and view all the flashcards
Flaga RST
Flaga RST
Signup and view all the flashcards
Flaga PSH
Flaga PSH
Signup and view all the flashcards
Flaga URG
Flaga URG
Signup and view all the flashcards
Study Notes
Całka Nieoznaczona
- W uproszczeniu, to wzór na pole powierzchni pod krzywą.
- Jest to operacja matematyczna, w której szukamy funkcji pierwotnej, co daje przybliżony wynik.
- Oznacza się ją ∫f(x)dx=F(x)+C, gdzie f(x) to funkcja podcałkowa, F(x) to funkcja pierwotna, a C to stała całkowania.
Całka Oznaczona
- Pozwala na obliczenie pola pod wykresem funkcji na określonym przedziale.
- Stosuje się ją do obliczania pola pod wykresem.
- Oznacza się ją symbolem ∫abf(x)dx = F(b) - F(a).
Różnica Między Oznaczoną a Nieoznaczoną
- Całka nieoznaczona daje ogólny, przybliżony wynik, natomiast oznaczona daje wynik konkretny.
Techniki Obliczania
- Przez podstawianie: stosuje się, gdy jedna część wyrażenia ma w sobie drugą część np. e^(2x^2)
- Przez części: stosuje się np. gdy jedna z części wygląda tak, jakby była stworzona z pochodnej, np. $e^x$.
Wielomian
- Funkcja algebraiczna, która jest sumą składników, wyrażona wzorem F(x) = ao + a1x + a2x² + … + axn.
Szereg Taylora
- To nieskończona suma.
- Służy do oszacowania wyglądu funkcji.
- Pozwala na aproksymację i jest wyrażony wzorem f(x) = f(a) + f'(a)(x-a) + f''(a)(x-a)²/2! + ...
Twierdzenie Kroneckera-Capellego
- Układ równań liniowych ma rozwiązanie, gdy rząd macierzy A jest równy rządowi macierzy rozszerzonej A|B, gdzie rząd macierzy to liczba liniowo niezależnych wierszy (schodków po eliminacji Gaussa).
- Ma dokładnie jedno rozwiązanie, gdy rząd(A) == rząd(B) == n, gdzie n to liczba niewiadomych.
- Ma nieskończenie wiele rozwiązań, gdy rząd(A) == rząd(B) < n.
- Jest sprzeczny, gdy rząd(A) != rząd(B).
Macierze
- Do rozwiązywania układów równań liniowych można użyć Metody Eliminacji Gaussa, która polega na eliminacji współczynników niewiadomych za pomocą operacji elementarnych na wierszach macierzy.
Bazy Danych
- Podstawową cechą relacyjnych baz danych jest przechowywanie danych w tabelach, które składają się z kolumn (atrybutów) i wierszy (rekordów).
- Integralność danych jest zapewniona dzięki ograniczeniom, takim jak klucz podstawowy (unikatowy i wystarczalny do identyfikacji rekordu) oraz klucz obcy (opcjonalny, służący do określania powiązań między tabelami).
- Diagramy związków encji (tabel) służą do wizualizacji struktury bazy danych, precyzyjnego określania wymagań, optymalizacji projektowania bazy oraz generowania fizycznych schematów.
- Ważne jest, aby ograniczyć zależność atrybutów do klucza głównego.
Współbieżność Pracy Wielu Użytkowników w Systemie Zarządzania Bazami Danych
- Mechanizm transakcji pilnuje stanu bazy danych, zapobiegając problemom jednoczesnego modyfikowania danych przez wielu użytkowników.
Podstawowe Obiekty, Konstrukcje i Znaczenie Języka SQL
- Język SQL składa się z obiektów bazodanowych (tabele, widoki, indeksy, procedury składowane, triggery), konstrukcji języka (SELECT, WHERE, JOIN, GROUP BY, ORDER BY) oraz operacji (DDL, DML, DCL).
- Kluczowe koncepcje to klucz główny, klucz obcy, normalizacja i transakcje.
Zasady Optymalizacji Zapytań
- Kluczowe zasady optymalizacji to analiza planu wykonania zapytania, minimalizacja skanowania pełnotabelarycznego, maksymalizacja wykorzystania indeksów oraz redukcja liczby operacji łączenia.
- Rodzaje indeksów to B-drzewa (dobre dla wyszukiwania zakresów), klastrowy (determinuje fizyczne ułożenie danych), nieklastrowy (przechowuje kopię wybranych kolumn), częściowy (obejmuje podzbiór wierszy) oraz wielokolumnowy (wykorzystuje kombinację kolumn).
Architektura Komputera wg. Von Neumanna
- Model z 1945 roku, który wprowadza rewolucyjną koncepcję przechowywania programów w tej samej pamięci, co dane.
- Składa się z pamięci, jednostki sterującej, jednostki arytmetyczno-logicznej oraz wejścia/wyjścia.
- Program i dane są przechowywane w tej samej pamięci, co pozwala na dynamiczną zmianę programów, samodzielną modyfikację kodu oraz sekwencyjne przetwarzanie instrukcji.
Maszyna Turinga
- Abstrakcyjny model obliczeniowy z 1936 roku składający się z nieskończonej taśmy, ruchomej głowicy oraz zestawu stanów i reguł przejścia.
- Jest zdolna do symulacji dowolnego algorytmu, uniwersalna obliczeniowo i umożliwia rozwiązywanie problemów decyzyjnych.
Porównanie z Modelem von Neumanna
- Model von Neumanna to implementacja fizyczna architektury komputera, a Maszyna Turinga to abstrakcyjny model obliczeniowy.
Logika Boolowska w Warstwie Sprzętowej Komputerów
- W komputerach do reprezentacji logicznej używa się 0 (false) i 1 (true).
- Działanie komputerów opiera się na kombinacji logiki boolowskiej, wykorzystującej operatory NOT, AND, OR, XOR, NAND, NOR.
- Bramki logiczne są podstawowymi elementami sprzętowymi, które implementują operatory logiki boolowskiej z użyciem tranzystorów.
- Flip-flopy i latch'e są używane do przechowywania bitów danych, a pamięci RAM i ROM zarządzają zapisem i odczytem danych.
- Działanie jednostki arytmetyczno-logicznej (ALU) w procesorze opiera się na logice boolowskiej i realizuje operacje takie jak dodawanie, przesuwanie bitowe oraz porównywanie wartości binarnych.
- Kodach binarnych, dekoderach, multiplekserach, obwodach logicznych sterują przepływem danych.
- W programowalnych układach logicznych (FPGA) projektuje się obwody logiczne na bazie logiki boolowskiej przy użyciu języków opisu sprzętu (HDL), takich jak VHDL czy Verilog.
Zapis binarny liczb całkowitych oraz zmiennoprzecinkowych
- Znaki zmiennoprzecinkowe:
- sign - bit kontrolny, jak zero to plus, jak 1 to minus ,
- exponenta - potęga, do jakiej podnosimy liczbę 2, mantysa - miejsce na faktyczną liczbę, która jest potem mnożona przez 2^Exponenta
- dlatego w językach programowania mamy zmienne signed i unsigned (unsigned nie są ujemne, a więc mają zwiększony zakres [potencjalnie więcej wartości])
Miary Efektywności Obliczeniowej
- Procesory: Mierzy się je za pomocą częstotliwości taktowania w hercach (GHz), MIPS (miliony instrukcji na sekundę) oraz benchmarków.
- Pamięć komputerowa: Mierzy się pojemność w bajtach (KB, MB, GB, TB) i szybkość (przepustowość i opóźnienie).
- Efektywność ogólna: Mierzy się za pomocą FLOPS (operacje zmiennoprzecinkowe na sekundę) oraz efektywności energetycznej (operacje na wat).
- Prawo Amdahla pokazuje, że przyspieszenie systemu przez dodawanie procesorów nie jest liniowe, a wydajność jest ograniczona przez "wąskie gardła".
Prawo Moore'a
- Prawo Moore’a, sformułowane w 1965 roku, mówi o podwajaniu się liczby tranzystorów w układach scalonych co 18-24 miesiące, przy zachowaniu tej samej ceny.
- To prawo empiryczne miało ogromny wpływ na rozwój przemysłu komputerowego, umożliwiając powstanie coraz bardziej zaawansowanych aplikacji i systemów.
- Miniaturyzacja komponentów doprowadziła do powstania urządzeń przenośnych.
- Wzrost mocy obliczeniowej democratyzował dostęp do technologii. Problemem jest dochodzenie do fizycznych granic miniaturyzacji. Konieczne jest poszukiwania rozwiązań alternatywnych.
Szacowanie Złożoności Algorytmów
- Istnieją klasy złożoności problemów algorytmicznych, za pomocą notacji Big O, Theta i Omega.
- Notacja Big O (O) reprezentuje najgorszy możliwy przypadek.
- Oznacza to, że dla dostatecznie dużych danych wejściowych f(n), istnieje stała c oraz funkcja g(n) taka, że f(n) <= c*g(n)
- Notacja Omega (Ω) : reprezentuje najlepszy możliwy przypadek. Oznacza to, że dla dostatecznie dużych danych wejściowych f(n), istnieje stała c oraz funkcja g(n) taka, że f(n) >= c*g(n)
- Notacja Theta: Oznacza dokładne oszacowanie złożoności algorytmu,czyli dla dostatecznie dużych danych wejściowych f(n), istnieją stałe c1 i c2 oraz funkcja g(n) taka, że c1g(n) <= f(n) <= c2g(n).
Najważniejsze Algorytmy Wyszukiwania i Sortowania
- Merge Sort (złożoność: O(n log n)), dzieli tablicę na mniejsze części, sortuje i łączy, potrzebuje dodatkowej pamięci,
- Selection Sort* (złożoność: O(n2)), znajduje najmniejszy element i umieszcza go na właściwej pozycji.
- Insertion Sort (złożoność: O(n2)), działa jak układanie kart, efektywny dla prawie posortowanych danych.
- Quick Sort (złożoność: O(n log n) średnio), wybiera element rozdzielający i dzieli tablicę na mniejsze części.
- Wyszukiwanie liniowe (złożoność: O(n)) działa na nieuporządkowanych danych. Wyszukiwanie binarne (złożoność: O(log n)) wymaga posortowanej tablicy.
- Interpolacyjne -> udoskonalenie binarnego dla równomiernie rozłożonych danych, Wyszukiwanie z haszowaniem oferuje teoretycznie stały czas dostępu.
Podstawowe Struktury Danych
- Stos (Stack): zasada LIFO (Last In First Out), operacje: push, pop, peek. Zastosowania: zarządzanie wywołaniami funkcji, sprawdzanie nawiasowania, funkcja "cofnij", obliczanie wyrażeń w notacji postfiksowej, przechodzenie drzew w głąb (DFS).
- Kolejka (Queue): zasada FIFO (First In First Out), operacje: enqueue, dequeue, front. Zastosowania: szeregowanie zadań, algorytm przeszukiwania wszerz (BFS), buforowanie danych.
- Kolejka Priorytetowa (Priority Queue): każdy element ma priorytet, implementacja za pomocą kopca binarnego (binary heap), operacje: insert, extract_max/min, peek. Zastosowania: planowanie zadań, algorytm Dijkstry, kodowanie Huffmana.
- Find-Union: zarządza zbiorami rozłącznymi, operacje: find, union, makeSet. Zastosowania: wykrywanie cykli w grafach, algorytm Kruskala, grupowanie elementów w klastry.
- Słownik (Dictionary/Map/Hashmap): przechowuje pary klucz-wartość, operacje: wstawianie, usuwanie, wyszukiwanie, implementacja za pomocą tablicy z haszowaniem.
Algorytmy Rekurencyjne vs Iteracyjne
- Rekurencyjne rozbijają problem na mniejsze podproblemy tego samego typu, podczas gdy iteracyjne rozwiązują problem krok po kroku.
- Rekurencyjne zazwyczaj krótszy i czytelny kod, ale zużywa więcej pamięci i ryzyko przepełnienia stosu.
- Iteracyjne mają dłuższy kod, ale bardziej przewidywalny i stałe zużycie pamięci.
Klasy, Interfejsów i Mixinów
- Kompozycja nad dziedziczeniem preferuje tworzenie obiektów poprzez składanie mniejszych komponentów, zamiast tworzenia rozbudowanych hierarchii dziedziczenia.
Dziedziczenia w Javie i C++
- Java: Domyślnie wszystkie klasy dziedziczą po Object, C++ umożliwia dziedziczenie wielokrotne
- w Javie:
class Pochodna extends Bazowa
, w C++:class Pochodna: public/private/protected Bazowa
- W Javie wszystkie metody domyślne sa wirtualne, w C++: wymaga słowa kluczowego
virtual
- Interfejsy i klasy abstrakcyjne:
- w Javie: Interfejsy moga zawierać metody domyślne (od Java 8), Wielokrotna implementacja interfejsów, Metody w interfejsach domyślnie publiczne i abstrakcyjne
- ** w C++**: Brak bezpośredniego odpowiednika interfejsu, Używa czystych klas abstrakcyjnych, Więcej możliwości definiowania złożonych kontraktów Final - zapobieganie dalszemu dziedziczeniu, override - jawne oznaczenie nadpisywania metody W C++ problem diamentu i Właściwe zarządzanie pamięcią
Polimorfizm w Javie i C++
- Polimorfizm to umożliwienie traktowania obiektów różnych typów w sposób jednolity poprzez wspólny interfejs lub klasę bazową.
- Realizowany poprzez przeciążanie metod w czasie kompilacji (statyczny) oraz nadpisywanie metod w czasie wykonywania (dynamiczny).
Użycie Tablic oraz innych Struktur Danych w Javie i C++
- Java ma bezpieczne i wygodne API Java Collections Framework, podczas gdy C++ oferuje wydajniejszą (ale wymagającą większej kontroli) STL.
- Java jest bardziej bezpieczna w uzyciu a C++ wydajna
Programowanie Współbieżne w języku Java
- Ma Thready ma Runnable
- synchronizacja, Słowo kluczowe
synchronized
Blokowanie dostępu do krytycznych sekcji, zapobieganie wyścigom danych - Pakiet
java.util.concurrent
Zapewnia Zaawansowane narzędzia synchronizacji oraz zarządzania wątkami Executor Service- Interfejs w celu zarządzenia wątkami. - Blokady - bardziej elastyczna kontroli nad dostepem od synchroniozed.
Typy i Metedy Spraametryzowane - Genricity i Temaplates
- Paramertyzacja w czasi Kompilacj w javie , pelana Parmeratyzacaj w czasia kompilaci C++
- Java bezpieczeństwo i prostota, C++: zaawansowane możliwości metaprogramowania , Wspolona Elatycznosci
- Tworznie Srtuktu danych genryncznych
Lambda
- zwiezle anoniomwe , moga przekzaywac w parametrach ,powiazea ze srodkwami funckyjnymi
Sprwtwarzanie STrimweniowa
- Deklarwastywne , wykowynanie , wsparcia funkcjona , latwes.
Operacje wejście-wyjście
- Strimenie we jscioi /WYscioi ,
- Odczyt/Zapisu Plikow
Rodzai dzialań w zarządzanu projektem budowy oprogramowania
- Rodzaj dzialań: a. Określ cel projektu b. Ustal zasoby (ludzkie, pieniężne) c. Stwórz harmonogram i wymagania d. Zarządzaj projektem
Język UML – charakterysryka
-Zunifikowny jesykaik notacji dla systemow - uzywamy dowizulanzacji
-Projektejei uzycie
Zalety UML:Standaryzacja notacji
Ramy Programistyczne
Po Co Stoswoac frameworks? -Przysipeszanie -zwiekszja jakosc.
Zapseniene Jakosci oraz Testownaia
Testy jednoskoe integrancyje /systemowe/Akcentacjne/End2End
ROdiadaze
Funkcjoanlnei/ nEIfunkcjoalni/BIzneasowy
- Dokumentacja tekstowa scenariusza Roal dzialan ,kominakiacja ,Podstawy projketownian.
Uslugi Warstwy Transpoprtu przy kladzi
W zaleznoski wysoak Niezawodnosc , Utrzymana porzaek SYN /ACK/FIN /RST/SH UrG ,wymiane
Warstwy podpiwania sieici ,
- Obszawe w OSPF .
- Uslugi warstaw zloncaz ,
WIeloSAklaniowe Logwanai
Haslo/Bimotria , Certyifa,Kty Protololy Beziecznejstwa
Ochrnia Daycn w Transki
Dzieki zchorywanie Asmotre,ycnze . symotrnez Model Barw :RBG /B HSV .Szerokosi Zapsoyuik
Efekt alisaingu
- Źle Odzowneia sie.
- Filtorwnie Dobro Przypus.
- Wiekszanie Crzsoytnosici Zaspoyikwaan
Zapsady Heurystiycne :
- Proste , Sytaucje .
- Upraszanie Stron
- Stosawaine elementow
Elementy Panows Redostory Cewyi
- Filt dolopzepustow.
Archireytkura Hard
Rozloncznye Pimeci , Zoptymiazowne .
Mikrozroaniza
Różne dzialani, Minima casus.
Porti Kominukeja, Mikozioryaniza
- Wiele interwfejsow.
Systemy
Monolityczne Hardwerowye /Zarazdzani .
Srzeregowaina
CFS/ Minaiczacai zasow.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Related Documents
Description
Sprawdź swoją wiedzę na temat różnic między Javą a C++ w obszarze kolekcji danych i programowania współbieżnego. Quiz obejmuje porównanie Java Collections Framework ze Standard Template Library (STL) oraz koncepcje synchronizacji wątków i generics.