wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

Quiz z programowania w Javie

Total questions: 129

Worksheet time: 1hrs 10mins

Name
Class
Date
1.

Co się stanie po uruchomieniu?

a)

Program się wykona poprawnie i wypisze 10

b)

Program zgłosi wyjątek w czasie wykonania (ArithmeticException)

c)

Program zgłosi błąd kompilacji

d)

Program wypisze 0

2.

Co zostanie wyświetlone?

a)

Błąd kompilacji, bo x nie jest zainicjalizowane

b)

0

c)

null

d)

Program zgłosi wyjątek w czasie wykonania

3.

Co się stanie po uruchomieniu programu?

a)

Program wypisze 7

b)

Program wypisze x+7

c)

Błąd kompilacji

d)

Program zgłosi wyjątek w czasie wykonania

4.

Co się stanie po uruchomieniu programu?

a)

Program wypisze 0

b)

Program wypisze 5

c)

Błąd kompilacji, bo x może nie zostać zainicjalizowane

d)

Program zgłosi wyjątek w czasie wykonania

5.

Opcje odpowiedzi:

a)

5, 10, 3, 7

b)

8, 10, 8, 7

c)

8, 10, 8, 0

d)

5, 10, 8, 7

6.

Opcje odpowiedzi:

a)

2, 2, 2, 3

b)

2, 2, 2, 0

c)

2, 2, 2, 2

d)

2, 2, 2, 5

7.

Które słowo kluczowe służy do przechwycenia wyjątku, który wystąpił w bloku try?

a)

try

b)

catch

c)

throw

d)

throws

8.

Które słowo kluczowe deklaruje, że metoda może zgłaszać wyjątki?

a)

try

b)

catch

c)

throw

d)

throws

9.

Jakim słowem kluczowym możesz jawnie zgłosić wyjątek w dowolnym miejscu metody?

a)

try

b)

catch

c)

throw

d)

throws

10.

Który blok kodu należy użyć, aby określić fragment, w którym mogą wystąpić wyjątki?

a)

try

b)

catch

c)

throw

d)

throws

11.

Które słowo kluczowe wypełni puste miejsce, aby poprawnie zadeklarować możliwość wystąpienia wyjątku?

a)

try

b)

catch

c)

throw

d)

throws

12.

Które słowo kluczowe NIE jest używane do obsługi wyjątków w czasie wykonywania programu?

a)

try

b)

catch

c)

finally

d)

class

13.

Co zostanie wyświetlone po uruchomieniu programu?

a)

Wynik: 0

b)

Wystąpił wyjątek!

c)

Program się nie skompiluje

d)

Wynik: 10

14.

Co zostanie wyświetlone po uruchomieniu programu?

a)

Wynik: 0

b)

Wystąpił wyjątek!

c)

Program się nie skompiluje

d)

Wynik: 10

15.

Co się stanie po uruchomieniu programu?

a)

Wyświetli "Liczba: -5"

b)

Wyświetli "Liczba: 5"

c)

Zgłoszony zostanie wyjątek typu IllegalArgumentException

d)

Program zakończy się bez błędu

16.

Co jest prawdą w tym kodzie?

a)

Metoda risky() może zgłaszać wyjątek, który musi być obsłużony lub zadeklarowany

b)

Program skompiluje się i uruchomi bez problemów

c)

throws automatycznie przechwytuje wyjątek

d)

throw jest zbędny w tym kodzie

17.

Co zostanie wyświetlone po uruchomieniu programu?

a)

Wynik: 0

b)

Wyjątek: Nie dziel przez zero

c)

Program się nie skompiluje

d)

Wynik: 10

18.

Opcje:

a)

try … catch

b)

catch … try

c)

throw … throws

d)

throws … throw

19.

Co wpisać w miejsca: _____

a)

throws / throw

b)

throw / throws

c)

try / catch

d)

catch / try

20.

co wpisać w miejsce ___

a)

throws

b)

throw

c)

try

d)

catch

21.

Co wpisać w miejsca ____

a)

throws / throw / catch

b)

throw / throws / try

c)

try / catch / throw

d)

catch / throw / throws

22.

Co zostanie wypisane na konsoli?

a)

0, 0

b)

null, null

c)

Błąd kompilacji – brak konstruktora

d)

x, y

23.

Które zdanie jest prawdziwe?

a)

Konstruktor może mieć dowolną nazwę.

