Java vs C++: Kolekcje i Programowanie Równoległe
50 Questions
0 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

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?

  • `ArrayList`
  • Żadna z powyższych
  • `LinkedList`
  • `HashSet` (correct)

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?

<p><code>synchronized</code> (A)</p> Signup and view all the answers

Który interfejs w Javie pozwala na wykonanie zadania współbieżnie i zwrócenie wyniku?

<p><code>Callable</code> (B)</p> Signup and view all the answers

Jaką rolę pełni ExecutorService w programowaniu współbieżnym w Javie?

<p>Zarządza pulą wątków i planuje wykonywanie zadań. (C)</p> Signup and view all the answers

Który mechanizm w Javie pozwala kontrolować liczbę wątków, które mogą jednocześnie korzystać z danego zasobu?

<p>Semafory (A)</p> Signup and view all the answers

Które z poniższych stwierdzeń nie jest prawdą w kontekście użycia klasy Thread w Javie?

<p><code>start()</code> bezpośrednio wykonuje kod z metody <code>run()</code> w bieżącym wątku. (A)</p> Signup and view all the answers

Która z poniższych cech nie charakteryzuje generics w Javie?

<p>Generowanie kodu w czasie kompilacji. (A)</p> Signup and view all the answers

W jakich elementach języka Java nie można stosować generics?

<p>Polach statycznych. (C)</p> Signup and view all the answers

Które stwierdzenie najlepiej opisuje różnicę między generics w Javie a szablonami w C++?

<p>Generics w Javie zapewniają większe bezpieczeństwo typów kosztem zaawansowanych możliwości metaprogramowania oferowanych przez szablony w C++. (A)</p> Signup and view all the answers

Które z poniższych zastosowań najmniej pasuje do koncepcji generics w Javie i szablonów w C++?

<p>Bezpośrednia manipulacja pamięcią i wskaźnikami. (D)</p> Signup and view all the answers

Co charakteryzuje interfejs funkcyjny w Javie?

<p>Posiada dokładnie jedną metodę abstrakcyjną. (D)</p> Signup and view all the answers

W którym z poniższych przypadków użycie lambda-wyrażenia w Javie byłoby najmniej odpowiednie?

<p>Definiowanie złożonej logiki biznesowej wymagającej wielu stanów i operacji. (A)</p> Signup and view all the answers

Która z poniższych korzyści nie jest bezpośrednio związana z użyciem lambda-wyrażeń w Javie?

<p>Poprawa bezpieczeństwa typów. (A)</p> Signup and view all the answers

Co reprezentuje operacja .map(x -> x * 2) w kontekście Stream API w Javie?

<p>Przekształcenie każdego elementu strumienia poprzez pomnożenie go przez 2. (C)</p> Signup and view all the answers

Która z poniższych cech nie charakteryzuje Stream API w Javie?

<p>Agresywne (natychmiastowe) wykonywanie operacji. (A)</p> Signup and view all the answers

Która operacja na Stream API służy do transformacji każdego elementu strumienia na inny, stosując do niego daną funkcję?

<p>map (B)</p> Signup and view all the answers

Jaką rolę pełnią operacje pośrednie w Stream API?

<p>Zwracają nowy strumień, umożliwiając dalsze przetwarzanie. (A)</p> Signup and view all the answers

Które z poniższych nie jest kluczowym zastosowaniem Stream API?

<p>Bezpośrednia modyfikacja plików binarnych. (A)</p> Signup and view all the answers

Która z klas w pakiecie java.io służy do buforowanego odczytu danych tekstowych z pliku?

<p>BufferedReader (C)</p> Signup and view all the answers

Który element NIO (New Input/Output) umożliwia monitorowanie wielu kanałów wejścia/wyjścia przez pojedynczy wątek?

<p>Selektor (Selector) (C)</p> Signup and view all the answers

Która z poniższych zalet nie jest charakterystyczna dla nowoczesnych narzędzi NIO w porównaniu do klasycznych java.io?

<p>Operacje blokujące. (C)</p> Signup and view all the answers

W kontekście zarządzania projektem budowy oprogramowania, jaki aspekt obejmuje dobór odpowiedniej metodyki?

<p>Dostosowanie procesu wytwarzania oprogramowania do specyfiki projektu i zespołu, uwzględniając także czynniki pozatechniczne. (C)</p> Signup and view all the answers

