40-60 Flashcards

1
Q
  1. Różnice między operatorami&raquo_space; i&raquo_space;>
A

Operator&raquo_space; wykonuje przesunięcie bitów w lewo i zachowuje bit znaku (tzn. w przypadku liczb ujemnych, bit znaku jest kopiowany w miejsce nowych bitów). Operator&raquo_space;> natomiast to przesunięcie bitów w prawo, które zawsze wstawia zera na miejsca zwolnione przez przesunięte bity, niezależnie od tego, czy liczba jest dodatnia czy ujemna.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q
  1. Który operator w Javie jest prawostronnie asocjacyjny?
A

Jedynym operatorem, który jest prawostronnie asocjacyjny w Javie, jest operator przypisania =.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q
  1. Co to jest operator kropki (dot operator)?
A

Operator kropki w Javie służy do uzyskiwania dostępu do zmiennych instancyjnych oraz metod obiektów klas. Jest także używany do uzyskiwania dostępu do klas i podpakietów z pakietu.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q
  1. Co to jest “covariant return type”?
A

“Covariant return type” oznacza, że typ zwracany przez metodę może różnić się w tym samym kierunku, co typ klasy bazowej. W praktyce, metoda nadpisująca w klasie potomnej może zwracać bardziej specyficzny typ (będący podtypem typu klasy bazowej), dzięki czemu nie trzeba stosować rzutowania.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q
  1. Co to jest słowo kluczowe transient?
A

Słowo kluczowe transient w Javie jest używane w kontekście serializacji, jeśli nie chcemy, aby wartość danej zmiennej była zapisywana podczas serializacji obiektu. Zamiast oryginalnej wartości, zapisana zostanie wartość domyślna dla danego typu.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q
  1. Różnice między metodami sleep() a wait()
A

sleep() należy do klasy Thread, a wait() do klasy Object.
sleep() nie zwalnia blokady, którą posiada dany wątek, natomiast wait() zwalnia blokadę, co umożliwia innym wątkom dostęp do synchronizowanych zasobów.
sleep() to metoda statyczna, wait() nie jest metodą statyczną.
sleep() nie rzuca wyjątku InterruptedException, podczas gdy wait() rzuca ten wyjątek, jeśli wątek zostanie przerwany.
sleep() jest używane do opóźnienia działania wątku, a wait() do wstrzymywania wątku do momentu powiadomienia.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q
  1. Różnice między String a StringBuffer
A

String jest niezmienny, co oznacza, że każda operacja na obiekcie String tworzy nowy obiekt.
StringBuffer jest mutowalny, co oznacza, że zawartość tego obiektu może być zmieniana bez tworzenia nowych obiektów.
StringBuffer jest bezpieczny w kontekście wielowątkowości, ponieważ jego metody są synchronizowane.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q
  1. Różnice między StringBuffer a StringBuilder
A

StringBuffer jest synchronizowany, co zapewnia bezpieczeństwo wątkowe, ale sprawia, że jest wolniejszy.
StringBuilder nie jest synchronizowany, co czyni go szybszym, ale nie jest bezpieczny w środowisku wielowątkowym.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q
  1. Co wybrać: String czy StringBuffer przy wielu modyfikacjach danych?
A

W przypadku wielu modyfikacji danych, lepiej jest używać StringBuffer, ponieważ jest on mutowalny i bardziej wydajny w takich operacjach niż String, który tworzy nowe obiekty przy każdej modyfikacji.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q
  1. Dlaczego StringBuffer jest nazywany “mutable”?
A

tringBuffer jest nazywany “mutable” (zmiennym), ponieważ pozwala na modyfikację zawartości ciągu znaków bez konieczności tworzenia nowych obiektów, w przeciwieństwie do klasy String, która jest niezmienna.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q
  1. Jak różni się tworzenie obiektu String za pomocą new() od używania literału?
A

Tworzenie obiektu String za pomocą new() powoduje, że obiekt jest tworzony na stercie (heap), nawet jeśli taki sam ciąg znaków istnieje w “string pool”. Natomiast użycie literału spowoduje, że obiekt jest tworzony w “string pool”, co pozwala na jego współdzielenie w aplikacji.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q
  1. Co to jest tablica w Javie?
A

Tablica w Javie to struktura danych, która przechowuje sekwencję elementów tego samego typu. Można uzyskać dostęp do elementów tablicy za pomocą indeksów, które zaczynają się od 0.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q
  1. Na jakiej pamięci tworzone są tablice w Javie?
A

Tablice w Javie są tworzone w pamięci heap. Pamięć ta jest zarządzana przez JVM, który używa garbage collectora do zwalniania nieużywanych obszarów pamięci.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q
  1. Rodzaje tablic w Javie
A

tablice jednowymiarowe: Tablice, które zawierają tylko jeden wiersz danych (np. tablica liczb całkowitych).
Tablice wielowymiarowe: Tablice, które zawierają więcej niż jeden wiersz danych, np. tablice dwuwymiarowe.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q
  1. Dlaczego indeksy tablic w Javie zaczynają się od 0?
A

Indeks tablicy oznacza odległość od początkowego adresu tablicy w pamięci, a pierwszy element znajduje się w odległości 0 od tego adresu, dlatego indeksy zaczynają się od 0.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q
  1. Jaka jest różnica między int array[] a int[] array?
A

Oba zapisy oznaczają deklarację tablicy liczb całkowitych, ale różnią się tylko stylem składni. int[] array jest preferowane w Javie, ponieważ jest bardziej spójne z innymi konstrukcjami językowymi.

17
Q
  1. Jak skopiować tablicę w Javie?
A

clone() - tworzy kopię płytką tablicy.
arraycopy() - kopiuje zawartość tablicy do nowej tablicy.
copyOf() - tworzy nową tablicę o określonym rozmiarze.
copyOfRange() - kopiuje określony zakres elementów z tablicy.

18
Q
  1. Co to jest tablica jagged (poszarpana)?
A

Tablica jagged to tablica wielowymiarowa, w której różne wiersze mogą mieć różną długość. Jest to elastyczne podejście, które pozwala na optymalizację pamięci i przechowywanie danych o zmiennej długości.

19
Q
  1. Czy można uczynić tablicę zmienną volatile?
A

Nie, nie można zastosować słowa kluczowego volatile do tablic w Javie. Słowo volatile działa tylko na pojedyncze zmienne, a nie na całe tablice.

20
Q
  1. Zalety i wady tablic
A

Zalety:

Szybki dostęp do elementów tablicy (O(1)).
Efektywne przechowywanie danych w pamięci.
Łatwość implementacji.

Wady:

Stały rozmiar tablicy, nie można jej zmienić po stworzeniu.
Może występować nieużywana przestrzeń w tablicy, jeśli nie jest w pełni wypełniona.
Tablice są sztywne w porównaniu do innych struktur danych, takich jak listy.