b)

Konstruktor nie zwraca żadnej wartości, nawet void.

c)

Konstruktor można przeciążać tylko raz w klasie.

d)

Konstruktor domyślny jest tworzony, nawet jeśli zdefiniowano inne konstruktory.

24.

W klasie można w konstruktorze umieścić:

a)

Tylko inicjalizację pól klasy.

b)

Dowolny kod, który ma być wykonany przy tworzeniu obiektu.

c)

Wyłącznie wywołanie konstruktora nadrzędnego super().

d)

Tylko komentarze i deklaracje zmiennych lokalnych.

25.

Co się stanie, jeśli w klasie zdefiniujesz konstruktor z argumentami, ale spróbujesz utworzyć obiekt bezargumentowo?

a)

Obiekt zostanie utworzony, a pola przyjmą wartości domyślne.

b)

Błąd kompilacji – brak konstruktora bezargumentowego.

c)

Java automatycznie doda konstruktor domyślny.

d)

Program zakończy działanie z wyjątkiem w runtime.

26.

Jeśli klasa B dziedziczy po klasie A, co jest prawdziwe?

a)

Konstruktor klasy B automatycznie wywołuje konstruktor domyślny klasy A.

b)

Konstruktor klasy B zawsze ignoruje konstruktor klasy A.

c)

Konstruktor klasy B może wywołać konstruktor klasy A tylko jeśli jest statyczny.

d)

Konstruktor klasy B musi być pusty.

27.

Które stwierdzenie jest prawdziwe?

a)

Kompilator automatycznie doda konstruktor domyślny bezargumentowy.

b)

Jeśli spróbujesz utworzyć obiekt new Punkt(), wystąpi błąd kompilacji.

c)

Konstruktor domyślny istnieje, ale nie ustawia pól x i y.

d)

Konstruktor domyślny można użyć tylko, jeśli klasa nie ma żadnych pól.

28.

Gdzie w pamięci przechowywane są: obiekt o klasy Osoba zmienna lokalna liczba?

a)

Obiekt na stosie, zmienna lokalna w rejestrach procesora

b)

Obiekt na stercie (heap), zmienna lokalna na stosie

c)

Obiekt w obszarze stałym, zmienna lokalna w obszarze stałym

d)

Obiekt na stosie, zmienna lokalna na stercie

29.

Co zostanie wypisane?

a)

15, 5

b)

15, 20

c)

5, 20

d)

5, 5

30.

Gdzie są przechowywane poszczególne elementy?

a)

licznik i obiekty t1, t2 na stercie, lokalna na stosie

b)

licznik w obszarze stałym, obiekty t1 i t2 na stercie, lokalna na stosie

c)

Wszystkie zmienne i obiekty na stercie

d)

licznik i lokalna na stosie, t1 i t2 w rejestrach procesora

31.

Gdzie są przechowywane poszczególne elementy?

a)

licznik i obiekty t1, t2 na stercie, lokalna na stosie

b)

licznik w obszarze stałym, obiekty t1 i t2 na stercie, lokalna na stosie

c)

Wszystkie zmienne i obiekty na stercie

d)

licznik i lokalna na stosie, t1 i t2 w rejestrach procesora

32.

Co zostanie wyświetlone na konsoli?

a)

Java

b)

Python

c)

null

d)

Błąd kompilacji

33.

Co zostanie wyświetlone na konsoli?

a)

1

b)

10

c)

0

d)

Błąd w czasie wykonania

34.

Co się stanie po uruchomieniu programu?

a)

Zostanie wyświetlona wartość 0

b)

Zostanie wyświetlona wartość null

c)

Kompilator zgłosi błąd nieinicjalizowanej zmiennej

d)

Program wyświetli losową wartość

35.

Który z poniższych typów danych w Javie NIE jest typem prymitywnym?

a)

boolean

b)

int

c)

String

d)

char

36.

Co się stanie, gdy przypiszemy jedną zmienną obiektową do drugiej?

a)

Tworzona jest nowa kopia obiektu w pamięci

b)

Kopiowana jest wartość pola obiektu

c)

Kopiowany jest adres w pamięci – obie zmienne wskazują ten sam obiekt

d)

Program zgłosi błąd kompilacji

37.

Która z poniższych deklaracji w Javie tworzy typ referencyjny?

a)

int liczby = 5;

b)