Który z wymienionych protokołów warstwy aplikacji zapewnia szyfrowanie danych podczas transmisji?

<p>HTTPS (D)</p> Signup and view all the answers

Który protokół warstwy aplikacji odpowiada za zamianę nazw domen na adresy IP?

<p>DNS (B)</p> Signup and view all the answers

Która flaga TCP jest używana do zainicjowania nawiązania połączenia?

<p>SYN (B)</p> Signup and view all the answers

Który mechanizm protokołu TCP zapobiega przeciążeniom sieci poprzez regulację szybkości transmisji?

<p>Mechanizm okna przesuwnego (B)</p> Signup and view all the answers

Która flaga TCP służy do potwierdzenia odebrania pakietu danych?

<p>ACK (C)</p> Signup and view all the answers

Która z poniższych cech nie charakteryzuje protokołu TCP?

<p>Jest protokołem bezpołączeniowym (C)</p> Signup and view all the answers

Który z protokołów warstwy aplikacji jest bezpiecznym protokołem do zdalnego logowania?

<p>SSH (A)</p> Signup and view all the answers

Która flaga TCP sygnalizuje natychmiastowe zerwanie połączenia?

<p>RST (B)</p> Signup and view all the answers

W jakiej kolejności przebiega trójstopniowe nawiązywanie połączenia TCP?

<p>SYN, SYN-ACK, ACK (C)</p> Signup and view all the answers

Która flaga TCP wymusza natychmiastowe przesłanie bufora, pomijając buforowanie?

<p>PSH (B)</p> Signup and view all the answers

Który z poniższych przykładów najlepiej ilustruje użycie wzorca Singleton?

<p>Menedżer konfiguracji aplikacji, zapewniający globalny punkt dostępu do konfiguracji. (B)</p> Signup and view all the answers

W którym scenariuszu wzorzec Fasada byłby najbardziej odpowiedni?

<p>Gdy potrzebujemy uprościć interakcję z złożonym systemem, ukrywając jego wewnętrzną strukturę. (B)</p> Signup and view all the answers

Która z niżej wymienionych sytuacji najlepiej oddaje ideę wzorca Kompozyt?

<p>Struktura katalogów, gdzie zarówno katalogi, jak i pliki są traktowane jako elementy systemu plików. (D)</p> Signup and view all the answers

W jakich okolicznościach zastosowanie wzorca Dekorator byłoby najbardziej korzystne?

<p>Gdy chcemy dynamicznie dodawać nowe zachowania do istniejących obiektów. (B)</p> Signup and view all the answers

Które z poniższych zdań najlepiej opisuje problem rozwiązywany przez wzorzec Adapter?

<p>Pozwalanie na współpracę obiektów o niekompatybilnych interfejsach. (C)</p> Signup and view all the answers

Jaki jest główny cel stosowania wzorca Most (Bridge)?

<p>Oddzielenie abstrakcji od implementacji, umożliwiając ich niezależną zmianę. (C)</p> Signup and view all the answers

Który z poniższych scenariuszy jest najlepszym przykładem użycia wzorca Łańcuch Zobowiązań (Chain of Responsibility)?

<p>System obsługi zgłoszeń, gdzie każdy agent może obsłużyć zgłoszenie lub przekazać je dalej. (D)</p> Signup and view all the answers

W jakim celu stosuje się wzorzec Polecenie (Command)?

<p>Aby hermetyzować żądanie jako obiekt, pozwalając na parametryzację klientów różnymi żądaniami. (B)</p> Signup and view all the answers

Który z poniższych elementów nie charakteryzuje protokołu URG?

<p>Szczegółowa analiza porównawcza z innymi protokołami warstwy sieciowej. (D)</p> Signup and view all the answers

Która z poniższych cech jest najmniej charakterystyczna dla protokołu OSPF?

<p>Bezpośrednia obsługa szyfrowania end-to-end na poziomie warstwy sieciowej. (C)</p> Signup and view all the answers

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?

<p>Topologia gwiazdy (Star). (B)</p> Signup and view all the answers

Która z poniższych topologii sieci zapewnia najwyższą odporność na awarie pojedynczych węzłów?

<p>Topologia siatki (Mesh). (A)</p> Signup and view all the answers

