Pytania rekrutacyjne Java
161 pytań — 20 odpowiedzi dostępnych od razu
Podstawy języka Java
Jakie są główne różnice między JDK, JRE a JVM?
- JDK (Java Development Kit) zawiera kompilator (javac), debugger i inne narzędzia służące do tworzenia, kompilowania oraz uruchamiania programów w Javie.
- JRE (Java Runtime Environment) to środowisko uruchomieniowe, w którego skład wchodzi JVM i biblioteki potrzebne do działania aplikacji, ale nie zawiera kompilatora.
- JVM (Java Virtual Machine) to maszyna wirtualna odpowiedzialna za interpretację (lub kompilację JIT) kodu bajtowego (bytecode) na instrukcje zrozumiałe dla danej platformy.
Więcej informacji:
Dlaczego Java jest uznawana za język niezależny od platformy?
Dzięki kompilacji do kodu bajtowego (bytecode), który jest uruchamiany na maszynie wirtualnej JVM. Każda platforma (Windows, Linux, macOS) ma własną implementację JVM, co pozwala na uruchomienie tego samego bajtowego kodu niezależnie od systemu operacyjnego. Więcej informacji:
W jaki sposób definiuje się metodę main w klasie Java i dlaczego jest ona ważna?
Domyślny punkt startowy każdej aplikacji w Javie to metoda:
public static void main(String[] args) {
// kod aplikacji
}
- public – dostępna z każdego miejsca
- static – można ją wywołać bez tworzenia instancji klasy
- void – nie zwraca żadnej wartości
- String[] args – tablica argumentów przekazanych w wierszu poleceń
Jest ważna, ponieważ środowisko uruchomieniowe (JVM) właśnie tę metodę traktuje jako punkt wejściowy aplikacji. Więcej informacji:
Jaka jest różnica między typami liczbowymi byte, short, int i long?
- byte (8 bitów) – zakres od -128 do 127
- short (16 bitów) – zakres od -32768 do 32767
- int (32 bity) – podstawowy typ całkowity; zakres od ok. -2 mld do 2 mld
- long (64 bity) – rozszerzony zakres liczb całkowitych
Wybór typu zależy od potrzeb dotyczących zakresu liczbowego i zapotrzebowania na pamięć. Więcej informacji:
Jakie są domyślne wartości typów prymitywnych w Javie?
Poniższe wartości obowiązują dla pól klas (tzw. pól instancji) i pól statycznych. Dla zmiennych lokalnych w metodach Java wymaga jawnej inicjalizacji, więc nie mają one automatycznych wartości.
- byte = 0
- short = 0
- int = 0
- long = 0L
- float = 0.0f
- double = 0.0d
- char = '\u0000' (znak o kodzie 0)
- boolean = false
Więcej informacji:
Czym różni się operator „==” od metody equals() podczas porównywania obiektów i typów prymitywnych?
- == – dalekie od obiektów służy do porównywania wartości prymitywnej (np. int, char); w przypadku obiektów sprawdza, czy obiekty stanowią ten sam odnośnik w pamięci (to samo miejsce w pamięci).
- equals() – metoda dziedziczona z klasy
Object(często przesłaniana w konkretnych klasach), służy do porównywania zawartości obiektów (np. dwa Stringi o takiej samej wartości znakowej).
Więcej informacji:
W jaki sposób konwertuje się łańcuch znaków (String) na liczbę całkowitą (int) oraz int na String?
- String → int:
int number = Integer.parseInt("123");
lub
int number = Integer.valueOf("123");
- int → String:
String text = String.valueOf(123);
lub
String text = Integer.toString(123);
Więcej informacji:
Do czego służy pakiet w Javie i jak importować klasy z tego pakietu?
Pakiet (package) to logiczna grupa powiązanych klas, interfejsów i innych typów. Służy do uporządkowania kodu i unikania konfliktów nazw. Deklaruje się go na początku pliku, np. package com.example;.
Importowanie klas z innego pakietu odbywa się przy użyciu dyrektywy import, np.:
import java.util.List;
lub ze wszystkimi klasami pakietu
import java.util.*;
(choć dobre praktyki zalecają importować tylko niezbędne klasy). Więcej informacji:
Jakie jest zastosowanie słowa kluczowego „final” w Javie?
- final przy zmiennej – wartość nie może być zmieniona po inicjalizacji (stała).
- final przy metodzie – metoda nie może zostać przesłonięta (overriden) w klasach potomnych.
- final przy klasie – klasa nie może zostać rozszerzona (dziedziczenie jest niemożliwe).
Więcej informacji:
Jak Java alokuje pamięć dla typów prymitywnych i referencyjnych?
- Typy prymitywne (np. int, char) są zazwyczaj przechowywane na stosie (stack) w ramach kontekstu wykonywanego wątku.
- Obiekty (typy referencyjne) są tworzone na stercie (heap), a zmienna, która wskazuje na obiekt, przechowywana jest na stosie jako referencja.
- Zarządzanie pamięcią na stercie odbywa się przez Garbage Collector.
Więcej informacji:
Dodatkowe sugestie lektur i materiałów
- Książka: Cay S. Horstmann, Gary Cornell – „Core Java Volume I–Fundamentals”
- Książka: Herbert Schildt – „Java. Kompendium programisty”
Programowanie obiektowe w Javie
Co oznacza, że Java jest językiem obiektowym?
Java jest językiem obiektowym, co oznacza, że programowanie w Javie opiera się na koncepcji obiektów oraz klas. Każdy element programu jest reprezentowany jako obiekt, który posiada atrybuty (dane) i metody (zachowania). Programowanie obiektowe w Javie umożliwia modelowanie rzeczywistych bytów, wspiera wielokrotne wykorzystanie kodu, modularność oraz ułatwia zarządzanie złożonymi systemami poprzez enkapsulację, dziedziczenie i polimorfizm. Więcej informacji:
Jakie są cztery główne filary OOP i w jaki sposób są one zaimplementowane w Javie?
Cztery główne filary Programowania Obiektowego (OOP) to:
- Enkapsulacja (Encapsulation): Ukrywanie wewnętrznego stanu obiektu i udostępnianie go tylko poprzez publiczne metody. W Javie realizowana przez używanie modyfikatorów dostępu (
private,public,protected) oraz metod getter/setter. - Dziedziczenie (Inheritance): Mechanizm umożliwiający tworzenie nowych klas na podstawie istniejących, dziedzicząc ich właściwości i zachowania. W Javie osiągane poprzez słowa kluczowe
extendsiimplements. - Polimorfizm (Polymorphism): Możliwość traktowania obiektów różnych klas w sposób jednolity poprzez wspólny interfejs lub klasę bazową. W Javie realizowany przez przeciążanie (overloading) i przesłanianie (overriding) metod oraz wykorzystanie klasy
Object. - Abstrakcja (Abstraction): Ukazywanie tylko niezbędnych cech obiektu, ukrywając złożoność. W Javie osiągana poprzez definiowanie klas abstrakcyjnych i interfejsów.
Więcej informacji:
Jak osiągnąć enkapsulację w Javie?
Enkapsulację w Javie osiąga się poprzez:
- Definiowanie pól klasy jako
private: Zapewnia to, że dane wewnętrzne obiektu nie są bezpośrednio dostępne z zewnątrz.
public class Person {
private String name;
private int age;
// ...
}
- Udostępnianie publicznych metod getter i setter: Pozwala to na kontrolowany dostęp do prywatnych pól.
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
- Zastosowanie modyfikatorów dostępu: Umożliwia precyzyjne określenie, które części kodu mogą mieć dostęp do poszczególnych elementów klasy. Enkapsulacja chroni integralność danych, umożliwiając ich modyfikację tylko poprzez zdefiniowane metody, co zapobiega niezamierzonym zmianom stanu obiektu. Więcej informacji:
Na czym polega dziedziczenie i jak je zaimplementować?
Dziedziczenie to mechanizm OOP pozwalający na tworzenie nowych klas na podstawie istniejących, dziedzicząc ich atrybuty i metody. Umożliwia to ponowne wykorzystanie kodu oraz tworzenie hierarchii klas. Implementacja dziedziczenia w Javie:
- Klasa bazowa (superclass):
public class Animal {
private String name;
public void eat() {
System.out.println("Animal is eating");
}
// Getter i Setter
}
- Klasa pochodna (subclass):
public class Dog extends Animal {
public void bark() {
System.out.println("Dog is barking");
}
}
W powyższym przykładzie klasa Dog dziedziczy po klasie Animal, co oznacza, że Dog ma dostęp do metod eat() oraz do pola name poprzez metody getter i setter.
Kluczowe aspekty dziedziczenia:
- Jednokrotne dziedziczenie: Java nie wspiera wielokrotnego dziedziczenia klas, ale umożliwia implementację wielu interfejsów.
- Modyfikatory dostępu: Pola i metody z klasy bazowej z modyfikatorem
privatenie są bezpośrednio dostępne w klasie pochodnej.
Więcej informacji:
Czym jest polimorfizm oraz czym różni się przesłanianie metod od przeciążania metod?
Polimorfizm w OOP oznacza zdolność obiektów do przyjmowania wielu form. W Javie polimorfizm pozwala na traktowanie obiektów różnych klas w sposób zunifikowany poprzez wspólne interfejsy lub klasy bazowe. Rodzaje polimorfizmu w Javie:
- Polimorfizm kompilacyjny (przeciążanie metod):
- Polega na definiowaniu wielu metod o tej samej nazwie, ale różniących się listą parametrów w obrębie tej samej klasy.
- Rozstrzygany w czasie kompilacji.
public class Calculator {
public int add(int a, int b) {
return a + b;
}
public double add(double a, double b) {
return a + b;
}
}
- Polimorfizm dynamiczny (przesłanianie metod):
- Polega na redefiniowaniu metod klasy bazowej w klasie pochodnej.
- Rozstrzygany w czasie wykonywania.
public class Animal {
public void makeSound() {
System.out.println("Some sound");
}
}
public class Dog extends Animal {
@Override
public void makeSound() {
System.out.println("Bark");
}
}
Różnice między przesłanianiem a przeciążaniem metod:
Przez przeciążanie:
- Metody muszą mieć tę samą nazwę, ale różną listę parametrów.
- Dotyczy jednej klasy.
- Rozstrzygane w czasie kompilacji.
Przez przesłanianie:
- Metody muszą mieć tę samą nazwę i listę parametrów.
- Dotyczy klas powiązanych dziedziczeniem.
- Rozstrzygane w czasie wykonywania.
Więcej informacji:
Jaką rolę pełnią słowa kluczowe „this” i „super”?
this i super to słowa kluczowe w Javie używane w kontekście klas i obiektów.
this:- Odnosi się do bieżącego obiektu klasy.
- Używane do odróżnienia pól klasy od parametrów metody lub konstruktora.
- Może być używane do wywoływania innych konstruktorów w tej samej klasie.
public class Person {
private String name;
public Person(String name) {
this.name = name; // 'this.name' odnosi się do pola klasy
}
public void setName(String name) {
this.name = name;
}
}
- Przykład wywołania konstruktora:
public class Rectangle {
private int width;
private int height;
public Rectangle() {
this(0, 0); // Wywołuje inny konstruktor
}
public Rectangle(int width, int height) {
this.width = width;
this.height = height;
}
}
super:- Odnosi się do klasy bazowej obiektu.
- Używane do:
- Dostęp do metod lub pól klasy bazowej, które są przesłonięte w klasie pochodnej.
- Wywoływania konstruktora klasy bazowej.
public class Animal {
public void eat() {
System.out.println("Animal is eating");
}
}
public class Dog extends Animal {
@Override
public void eat() {
super.eat(); // Wywołuje metodę eat() z klasy bazowej
System.out.println("Dog is eating");
}
}
- Przykład wywołania konstruktora klasy bazowej:
public class Vehicle {
private String brand;
public Vehicle(String brand) {
this.brand = brand;
}
}
public class Car extends Vehicle {
private String model;
public Car(String brand, String model) {
super(brand); // Wywołuje konstruktor z klasy Vehicle
this.model = model;
}
}
Więcej informacji:
W jaki sposób uniemożliwić dziedziczenie po danej klasie?
Aby uniemożliwić dziedziczenie po danej klasie w Javie, należy oznaczyć klasę jako final. Klasa oznaczona słowem kluczowym final nie może być rozszerzana przez żadną inną klasę, co zabezpiecza jej implementację przed modyfikacjami poprzez dziedziczenie.
Przykład:
public final class Constants {
public static final String APP_NAME = "MyApplication";
// Inne stałe i metody
}
W powyższym przykładzie klasa Constants jest final, więc żadna inna klasa nie może dziedziczyć po niej:
public class ExtendedConstants extends Constants { // Błąd kompilacji
// ...
}
Zastosowania klasy final:
- Bezpieczeństwo: Zapobiega nadpisaniu metod i modyfikacji zachowania klasy.
- Optymalizacja: Umożliwia kompilatorowi optymalizację wywołań metod.
Więcej informacji:
Jakie jest zastosowanie klas abstrakcyjnych i interfejsów? Kiedy ich używać?
Klasy abstrakcyjne i interfejsy w Javie służą do definiowania wspólnego zachowania dla różnych klas, ale różnią się w sposobie zastosowania i możliwościami.
Klasy abstrakcyjne:
- Mogą zawierać zarówno metody abstrakcyjne (bez implementacji), jak i konkretne (z implementacją).
- Mogą posiadać pola z modyfikatorami dostępu.
- Służą jako klasa bazowa, z której dziedziczą klasy pochodne.
- Pozwalają na dzielenie wspólnej implementacji między klasami.
Kiedy używać:
- Gdy klasy pochodne mają wspólne cechy i zachowania, które można zaimplementować w klasie bazowej.
- Kiedy chcemy częściowo zdefiniować klasę, ale pozostawić częściową implementację klasom pochodnym.
Przykład:
public abstract class Vehicle {
private String brand;
public Vehicle(String brand) {
this.brand = brand;
}
public abstract void drive();
public void displayBrand() {
System.out.println("Brand: " + brand);
}
}
Interfejsy:
- Definiują tylko metody abstrakcyjne (do Javy 7) lub domyślne statyczne/metody domyślne (od Javy 8).
- Nie mogą posiadać stanów (pól) z wyjątkiem stałych
public static final. - Pozwalają na implementację wielu interfejsów przez jedną klasę, co wspiera wielokrotne dziedziczenie typu.
- Służą do definiowania kontraktów, które klasy muszą spełniać.
Kiedy używać:
- Gdy różne klasy muszą implementować ten sam zestaw metod, ale ich implementacja może być różna.
- Gdy chcemy zapewnić elastyczność i możliwości wielokrotnego dziedziczenia typu.
Przykład:
public interface Drivable {
void drive();
}
public class Car implements Drivable {
@Override
public void drive() {
System.out.println("Car is driving");
}
}
Podsumowanie różnic:
- Klasy abstrakcyjne mogą zawierać implementację metod i stan, interfejsy głównie definiują metody bez implementacji (od Javy 8 można mieć metody domyślne).
- Dziedziczenie: Klasa może rozszerzać tylko jedną klasę abstrakcyjną, ale implementować wiele interfejsów.
Więcej informacji:
Na czym polegają metody domyślne (default methods) w interfejsach w Javie?
Metody domyślne (ang. default methods) zostały wprowadzone w Javie 8 i pozwalają na definiowanie metod z implementacją bez konieczności tworzenia klas abstrakcyjnych. Dzięki nim interfejsy mogą zawierać nie tylko deklaracje metod, ale także ich konkretne implementacje. Cechy metod domyślnych:
- Oznaczone słowem kluczowym
default. - Pozwalają na dodawanie nowych metod do interfejsów bez łamania istniejących implementacji klas.
- Klasy implementujące interfejs nie muszą implementować metod domyślnych, chyba że chcą je nadpisać.
Przykład:
public interface Drivable {
void drive();
default void startEngine() {
System.out.println("Engine started");
}
}
public class Car implements Drivable {
@Override
public void drive() {
System.out.println("Car is driving");
}
// Opcjonalnie można nadpisać metodę domyślną
@Override
public void startEngine() {
System.out.println("Car engine started");
}
}
Zalety metod domyślnych:
- Elastyczność: Umożliwiają rozbudowę interfejsów bez wpływania na istniejące klasy.
- Wsteczna kompatybilność: Nie wymagają modyfikacji wszystkich klas implementujących interfejs po dodaniu nowej metody.
Ograniczenia:
- Interfejsy mogą zawierać metody domyślne oraz statyczne, ale nie mogą posiadać pól instancji.
- Nadpisanie metody domyślnej wymaga ręcznej implementacji w klasie implementującej.
Więcej informacji:
Czy możesz wyjaśnić różnicę między kompozycją a dziedziczeniem?
Dziedziczenie i kompozycja to dwa podstawowe mechanizmy relacji między klasami w OOP, jednak różnią się koncepcją i zastosowaniem.
Dziedziczenie (Inheritance):
- Hierarchiczna relacja: Opisuje "jest" (is-a) relację, gdzie klasa pochodna jest specjalizacją klasy bazowej.
- Reużywanie kodu: Klasa pochodna dziedziczy pola i metody klasy bazowej.
- Ograniczenia: Java wspiera tylko pojedyncze dziedziczenie klas, co może prowadzić do problemów z elastycznością.
Przykład:
public class Animal {
public void eat() {
System.out.println("Animal eats");
}
}
public class Dog extends Animal {
public void bark() {
System.out.println("Dog barks");
}
}
Kompozycja (Composition):
- Agregacyjna relacja: Opisuje "ma" (has-a) relację, gdzie klasa posiada referencje do innych obiektów jako część swojej struktury.
- Elastyczność: Umożliwia dynamiczne komponowanie obiektów z różnych części bez silnego powiązania dziedziczeniowego.
- Reużywanie kodu: Pozwala na używanie funkcjonalności innych klas poprzez delegację, bez konieczności dziedziczenia.
Przykład:
public class Engine {
public void start() {
System.out.println("Engine starts");
}
}
public class Car {
private Engine engine;
public Car() {
this.engine = new Engine();
}
public void startCar() {
engine.start();
}
}
Kluczowe różnice:
Relacja:
- Dziedziczenie: "jest" (np. Dog jest Animal)
- Kompozycja: "ma" (np. Car ma Engine)
Powiązanie:
- Dziedziczenie: Silne, klasy są ściśle powiązane.
- Kompozycja: Słabe, obiekty mogą być wymieniane lub zmieniane bez wpływu na klasę nadrzędną.
Elastyczność:
- Dziedziczenie: Mniej elastyczne ze względu na pojedyncze dziedziczenie.
- Kompozycja: Bardziej elastyczne, umożliwiające dynamiczne tworzenie obiektów.
Ponowne użycie kodu:
- Dziedziczenie: Przez dziedziczenie wszystkich publicznych/protected członków klasy bazowej.
- Kompozycja: Przez delegację wywołań metod do posiadanych obiektów.
Zalecenia:
- Preferuj kompozycję nad dziedziczeniem: Kompozycja oferuje większą elastyczność i mniej problemów związanych z silnym powiązaniem między klasami.
Więcej informacji:
Dodatkowe sugestie lektur i materiałów:
- Książka: Cay S. Horstmann, Gary Cornell – „Core Java Volume I–Fundamentals”
- Książka: Herbert Schildt – „Java. Kompendium programisty”
Zarządzanie pamięcią i Garbage Collection w Javie
Odpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziKolekcje w Javie (Java Collections Framework)
Odpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziObsługa wyjątków (Exception Handling)
Odpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziProgramowanie wielowątkowe i współbieżność (Multithreading and Concurrency)
Odpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziJava 8 i nowsze funkcje
Odpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziJava I/O oraz NIO
Odpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziJDBC i dostęp do baz danych
Odpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziSpring Framework
Odpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziHibernate i JPA
Odpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziTestowanie w Javie
Odpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziWzorce projektowe w Javie
Odpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziBezpieczeństwo w Javie
Odpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOptymalizacja wydajności i dobre praktyki (Performance Tuning and Best Practices)
Odpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziNowoczesna Java (Java 9-21+)
Odpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedziOdpowiedź dostępna w pełnej wersji. Odblokuj 141 pozostałych odpowiedzi i ucz się z pełnego zestawu.
Odblokuj odpowiedzi