double wynik = 3.14;

c)

String[] imiona = new String[5];

d)

char znak = 'A';

38.

Który modyfikator daje dostęp wyłącznie w obrębie tej samej klasy?

a)

public

b)

protected

c)

private

d)

default

39.

Który modyfikator pozwala na dostęp w klasach dziedziczących, nawet w innym pakiecie?

a)

private

b)

protected

c)

default

d)

public

40.

Który modyfikator daje pełny dostęp z każdego miejsca w programie?

a)

default

b)

private

c)

public

d)

protected

41.

Co się stanie, jeśli pole nie ma żadnego modyfikatora dostępu?

a)

Dostęp tylko w obrębie klasy

b)

Dostęp w obrębie tego samego pakietu

c)

Dostęp w całym projekcie

d)

Dostęp tylko w klasach dziedziczących

42.

Które elementy mogą znajdować się w klasie w Javie?

a)

Pola i metody – opcjonalnie

b)

Pola i metody – obowiązkowo

c)

Konstruktory – obowiązkowo

d)

Wszystkie elementy muszą być obecne

43.

Co się stanie, jeśli w klasie nie zdefiniujemy żadnego konstruktora?

a)

Kompilator zgłosi błąd

b)

Obiekt nie może być stworzony

c)

Java automatycznie doda konstruktor domyślny

d)

Klasa staje się abstrakcyjna

44.

Czy metoda w klasie może istnieć bez pól?

a)

Tak

b)

Nie

45.

Czy klasa w Javie może istnieć całkowicie pusta?

a)

Tak, kompilator doda konstruktor domyślny

b)

Nie, musi mieć przynajmniej jedno pole

46.

Która cecha opisuje konstruktor w Javie?

a)

Zwraca obiekt typu klasy

b)

Zwraca true/false po inicjalizacji

c)

Ma nazwę identyczną jak klasa i nie zwraca żadnej wartości

d)

Jest metodą o nazwie klasy i zwraca Boolean

47.

Co się stanie, jeśli w klasie nie zdefiniujesz żadnego konstruktora?

a)

Kompilator zgłosi błąd

b)

Automatycznie powstanie konstruktor domyślny

c)

Obiekty nie będą mogły być tworzone

d)

Klasa stanie się abstrakcyjna

48.

Czy konstruktor może być przeciążany?

a)

Tak, można mieć wiele konstruktorów z różnymi parametrami

b)

Nie, ko

49.

Czy konstruktor może być przeciążany?

a)

Tak, można mieć wiele konstruktorów z różnymi parametrami

b)

Nie, konstruktor może być tylko jeden

50.

Czy konstruktor może zwracać wartość typu int?

a)

Tak

b)

Nie

51.

Co należy wpisać w miejsce ???

a)

x = x; y = y;

b)

this.x = x; this.y = y;

c)

Punkt.x = x; Punkt.y = y;

d)

super.x = x; super.y = y;

52.

Co zostanie wypisane:

a)

5

b)

10

c)

Błąd kompilacji

d)

0

53.

Metoda w klasie pochodnej przesłania metodę klasy bazowej. Jak odwołać się do oryginału?

a)

this.greet();

b)

super.greet();

c)

A.greet();

d)

greet.super();

54.

Które z poniższych stwierdzeń jest prawdziwe?

a)

Metody klasy nie mogą przyjmować argumentów.

b)

Pola klasy przechowują stan każdego obiektu.

c)

Zmienne lokalne są dostępne w całej klasie.

d)

Konstruktor służy do usuwania obiektów.

55.

Wskaż fałszywe stwierdzenie:

a)

Konstruktory mogą mieć domyślne wartości argumentów.

b)

Metody klasy nie mogą zwracać wartości.

c)

Pola klasy są przypisywane zwykle w konstruktorze.

d)

Zmienne lokalne istnieją tylko w obrębie metody, w której są zdefiniowane.

56.

Które z poniższych stwierdzeń jest nieprawdziwe?

a)

Metody w klasie definiują działania, które obiekty tej klasy mogą wykonywać.

b)

Pola klasy przechowują dane i opisują stan obiektu.

c)

Każda zmienna zdefiniowana wewnątrz metody lub konstruktora jest automatycznie polem klasy.

d)

Konstruktor może przyjmować wiele parametrów zgodnie z definicją.

57.

Która z poniższych metod jest poprawnym przeciążeniem?

