Klasa - obiekt Flashcards

1
Q

Jaka jest różnica między klasą a obiektem w javie?

A

Podstawowe pojęcia OOP-
Klasa jest modelem do tworzenia obiektów. Definiuje, w jaki sposób obiekt ma być zbudowany. Klasy są zestawem instrukcji do tworzenia obiektów ze wspólnymi właściwościami i metodami.
Klasa powinna charakteryzować się enkapsulacją.
Obiekt jest instancją klasy. jest to konkretna encja tworzona na bazie klasy. Obiekty mają swoje unikalne wartości i mogą wykonywać metody klasy. Każdy obiekt jest oddzielny, ma swój własny stan i zachowanie

Przykład klasa to dom, definiuje rozmair, wygląd, cechy. Obiekt to konkretny dom wybudowany na bazie klasy. Każdy obiket ma cechy charakterystyczne tylko dla siebie.

Klasa jest wykorzystywana wielokrotnie do tworzenia różnych obiektów

java
Copy code
// Class definition
class Car {
// Class attributes
String make;
String model;
int year;

// Class constructor
public Car(String make, String model, int year) {
    this.make = make;
    this.model = model;
    this.year = year;
}

// Class method
public void startEngine() {
    System.out.println("The " + year + " " + make + " " + model + " engine is started.");
} }

public class Main {
public static void main(String[] args) {
// Object creation
Car car1 = new Car(“Toyota”, “Camry”, 2022);
Car car2 = new Car(“Honda”, “Civic”, 2021);

    // Accessing object properties and methods
    System.out.println("Car 1: " + car1.year + " " + car1.make + " " + car1.model);
    System.out.println("Car 2: " + car2.year + " " + car2.make + " " + car2.model);

    car1.startEngine();
    car2.startEngine();
} }
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Wielowątkowość

A

Wielowątkowość (ang. “concurrency”) odnosi się do równoczesnego wykonywania wielu wątków w programie komputerowym. Wielowątkowość jest techniką używaną w programowaniu komputerowym, aby wykorzystać potencjał wielu procesorów lub rdzeni CPU, poprawić wydajność i zwiększyć wydajność czasu rzeczywistego w aplikacjach.

Oto kilka kluczowych pojęć związanych z wielowątkowością:

Wątek (Thread): Wątek to podstawowa jednostka wykonawcza w procesie. Program może składać się z wielu wątków, a każdy wątek wykonuje określone operacje niezależnie od innych wątków.

Wielowątkowość vs. Równoległość: Wielowątkowość dotyczy wykonywania wielu wątków na pojedynczym procesorze (lub rdzeniu), podczas gdy równoległość odnosi się do wykonywania wielu wątków na wielu procesorach (lub rdzeniach) jednocześnie.

Synchronizacja: Synchronizacja to technika, która umożliwia kontrolowanie dostępu wielu wątków do współdzielonych zasobów w sposób bezpieczny i zorganizowany. Chroni przed wystąpieniem problemów, takich jak wyścigi (ang. “race conditions”) i problemy z dostępem do pamięci.

Zasoby współdzielone: Są to zasoby, do których mogą równocześnie dostępować różne wątki. Przykłady to zmienne globalne, kolekcje danych, bazy danych, itp.

Deadlock: Deadlock to sytuacja, w której wątki wzajemnie się blokują, ponieważ każdy czeka na zwolnienie zasobów, które są zablokowane przez inne wątki.

Wydajność: Wielowątkowość może poprawić wydajność programów, zwłaszcza w aplikacjach równoległych, które wykonywane są na wielu rdzeniach CPU.

Zakleszczenie: To sytuacja, w której wiele wątków konkurujących o zasoby może się wzajemnie blokować, co prowadzi do spadku wydajności lub nawet zatrzymania się aplikacji.

Wielowątkowość jest używana w różnych dziedzinach programowania, takich jak aplikacje wielozadaniowe, serwery, aplikacje graficzne i gry komputerowe. W języku Java, wielowątkowość jest obsługiwana przez klasy Thread i Runnable, a także przez framework java.util.concurrent, który zawiera m.in. ExecutorService i ConcurrentHashMap. Dobrze napisane aplikacje wielowątkowe muszą uwzględniać synchronizację i unikać potencjalnych problemów z wielowątkowością, takich jak wyścigi i zakleszczenia.

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