Co najmniej charakteryzuje fizyczne aspekty transmisji w standardzie Ethernet?

<p>Określanie protokołów routingu dla wyznaczania ścieżek. (A)</p> Signup and view all the answers

Który z wymienionych mechanizmów nie jest kluczowy dla działania protokołów WiFi (802.11)?

<p>Automatyczna konfiguracja adresów IP (np. DHCP). (D)</p> Signup and view all the answers

Jaki jest główny cel stosowania obszarów w protokole OSPF?

<p>Uproszczenie zarządzania siecią i zmniejszenie obciążenia routerów. (B)</p> Signup and view all the answers

W jaki sposób protokół Ethernet radzi sobie z problemem kolizji w sieci?

<p>Stosuje algorytm CSMA/CD (Carrier Sense Multiple Access with Collision Detection). (A)</p> Signup and view all the answers

Flashcards

Tablice w Javie

Statyczna struktura danych w Javie o stałym rozmiarze, przechowująca typy proste i obiektowe.

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

Podstawowe kolekcje w Java Collections Framework: Listy (ArrayList, LinkedList), Zbiory (HashSet, TreeSet) i Mapy (HashMap, TreeMap).

Programowanie współbieżne w Javie

Mechanizm w Javie umożliwiający równoległe wykonywanie zadań, co efektywnie wykorzystuje zasoby systemowe.

Signup and view all the flashcards

Klasa Thread

Klasa w Javie reprezentująca oddzielny wątek wykonawczy, który można uruchomić i zarządzać jego cyklem życia.

Signup and view all the flashcards

Interfejs Runnable

Interfejs w Javie reprezentujący zadanie, które może być wykonywane przez wątek.

Signup and view all the flashcards

synchronized

Słowo kluczowe w Javie używane do synchronizacji dostępu do krytycznych sekcji kodu, zapobiegając wyścigom danych.

Signup and view all the flashcards

ExecutorService

Interfejs zarządzający pulą wątków, umożliwiający efektywne planowanie i wykonywanie zadań współbieżnych bez ręcznego zarządzania nimi.

Signup and view all the flashcards

Singleton

Gwarantuje, że klasa ma tylko jedną instancję i zapewnia globalny punkt dostępu do niej.

Signup and view all the flashcards

Fasada

Dostarcza uproszczony interfejs do złożonego systemu.

Signup and view all the flashcards

Kompozyt (Composite)

Pozwala traktować grupy obiektów tak samo jak pojedyncze obiekty.

Signup and view all the flashcards

Dekorator

Umożliwia dynamiczne dodawanie nowych zachowań do istniejących obiektów.

Signup and view all the flashcards

Adapter

Pozwala na współpracę obiektów o niekompatybilnych interfejsach.

Signup and view all the flashcards

Polecenie (Command)

Hermetyzuje żądanie jako obiekt, pozwalając na parametryzowanie klientów różnymi żądaniami.

Signup and view all the flashcards

Mediator

Definiuje obiekt enkapsulujący sposób interakcji zbioru obiektów.

Signup and view all the flashcards

Memento

Pozwala na zapisanie i przywrócenie wcześniejszego stanu obiektu.

Signup and view all the flashcards

Java Generics

Parametryzacja typów podczas kompilacji, zapewnia bezpieczeństwo typów, używane w kolekcjach, interfejsach i klasach.

Signup and view all the flashcards

C++ Szablony

Mechanizm generowania kodu w czasie kompilacji, pełna parametryzacja, umożliwia metaprogramowanie.

Signup and view all the flashcards

Lambda-wyrażenia (Java)

Zwięzły zapis funkcji anonimowych, przekazywanie zachowań jako parametrów, powiązane z interfejsami funkcyjnymi.

Signup and view all the flashcards

Interfejsy funkcyjne (Java)

Posiadają dokładnie jedną metodę abstrakcyjną, oznaczane adnotacją @FunctionalInterface, podstawa dla lambda-wyrażeń.

Signup and view all the flashcards

Zalety lambda-wyrażeń

Minimalizują kod, zwiększają czytelność, funkcyjne podejście, ułatwiają przetwarzanie równoległe.

Signup and view all the flashcards

Przetwarzanie strumieniowe (Java)

Mechanizm manipulacji kolekcjami, wprowadzony w Java 8.

Signup and view all the flashcards