a)

public void printMessage() { System.out.println("Hello"); }

b)

public void printMessage(String msg, int count) { for(int i=0;i

c)

public int printMessage(String msg) { return msg.length(); }

d)

public void printMessage(String msg) { System.out.println(msg); }

58.

Która z metod jest poprawnym przeciążeniem?

a)

public double multiply(double a, double b, double c) { return a*b*c; }

b)

public int multiply(double x, double y) { return (int)(x*y); }

c)

public double multiply(double x, double y) { return x*y; }

d)

public double multiply(int x, int y) { return x*y; }

59.

Który modyfikator ogranicza dostęp do pola klasy tak, aby było widoczne tylko wewnątrz tej klasy?

a)

public

b)

protected

c)

private

d)

static

60.

Który modyfikator ogranicza dostęp do pola klasy tak, aby było widoczne tylko wewnątrz tej klasy?

a)

public

b)

protected

c)

private

d)

static

61.

W Javie hermetyzacja polega na ukrywaniu pól klasy. Który modyfikator najczęściej się do tego stosuje?

a)

final

b)

private

c)

abstract

d)

synchronized

62.

Jaki modyfikator należy wpisać w miejsce „______”, aby pole predkosc było hermetyzowane?

a)

private

b)

public

c)

static

d)

final

63.

Który z modyfikatorów w Javie sprawia, że inne klasy nie mają bezpośredniego dostępu do zmiennej obiektu, co jest podstawą hermetyzacji?

a)

public

b)

protected

c)

private

d)

transient

64.

Które słowo kluczowe w Javie pozwala klasie Samochod dziedziczyć po klasie Pojazd?

a)

implements

b)

extends

c)

interface

d)

inherit

65.

Jakie słowo kluczowe należy wpisać w miejsce „______”, aby klasa Kot dziedziczyła po klasie Zwierze?

a)

implements

b)

extends

c)

interface

d)

super

66.

Które słowo kluczowe służy do implementacji interfejsu w Javie?

a)

extends

b)

implements

c)

interface

d)

inherit

67.

Które stwierdzenie jest prawdziwe?

a)

extends służy do implementowania interfejsów.

b)

implements pozwala klasie dziedziczyć po innej klasie.

c)

extends pozwala klasie dziedziczyć po innej klasie.

d)

interface pozwala klasie dziedziczyć po innej klasie.

68.

Jakie słowo kluczowe należy wstawić w miejsce „______”?

a)

extends

b)

implements

c)

interface

d)

super

69.

Który zapis poprawnie tworzy obiekt klasy Samochod?

a)

Samochod s1 = new Samochod();

b)

Samochod s1 = new Samochod("BMW", 2020);

c)

Samochod s1 = new Samochod("BMW");

d)

Samochod s1 = new Samochod(2020);

70.

Który zapis poprawnie tworzy obiekt klasy Ksiazka?

a)

Ksiazka k1 = new Ksiazka();

b)

Ksiazka k1 = new Ksiazka("Pan Tadeusz");

c)

Ksiazka k1 = new Ksiazka("Pan Tadeusz", "Mickiewicz");

d)

Ksiazka k1 = new Ksiazka("Mickiewicz", "Pan Tadeusz");

71.

Który zapis poprawnie tworzy obiekt?

a)

Telefon t1 = new Telefon();

b)

Telefon t1 = new Telefon("iPhone", 3999.99f);

c)

Telefon t1 = new Telefon(3999.99f);

d)

Telefon t1 = new Telefon("iPhone");

72.

Który zapis poprawnie tworzy obiekt?

a)

Komputer k = new Komputer();

b)

Komputer k = new Komputer("Laptop");

c)

Komputer k = new Komputer("Laptop", 16);

d)

Komputer k = new Komputer(16);

73.

Które z poniższych stwierdzeń o klasach abstrakcyjnych jest fałszywe?

a)

Klasa abstrakcyjna może zawierać metody z implementacją.

b)

Klasa abstrakcyjna może zawierać metody abstrakcyjne (bez ciała).

c)

Klasa abstrakcyjna nie może mieć konstruktorów.

d)

Nie można tworzyć bezpośrednich instancji klasy abstrakcyjnej.

74.

Które zdanie jest prawdziwe dla klasy abstrakcyjnej w Javie?

a)

Można utworzyć obiekt klasy abstrakcyjnej.

