40-60 Flashcards
- Różnice między operatorami»_space; i»_space;>
Operator»_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»_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.
- Który operator w Javie jest prawostronnie asocjacyjny?
Jedynym operatorem, który jest prawostronnie asocjacyjny w Javie, jest operator przypisania =.
- Co to jest operator kropki (dot operator)?
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.
- Co to jest “covariant return type”?
“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.
- Co to jest słowo kluczowe transient?
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.
- Różnice między metodami sleep() a wait()
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.
- Różnice między String a StringBuffer
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.
- Różnice między StringBuffer a StringBuilder
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.
- Co wybrać: String czy StringBuffer przy wielu modyfikacjach danych?
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.
- Dlaczego StringBuffer jest nazywany “mutable”?
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.
- Jak różni się tworzenie obiektu String za pomocą new() od używania literału?
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.
- Co to jest tablica w Javie?
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.
- Na jakiej pamięci tworzone są tablice w Javie?
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.
- Rodzaje tablic w Javie
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.
- Dlaczego indeksy tablic w Javie zaczynają się od 0?
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.