Interfejs Operacja

Typowy interfejs funkcyjny w Javie, z jedną metodą do implementacji.

Signup and view all the flashcards

Stream API (Java)

Pozwala na filtrowanie i mapowanie elementów w strumieniu danych.

Signup and view all the flashcards

Cechy Stream API

Deklaratywne, leniwe, funkcyjne przetwarzanie danych z łatwymi operacjami równoległymi.

Signup and view all the flashcards

Rodzaje operacji Stream API

Operacje pośrednie (zwracają strumień) i terminalne (kończą strumień).

Signup and view all the flashcards

Podstawowe operacje Stream API

Filtrowanie, mapowanie, redukcja, agregacja.

Signup and view all the flashcards

Główne zalety Stream API

Zwięzłość, czytelność, wydajność, możliwość równoległego przetwarzania.

Signup and view all the flashcards

Pakiety Java I/O

klasyczne I/O, nowoczesne narzędzia nieblokujące, operacje na plikach i katalogach.

Signup and view all the flashcards

Strumienie Wejścia/Wyjścia

InputStream/OutputStream, FileInputStream/FileOutputStream, BufferedReader/BufferedWriter.

Signup and view all the flashcards

Zaawansowane mechanizmy NIO

Kanały, bufory, selektory, ścieżki i pliki.

Signup and view all the flashcards

Zalety nowoczesnych narzędzi I/O

Wydajność, nieblokujące operacje, prostsza obsługa błędów, wsparcie dla operacji asynchronicznych.

Signup and view all the flashcards

URG (Pilny)

Wskazuje pilne dane w segmencie TCP; pozwala odbiorcy szybko przetwarzać ważne informacje.

Signup and view all the flashcards

OSPF

Protokół routingu, optymalizuje trasy w sieci na podstawie kosztów łączy; skalowalny i efektywny.

Signup and view all the flashcards

Obszary OSPF

Zbiór logicznie zgrupowanych routerów OSPF, upraszczający zarządzanie dużymi sieciami.

Signup and view all the flashcards

Topologia Gwiazdy (Star)

Wszystkie urządzenia podłączone do jednego centralnego punktu.

Signup and view all the flashcards

Topologia Magistrali (Bus)

Wszystkie urządzenia podłączone do jednego kabla lub przewodu.

Signup and view all the flashcards

Topologia Pierścienia (Ring)

Urządzenia połączone w zamknięty okrąg, dane przechodzą od węzła do węzła.

Signup and view all the flashcards

Topologia Siatki (Mesh)

Wiele połączeń między urządzeniami, zwiększających niezawodność.

Signup and view all the flashcards

Topologia Drzewa (Tree)

Hierarchiczna struktura połączeń, z jednym węzłem głównym.

Signup and view all the flashcards

HTTP

Protokół wymiany dokumentów tekstowych (np. HTML) między serwerem a klientem (np. przeglądarką). Działa w trybie żądanie-odpowiedź.

Signup and view all the flashcards

HTTPS

Bezpieczna wersja HTTP, w której dane są szyfrowane przy użyciu certyfikatów SSL/TLS.

Signup and view all the flashcards

DNS

System, który tłumaczy nazwy domen (np. google.com) na adresy IP (np. 172.217.160.142).

Signup and view all the flashcards

TCP

Protokół do niezawodnej i uporządkowanej komunikacji sieciowej, zapewniający sekwencyjność i kontrolę przepływu.

Signup and view all the flashcards

Flaga SYN

Inicjuje połączenie TCP, synchronizując numery sekwencyjne.

Signup and view all the flashcards

Flaga ACK

Potwierdza odebranie pakietu w TCP i żąda następnych segmentów.

Signup and view all the flashcards

Flaga FIN

Sygnalizuje zakończenie transmisji TCP i zamyka połączenie.

Signup and view all the flashcards

Flaga RST

Natychmiastowo zrywa połączenie TCP, sygnalizując błąd.

Signup and view all the flashcards

Flaga PSH

Wymusza natychmiastowe przesłanie bufora, przyspieszając transmisję.

Signup and view all the flashcards

Flaga URG

Oznacza dane pilne i pozwala na przerwanie normalnego strumienia w TCP.

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.

Quiz Team

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.

More Like This

Use Quizgecko on...
Browser
Browser