b)

Klasa abstrakcyjna może implementować niektóre metody, a inne pozostawić abstrakcyjne.

c)

Klasa abstrakcyjna nie może mieć pól prywatnych.

d)

Klasa abstrakcyjna nie może mieć konstruktora.

75.

Które z poniższych stwierdzeń jest prawdziwe?

a)

Można utworzyć obiekt klasy Zwierze.

b)

Klasa Zwierze zawiera metody abstrakcyjne i zwykłe.

c)

Klasa Zwierze nie może mieć konstruktora.

d)

Wszystkie metody w klasie abstrakcyjnej muszą być abstrakcyjne.

76.

Które stwierdzenie jest fałszywe dotyczące interfejsów w Javie?

a)

Interfejs może zawierać metody abstrakcyjne. – fałsz w Javie 8+ można mieć też metody domyślne.

b)

Interfejs może zawierać pola (są one domyślnie publiczne, statyczne i finalne).

c)

Interfejs można implementować w wielu klasach.

d)

Interfejs może zawierać konstruktor.

77.

Która z poniższych metod w klasie Pies przesłania metodę dajGlos z klasy Zwierze?

a)

public void dajGlos() { System.out.println("Hau!"); }

b)

public void dajGlos(String dzwiek) { System.out.println("Pies mówi: " + dzwiek); }

c)

public String dajGlos(String dzwiek) { return dzwiek; }

d)

public void dajGlos(int glos) { System.out.println(glos); }

78.

Która metoda w klasie KontoOsobiste będzie poprawnie przesłaniać metodę wyswietlSaldo?

a)

public void wyswietlSaldo() { System.out.println("Brak salda"); }

b)

public void wyswietlSaldo(double saldo) { System.out.println("Twoje saldo: " + saldo); }

c)

public int wyswietlSaldo(double saldo) { return (int) saldo; }

d)

public void wyswietlSaldo(String tekst) { System.out.println(tekst); }

79.

Która metoda w klasie Ebook jest przykładem przesłaniania metody z klasy bazowej?

a)

public void wypiszTytul() { System.out.println("Brak tytulu"); }

b)

public void wypiszTytul(String tytul) { System.out.println("E-book: " + tytul); }

c)

public String wypiszTytul(String tytul) { return tytul; }

d)

public void wypiszTytul(int liczbaStron) { System.out.println(liczbaStron); }

80.

Która metoda w klasie Elektryczny będzie poprawnie przesłaniać metodę uruchom?

a)

public void uruchom() { System.out.println("Uruchamianie elektrycznego"); }

b)

public void uruchom(String model) { System.out.println("Elektryczny: " + model); }

c)

public int uruchom(String model) { return 1; }

d)

public void uruchom(int moc) { System.out.println(moc); }

81.

Która z poniższych nazw nie jest oficjalną biblioteką GUI w Javie?

a)

Swing

b)

AWT

c)

JavaFX

d)

JWindowKit

82.

Która z poniższych technologii nie służy do tworzenia graficznych interfejsów użytkownika w Javie?

a)

Swing

b)

JavaFX

c)

AWT

d)

JGraph

83.

Które z poniższych stwierdzeń jest fałszywe?

4 lines
84.

służy do tworzenia graficznych interfejsów użytkownika w Javie?

a)

Swing

b)

JavaFX

c)

AWT

d)

JGraph

85.

Które z poniższych stwierdzeń jest fałszywe?

a)

Swing umożliwia tworzenie przycisków, okien i paneli w Javie.

b)

JavaFX pozwala na animacje i grafikę 2D/3D.

c)

AWT jest starszą biblioteką GUI w Javie.

d)

JGUI jest standardową biblioteką GUI w Javie.

86.

Która z poniższych nazw nie należy do standardowych bibliotek do GUI w Javie?

a)

JavaFX

b)

Swing

c)

AWT

d)

FXGraphics

87.

Która biblioteka w Javie jest używana do tworzenia GUI:

a)

Swing

b)

AWT

c)

JavaFX

d)

NetGUI

88.

Który z poniższych menedżerów układu w Swingu dzieli kontener na strefy NORTH, SOUTH, EAST, WEST i CENTER?

a)

FlowLayout

b)

BorderLayout

c)

GridLayout

d)

BoxLayout

89.

W bibliotece Swing FlowLayout jest:

a)

Menedżerem układu rozmieszczającym komponenty w jednym wierszu lub kolumnie

b)

Obiektem tworzącym ramkę wokół okna

c)

Menedżerem układu dzielącym kontener na pięć stref

d)

Sposobem definiowania kolorów przycisków

90.

Który menedżer układu w Swingu umożliwia tworzenie siatki o określonej liczbie wierszy i kolumn?

a)

BorderLayout

b)

FlowLayout

c)

GridLayout

d)

CardLayout

91.

W Swingu menedżer układu odpowiada za:

a)

Tworzenie okna aplikacji

b)

Automatyczne rozmieszczanie komponentów w kontenerze

c)

Definiowanie kolorów i czcionek przycisków

d)

Tworzenie animacji graficznych

92.

W Swingu zdarzenia, takie jak kliknięcie przycisku, są obsługiwane przez:

a)

Obiekty delegowane

b)

Obiekty nasłuchujące (Listenery)

c)

Konstruktory zdarzeń

d)

Obiekty typu Event

93.

Który interfejs służy w Swingu do obsługi kliknięć przycisku?

a)

MouseListener

b)

KeyListener

c)

ActionListener

d)

WindowListener

94.

Jak w Swingu rejestruje się obiekt nasłuchujący zdarzenia w komponencie?

a)

Przez wywołanie konstruktora komponentu

b)

Przez metodę addListener()

c)

Przez metodę addActionListener() (lub podobne dla innych typów zdarzeń)

d)

Przez bezpośrednie modyfikowanie pola zdarzeń

95.

Które stwierdzenie jest prawdziwe?

a)

Event w Swingu sam wywołuje akcję i wykonuje kod obsługi

b)

Listener w Swingu czeka na zdarzenie i wywołuje określoną metodę, gdy zdarzenie wystąpi

c)

Konstruktory zdarzeń definiują, co ma się stać po kliknięciu przycisku

d)

Obiekty delegowane obsługują wszystkie zdarzenia automatycznie

96.

Który z poniższych sposobów jest standardową metodą obsługi zdarzeń w Swingu?

a)

Tworzenie klasy pochodnej komponentu i nadpisanie jego metody onClick()

b)

Dodanie listenera do komponentu, np. addActionListener()

c)

Modyfikacja pola event komponentu

d)

Użycie konstruktorów zdarzeń

97.

Jakie wymagania musi spełniać klasa w JavaFX, aby mogła uruchomić aplikację?

a)

Dziedziczyć po klasie Application.

b)

Posiadać metodę start(Stage primaryStage).

c)

Dziedziczyć po klasie Scene.

d)

Opcjonalnie używać CSS do stylizacji komponentów.

98.

Które stwierdzenie o JavaFX jest nieprawdziwe?

a)

Można definiować wygląd komponentów przy użyciu arkuszy stylów CSS.

b)

Każda aplikacja musi dziedziczyć po klasie Application.

c)

Metoda start nie jest wymagana w klasie dziedziczącej po Application.

d)

JavaFX umożliwia tworzenie scen i scenariuszy graficznych.

99.

Która z poniższych opcji nie jest wymogiem dla klasy JavaFX uruchamialnej jako aplikacja?

a)

Dziedziczenie po Application.

b)

Implementacja metody start(Stage primaryStage).

c)

Dziedziczenie po klasie Node.

d)

Możliwość stylizacji przy pomocy CSS.

100.

Które stwierdzenie jest nieprawdziwe?

a)

Klasa musi dziedziczyć po Application.

b)

Klasa nie musi dziedziczyć po żadnej klasie.

c)

Klasa musi posiadać metodę start.

d)

Wygląd komponentów można zmieniać przy pomocy CSS.

101.

Która z poniższych czynności nie jest realizowana przez JDBC?

a)

Tworzenie połączenia z bazą danych

b)

Wykonywanie zapytań SQL

c)

Automatyczne mapowanie obiektów Java na tabele w bazie

d)

Odbieranie wyników zapytań (ResultSet)

102.

Które stwierdzenie jest prawdziwe w kontekście JDBC?

a)

JDBC umożliwia wykonanie zapytań SQL i aktualizowanie danych w bazie

b)

JDBC pozwala na pisanie zapytań w języku HQL

c)

JDBC realizuje mapowanie obiektowo-relacyjne

d)

JDBC konfiguruje adnotacje Hibernate

103.

Które technologie realizują mapowanie obiektowo-relacyjne, a które pozwalają na wykonywanie zapytań SQL?

a)

JDBC → SQL, Hibernate → ORM

b)

JDBC → ORM, Hibernate → SQL

c)

JDBC → HQL, Hibernate → SQL

d)

JDBC → SQL, Hibernate → HQL

104.

Która technologia w Javie realizuje powyższe funkcje?

a)

JDBC

b)

Hibernate

c)

JPA

d)

Spring Data

105.

Jakiego typu zmienna powinna być w miejscu _________, aby przechowywać wynik zapytania SQL w JDBC?

a)

ResultList

b)

ResultSet

c)

ResultMap

d)

ResultRecord

106.

Jakiego typu powinna być zmienna rs, aby móc iterować po wynikach zapytania?

a)

ResultList

b)

ResultSet

c)

ResultMap

d)

ResultRecord

107.

Jakiego typu powinna być zmienna rs, aby można było wywołać metodę next()?

a)

ResultSet

b)

ResultList

c)

ResultMap

d)

ResultRecord

108.

Jakiego typu powinna być zmienna rs, aby działała pętla while(rs.next())?

a)

ResultSet

b)

ResultList

c)

ResultMap

d)

ResultRecord

109.

Masz kolumnę typu TIMESTAMP. Chcesz pobrać ją jako LocalDateTime i jednocześnie zachować strefę czasową z bazy. Które podejście jest poprawne?

a)

getTimestamp("kolumna").toLocalDateTime()

b)

getObject("kolumna", LocalDateTime.class)

c)

getTimestamp("kolumna", Calendar.getInstance())

d)

Wszystkie powyższe

110.

W bazie danych jest kolumna typu NUMERIC(15,5). Chcesz pobrać wartość w taki sposób, aby zachować pełną precyzję i móc wykonywać operacje arytmetyczne w Javie bez utraty dokładności. Jaką metodę wybierasz?

a)

getDouble("kolumna")

b)

getBigDecimal("kolumna")

c)

getFloat("kolumna")

d)

getInt("kolumna")

111.

Masz kolumnę typu BOOLEAN w bazie MySQL. W JDBC metoda getBoolean() zwraca false zarówno dla NULL, jak i dla wartości false. Jak poprawnie rozróżnić NULL od false?

a)

getBoolean("kolumna") i potem wasNull()

b)

getObject("kolumna", Boolean.class)

c)

getInt("kolumna") i sprawdzenie wartości

d)

Wszystkie powyższe

112.

W Hibernate masz obiekt Person, który chcesz zapisać do bazy i natychmiast pobrać jego identyfikator generowany przez bazę. Która metoda Session pozwoli to zrobić najefektywniej?

a)

session.persist(person)

b)

session.save(person)

c)

session.update(person)

d)

session.merge(person)

113.

Dlaczego w aplikacji Hibernate najlepiej tworzyć tylko jedną instancję SessionFactory zamiast tworzyć ją za każdym razem przy otwieraniu sesji?

a)

Bo SessionFactory nie obsługuje wielu sesji równocześnie

b)

Bo tworzenie SessionFactory jest kosztowne i wolne

c)

Bo SessionFactory automatycznie zamyka wszystkie sesje po zakończeniu

d)

Bo SessionFactory jest singletonem w Javie

114.

Co się stanie, jeśli wywołasz session.save(obj) bez rozpoczętej transakcji (beginTransaction())?

a)

Obiekt zostanie zapisany natychmiast

b)

Hibernate zgłosi wyjątek

c)

Obiekt nie zostanie zapisany w bazie do momentu commit transakcji

d)

Obiekt zostanie zapisany, ale ID nie zostanie wygenerowane

115.

Która metoda Hibernate jest bardziej efektywna, gdy potrzebujesz tylko referencji do obiektu, ale nie zamierzasz od razu odczytywać jego pól?

a)

get()

b)

load()

c)

save()

d)

merge()

116.

W Hibernate chcesz, aby klasa Person była automatycznie powiązana z tabelą osoby, a pole id było kluczem głównym. Jak najlepiej to zrobić?

a)

Utworzyć plik XML mapowania Person.hbm.xml lub użyć adnotacji @Entity i @Table(name="osoby")

b)

Napisać zapytanie HQL typu FROM Person

c)

Użyć Criteria API session.createCriteria(Person.class)

d)

Utworzyć plik .hxml i wpisać definicję tabeli

117.

W Hibernate chcesz, aby klasa Order była powiązana z tabelą zamowienia, a pole customerId było kolumną w tabeli. Który sposób mapowania jest poprawny?

a)

Tworzenie zapytania HQL typu FROM Order

b)

Użycie adnotacji @Entity, @Table(name="zamowienia") i @Column(name="customerId")

c)

Utworzenie pliku .hxml z definicją kolumn

d)

Użycie Criteria API session.createCriteria(Order.class)

118.

W Hibernate chcesz, aby pole id w klasie Product było automatycznie generowane przez bazę danych. Która adnotacja najlepiej to osiąga?

a)

@Column(autoIncrement = true)

b)

@GeneratedValue(strategy = GenerationType.IDENTITY)

c)

@AutoIncrement

d)

@IdGenerator

119.

Jeżeli chcesz, aby Hibernate sam tworzył unikalne ID w pamięci bez polegania na bazie danych, którą strategię GenerationType powinieneś wybrać?

4 lines
120.

Jeżeli chcesz, aby Hibernate sam tworzył unikalne ID w pamięci bez polegania na bazie danych, którą strategię GenerationType powinieneś wybrać?

a)

IDENTITY

b)

SEQUENCE

c)

AUTO

d)

TABLE

121.

Masz relację jeden-do-wielu (@OneToMany) między Customer a Order. Chcesz, aby lista zamówień była ładowana dopiero przy pierwszym użyciu. Jak to osiągnąć?

a)

@OneToMany(fetch = FetchType.LAZY)

b)

@OneToMany(fetch = FetchType.EAGER)

c)

@LazyCollection

d)

session.load()

122.

Jaka jest główna wada EAGER w relacjach kolekcji w Hibernate?

a)

Może spowodować nadmierne pobranie danych i spowolnić aplikację

b)

Nie pozwala na zapis encji

c)

Nie działa z HQL

d)

Nie można używać w relacjach ManyToOne

123.

Jeżeli nie dodasz @Entity do klasy, ale spróbujesz ją zapisać przez Session.save(), co się stanie?

a)

Obiekt zostanie zapisany bez problemu

b)

Hibernate zgłosi wyjątek, że klasa nie jest encją

c)

Hibernate automatycznie doda adnotację @Entity w runtime

d)

Obiekt zostanie zapisany, ale tylko w pamięci, nie w bazie

124.

Która adnotacja Hibernate/JPA pozwala określić nazwę kolumny w tabeli dla pola klasy?

a)

@Entity

b)

@Table

c)

@Column(name = "nazwa_kolumny")

d)

@Id

125.

Jeżeli nie dodasz @Column przy polu, a nazwa pola różni się od nazwy kolumny w bazie, co się stanie?

a)

Hibernate automatycznie dopasuje nazwę i zapisze dane poprawnie

b)

Zostanie zgłoszony błąd mapowania

c)

Pole zostanie zignorowane przy zapisie do bazy

d)

Hibernate stworzy nową kolumnę w bazie

126.

Masz klasę Customer i klasę Order. Jeden klient może mieć wiele zamówień. Która adnotacja najlepiej opisuje tę relację po stronie Customer?

a)

@ManyToOne

b)

@OneToMany(mappedBy = "customer")

c)

@OneToOne

d)

@JoinColumn

127.

Dlaczego warto używać mappedBy w relacji @OneToMany?

a)

Aby Hibernate automatycznie tworzył tabelę pośrednią

b)

Aby wskazać Hibernate, która strona relacji zarządza kluczem obcym i uniknąć dodatkowej tabeli

c)

Aby ustawić fetch na LAZY

d)

Aby mapowanie działało bez adnotacji @Entity

128.

W klasie Order chcesz wskazać, że każde zamówienie należy do jednego klienta (Customer). Która adnotacja jest odpowiednia?

a)

@OneToMany

b)

@ManyToOne

c)

@JoinTable

d)

@Column

129.

Co się stanie, jeśli nie dodasz @JoinColumn przy relacji @ManyToOne?

a)

Hibernate zgłosi wyjątek

b)

Hibernate utworzy kolumnę domyślnie, używając nazwy pola + _id

c)

Relacja nie będzie działać

d)

Hibernate będzie wymagał ręcznego mapowania w XML