100 + Java Pytania i odpowiedzi do wywiadu (2025)

Oto Java pytania i odpowiedzi na rozmowach kwalifikacyjnych zarówno dla świeżych, jak i doświadczonych kandydatów, aby zdobyć wymarzoną pracę.

 

Java Pytania i odpowiedzi dotyczące rozmowy kwalifikacyjnej z zakresu programowania dla nowicjuszy

1) Jaka jest różnica pomiędzy klasą wewnętrzną a podklasą?

Klasa wewnętrzna to klasa zagnieżdżona w innej klasie. Klasa Inner ma prawa dostępu dla klasy, która ją zagnieżdża i może uzyskać dostęp do wszystkich zmiennych i metod zdefiniowanych w klasie zewnętrznej.

Podklasa to klasa, która dziedziczy z innej klasy zwanej superklasą. Podklasa może uzyskać dostęp do wszystkich publicznych i chronionych metod i pól swojej nadklasy.

👉 Bezpłatne pobieranie plików PDF: Java Wywiad Wywiad Pytania i odpowiedzi >>


2) Do czego służą różne specyfikatory dostępu Java zajęcia?

In Javaspecyfikatory dostępu to słowa kluczowe używane przed nazwą klasy, która definiuje zakres dostępu. Typy specyfikatorów dostępu dla klas to:

1) Publiczne: Klasa, metoda i pole są dostępne z dowolnego miejsca.

2) Chronione: Dostęp do metody,Field można uzyskać z tej samej klasy, do której należą, lub z podklas oraz z klasy tego samego pakietu, ale nie z zewnątrz.

3) Domyślnie: Dostęp do metody, pola i klasy można uzyskać tylko z tego samego pakietu, a nie spoza jego pakietu natywnego.

4) Prywatne: Dostęp do metody, pola można uzyskać z tej samej klasy, do której należą.


3) Jaki jest cel metod statycznych i zmiennych statycznych?

Kiedy zachodzi potrzeba współdzielenia metody lub zmiennej pomiędzy wieloma obiektami klasy zamiast tworzenia oddzielnych kopii dla każdego obiektu, używamy słowa kluczowego static, aby metoda lub zmienna była współdzielona dla wszystkich obiektów.


4) Co to jest enkapsulacja danych i jakie jest jej znaczenie?

Hermetyzacja to koncepcja programowania obiektowego służąca łączeniu właściwości i metod w jedną jednostkę.

Hermetyzacja pomaga programistom stosować modułowe podejście do tworzenia oprogramowania, ponieważ każdy obiekt ma swój własny zestaw metod i zmiennych oraz pełni swoje funkcje niezależnie od innych obiektów. Hermetyzacja służy również do ukrywania danych.


5) Co to jest klasa singletonowa? Podaj praktyczny przykład jego użycia.

Klasa singleton w Javie może mieć tylko jedną instancję, dlatego wszystkie jej metody i zmienne należą do tylko jednej instancji. Koncepcja klasy Singleton przydaje się w sytuacjach, gdy istnieje potrzeba ograniczenia liczby obiektów w klasie.

Najlepszym przykładem scenariusza użycia singletonu jest sytuacja, w której istnieje ograniczenie posiadania tylko jednego połączenia z bazą danych ze względu na ograniczenia sterowników lub problemy licencyjne.


6) Czym są pętle Java? Jakie są trzy rodzaje pętli?

Pętla jest używana w programowaniu do wielokrotnego wykonywania instrukcji lub bloku instrukcji. Są trzy rodzaje pętli Java:

1) Dla pętli

Pętle for są używane w Javie do wielokrotnego wykonywania instrukcji określoną liczbę razy. Pętli for używa się wtedy, gdy programista zna liczbę wykonań instrukcji.

2) Podczas gdy pętle

Pętla while jest używana, gdy pewne instrukcje muszą być wykonywane wielokrotnie, aż do spełnienia warunku. W pętlach while warunek jest sprawdzany przed wykonaniem instrukcji.

3) Wykonaj pętle while

Pętla Do While jest taka sama jak pętla While, z tą tylko różnicą, że warunek jest sprawdzany po wykonaniu bloku instrukcji. Dlatego w przypadku pętli do while instrukcje są wykonywane co najmniej raz.


7) Co to jest nieskończona pętla? Jak deklarowana jest nieskończona pętla?

Nieskończona pętla działa bez żadnych warunków i działa w nieskończoność. Nieskończoną pętlę można przerwać, definiując dowolną logikę przerywania w treści bloków instrukcji.

Nieskończona pętla jest deklarowana w następujący sposób:

for (;;)
{
    // Statements to execute

    // Add any loop breaking logic
}

8) Jaka jest różnica między instrukcjąkontynuuj i przerywaj?

przerwa i kontynuacja to dwa ważne słowa kluczowe używane w pętlach. Gdy w pętli użyte zostanie słowo kluczowe break, pętla zostanie natychmiast przerwana, natomiast użycie słowa kluczowegocontinu spowoduje przerwanie bieżącej iteracji i pętla będzie kontynuowana w następnej iteracji.

W poniższym przykładzie pętla zostaje przerwana, gdy licznik osiągnie 4.

for (counter = 0; counter & lt; 10; counter++)
    system.out.println(counter);

if (counter == 4) {

    break;
}

}

W poniższym przykładzie, gdy licznik osiągnie 4, pętla przeskakuje do następnej iteracji, a wszelkie instrukcje występujące po słowie kluczowymcontinu są pomijane w bieżącej iteracji.

for (counter = 0; counter < 10; counter++)
    system.out.println(counter);

if (counter == 4) {

    continue;
}
system.out.println("This will not get printed when counter is 4");
}

9) Jaka jest różnica między zmiennymi typu double i float w Java?

W Javie float zajmuje 4 bajty w pamięci while Double zajmuje 8 bajtów pamięci. Float to liczba dziesiętna zmiennoprzecinkowa o pojedynczej precyzji Double jest liczbą dziesiętną podwójnej precyzji.


10) Co to jest końcowe słowo kluczowe Java? Podaj przykład.

W Javie stałą deklaruje się za pomocą słowa kluczowego Final. Wartość można przypisać tylko raz i po przypisaniu nie można zmienić wartości stałej.

W poniższym przykładzie zadeklarowano stałą o nazwie const_val i przypisano jej wartość:

Finał prywatny int const_val=100

Kiedy metoda jest zadeklarowana jako ostateczna, NIE można jej zastąpić podklasami. Ta metoda jest szybsza niż jakakolwiek inna metoda, ponieważ są one rozwiązywane w wymaganym czasie.

Gdy klasa jest deklarowana jako finalna, nie może być podklasowana. Przykład String, Integer i inne klasy opakowujące.


11) Czym jest operator trójargumentowy? Podaj przykład.

Operator trójargumentowy, zwany również operatorem warunkowym, jest używany do decydowania, jaką wartość przypisać zmiennej na podstawie oceny wartości boolowskiej. Jest oznaczany jako ?

W poniższym przykładzie, jeśli ranga wynosi 1, statusowi przypisana jest wartość „Gotowe” w przeciwnym razie „Oczekujące”.

public class conditionTest {
    public static void main(String args[]) {
        String status;
        int rank = 3;
        status = (rank == 1) ? "Done" : "Pending";
        System.out.println(status);
    }
}

12) Jak można generować liczby losowe w Java?

  • Używając funkcji Math.random() możesz generować liczby losowe z zakresu od 0.1 do 1.0
  • Używanie klasy Random w pakiecie java.util

13) Co to jest domyślna obudowa przełącznika? Podaj przykład.

W instrukcja switch, wykonywany jest przypadek domyślny, jeśli żaden inny warunek przełączenia nie jest zgodny. Przypadek domyślny jest przypadkiem opcjonalnym. Można go zadeklarować dopiero po zakodowaniu wszystkich pozostałych przypadków przełączników.

W poniższym przykładzie, jeśli wynik nie wynosi 1 lub 2, używany jest przypadek domyślny.

public class SwitchExample {
    public static void main(String args[]) {
        int score = 4; // Declare the score variable inside the main method
        switch (score) {
            case 1:
                System.out.println("Score is 1");
                break;
            case 2:
                System.out.println("Score is 2");
                break;
            default:
                System.out.println("Default Case");
        }
    }
}

14) Jaka jest klasa bazowa Java z którego wywodzą się wszystkie klasy?

java.lang.object


15) Czy można zastosować metodę main()? Java może zwrócić jakiekolwiek dane?

W Javie metoda main() nie może zwrócić żadnych danych, dlatego zawsze jest deklarowana z typem zwracanym void.


16) Jakie są Java Pakiety? Jakie znaczenie mają paczki?

In Javapakiet to zbiór klas i interfejsów, które są ze sobą powiązane, ponieważ są ze sobą powiązane. Użycie pakietów pomaga programistom w modularyzacji kodu i grupowaniu kodu w celu prawidłowego ponownego użycia. Gdy kod zostanie spakowany w pakiety, można go zaimportować do innych klas i użyć.


17) Czy możemy zadeklarować klasę jako abstrakcyjną, nie mając żadnej abstrakcyjnej metody?

Tak, możemy utworzyć klasę abstrakcyjną, używając słowa kluczowego abstract przed nazwą klasy, nawet jeśli nie ma ona żadnej metody abstrakcyjnej. Jednak jeśli klasa ma choć jedną metodę abstrakcyjną, musi być zadeklarowana jako abstract, w przeciwnym razie zwróci błąd.


18) Jaka jest różnica między klasą abstrakcyjną a interfejsem w Java?

Podstawowa różnica między klasą abstrakcyjną a interfejsem polega na tym, że interfejs może posiadać jedynie deklarację publicznych metod statycznych bez konkretnej implementacji, podczas gdy klasa abstrakcyjna może mieć elementy członkowskie z dowolnymi specyfikatorami dostępu (publiczne, prywatne itp.) z konkretną implementacją lub bez.

Inną kluczową różnicą w użyciu klas abstrakcyjnych i interfejsów jest to, że klasa, która implementuje interfejs, musi implementować wszystkie metody interfejsu, podczas gdy klasa, która dziedziczy z klasy abstrakcyjnej, nie wymaga implementacji wszystkich metod swojej superklasy.

Klasa może implementować wiele interfejsów, ale może rozszerzać tylko jedną klasę abstrakcyjną.


19) Jakie są implikacje wydajnościowe interfejsów w stosunku do klas abstrakcyjnych?

Interfejsy działają wolniej w porównaniu z klasami abstrakcyjnymi, ponieważ interfejsy wymagają dodatkowych pośredników. Innym kluczowym czynnikiem, który programiści powinni wziąć pod uwagę, jest to, że każda klasa może rozszerzać tylko jedną klasę abstrakcyjną, podczas gdy klasa może implementować wiele interfejsów.

Korzystanie z interfejsów nakłada również dodatkowe obciążenie na programistów, ponieważ za każdym razem, gdy interfejs jest implementowany w klasie; programista jest zmuszony wdrożyć każdą metodę interfejsu.


20) Czy import pakietu importuje również jego podpakiety Java?

W Javie, gdy pakiet jest importowany, jego podpakiety nie są importowane i programista musi je zaimportować osobno, jeśli to konieczne.

Na przykład, jeśli programista zaimportuje pakiet uniwersytet.*, zostaną załadowane wszystkie klasy z pakietu o nazwie uniwersytet, ale nie zostaną załadowane żadne zajęcia z podpakietu. Aby załadować klasy z jego podpakietu (powiedzmy działu), programista musi je jawnie zaimportować w następujący sposób:

Importuj uniwersytet.wydział.*


21) Czy możemy zadeklarować główną metodę naszej klasy jako prywatną?

W Javie główna metoda musi być statyczna publiczna, aby poprawnie uruchomić dowolną aplikację. Jeśli metoda główna zostanie zadeklarowana jako prywatna, programista nie otrzyma żadnego błędu kompilacji, jednak nie zostanie wykonana i wyświetli błąd wykonania.


22) Jak przekazać argument do funkcji przez referencję zamiast przez wartość?

W Javie możemy przekazywać argumenty do funkcji tylko poprzez wartość, a nie przez referencję.


23) Jak obiekt jest serializowany w Javie?

W Javie, aby przekonwertować obiekt na strumień bajtów poprzez serializację, klasa implementuje interfejs o nazwie Serializable. Wszystkie obiekty klasy implementującej interfejs serializowalny są serializowane, a ich stan zapisywany jest w strumieniu bajtów.


24) Kiedy powinniśmy stosować serializację?

Serializacja jest stosowana, gdy dane muszą zostać przesłane przez sieć. Dzięki serializacji stan obiektu jest zapisywany i konwertowany na strumień bajtów. Strumień bajtów jest przesyłany przez sieć, a obiekt jest ponownie tworzony w miejscu docelowym.


25) Czy obowiązkowe jest, aby po bloku próbnym nastąpił blok catch? Java do obsługi wyjątków?

Po bloku Try musi nastąpić blok Catch, blok Final lub oba. Każdy wyjątek zgłoszony z bloku try musi zostać przechwycony w bloku catch lub w bloku Final zostaną umieszczone określone zadania, które należy wykonać przed przerwaniem kodu.


Java Pytania i odpowiedzi na rozmowie kwalifikacyjnej dla doświadczonych

26) Czy istnieje sposób na pominięcie bloku wyjątku Final, nawet jeśli w bloku wyjątku wystąpi jakiś wyjątek?

Jeśli wyjątek zostanie zgłoszony w bloku Try, sterowanie przechodzi do bloku catch, jeśli istnieje, w przeciwnym razie do bloku finally. Blok Finally jest zawsze wykonywany, gdy wystąpi wyjątek, a jedynym sposobem uniknięcia wykonania jakichkolwiek instrukcji w bloku Finally jest wymuszone przerwanie kodu poprzez napisanie następującego wiersza kodu na końcu bloku try:

System.exit(0);

27) Kiedy wywoływany jest konstruktor klasy?

Konstruktor klasy jest wywoływany za każdym razem, gdy tworzony jest obiekt za pomocą słowa kluczowego new.

Na przykład w poniższej klasie dwa obiekty są tworzone za pomocą słowa kluczowego new, a zatem konstruktor jest wywoływany dwa razy.

public class const_example {

    const_example() {

        system.out.println("Inside constructor");
    }
    public static void main(String args[]) {

        const_example c1 = new const_example();

        const_example c2 = new const_example();
    }
}

28) Czy klasa może mieć wielu konstruktorów?

Tak, klasa może mieć wiele konstruktorów z różnymi parametrami. To, który konstruktor zostanie użyty do tworzenia obiektów, zależy od argumentów przekazanych podczas tworzenia obiektów.


29) Czy możemy zastąpić statyczne metody klasy?

Nie możemy zastąpić metod statycznych. Metody statyczne należą do klasy, a nie do poszczególnych obiektów i są rozpoznawane w czasie kompilacji (a nie w czasie wykonywania). Nawet jeśli spróbujemy zastąpić metodę statyczną, nie otrzymamy błędu kompilacji ani wpływu przesłaniania podczas uruchamiania kod.


30) Jaki będzie wynik w poniższym przykładzie?

public class superclass {

    public void displayResult() {

        system.out.println("Printing from superclass");

    }

}

public class subclass extends superclass {

    public void displayResult() {

        system.out.println("Displaying from subClass");

        super.displayResult();

    }

    public static void main(String args[]) {

        subclass obj = new subclass();

        obj.displayResult();

    }

}

Ans: Dane wyjściowe będą następujące:

Wyświetlanie z podklasy

Druk z superklasy


31) Czy String jest typem danych w Javie?

String nie jest prymitywnym typem danych w Javie. Kiedy string jest tworzony w Javie, jest on w rzeczywistości obiektem JavaTworzona klasa .Lang.String. Po utworzeniu tego obiektu string, na obiekcie string można zastosować wszystkie wbudowane metody klasy String.


32) W poniższym przykładzie, ile obiektów typu String zostało utworzonych?

String s1="I am Java Expert";

String s2="I am C Expert";

String s3="I am Java Expert";

W powyższym przykładzie dwa obiekty JavaTworzona jest klasa .Lang.String. s1 i s3 są odniesieniami do tego samego obiektu.


33) Dlaczego warto używać stringów Java nazywane są Niezmiennymi?

W Javie obiekty łańcuchowe nazywane są niezmiennymi, ponieważ po przypisaniu wartości do łańcucha nie można jej zmienić, a w przypadku zmiany tworzony jest nowy obiekt.

W poniższym przykładzie odwołanie str odnosi się do obiektu typu string mającego wartość „Wartość jeden”.

String str="Value One";

Po przypisaniu mu nowej wartości tworzony jest nowy obiekt String, a odniesienie jest przenoszone do nowego obiektu.

str="New Value";

34) Jaka jest różnica między tablicą a wektorem?

Tablica grupuje dane tego samego pierwotnego typu i ma charakter statyczny, natomiast wektory mają charakter dynamiczny i mogą przechowywać dane różnych typów danych.


35) Co to jest wielowątkowość?

Wielowątkowość to koncepcja programowania umożliwiająca jednoczesne wykonywanie wielu zadań w ramach jednego programu. Wątki korzystają z tego samego stosu procesów i działają równolegle. Pomaga w poprawie wydajności dowolnego programu.


36) Dlaczego w Java?

Interfejs Runnable jest używany w Javie do implementacji aplikacji wielowątkowych. JavaInterfejs .Lang.Runnable jest implementowany przez klasę w celu obsługi wielowątkowości.


37) Jakie są dwa sposoby implementacji wielowątkowości w Java?

Aplikacje wielowątkowe można tworzyć w Java stosując dowolną z następujących dwóch metodologii:

1) Używając JavaInterfejs .Lang.Runnable. Klasy implementują ten interfejs, aby umożliwić wielowątkowość. W tym interfejsie zaimplementowano metodę Run().

2) Pisząc klasę rozszerzającą JavaKlasa .Lang.Thread.


38) Kiedy wymaganych jest wiele zmian w danych, którą z nich należy preferować? Ciąg lub ciągBuffer?

Ponieważ StringBuffers mają charakter dynamiczny i możemy zmieniać wartości StringBuffer obiektów w przeciwieństwie do String, który jest niezmienny, zawsze dobrym wyborem jest użycie StringBuffer gdy dane są zbyt często zmieniane. Jeśli w takim przypadku użyjemy String, przy każdej zmianie danych zostanie utworzony nowy obiekt String, co będzie dodatkowym obciążeniem.


39) Jaki jest cel stosowania Break w każdym przypadku instrukcji Switch?

Break jest używany po każdym przypadku (z wyjątkiem ostatniego) w przełączniku, dzięki czemu kod jest łamany po prawidłowym przypadku i nie przepływa również w kolejnych przypadkach.

Jeśli po każdym przypadku nie zostanie użyta przerwa, wszystkie przypadki następujące po prawidłowym przypadku również zostaną wykonane, co spowoduje błędne wyniki.


40) Jak odbywa się zbieranie śmieci Java?

W Javie, gdy nie ma już odniesień do obiektu, zbieranie śmieci odbywa się i obiekt jest automatycznie niszczony. Do automatycznego zbierania śmieci java wywołuje metodę System.gc() lub metodę Runtime.gc().


41) Jak możemy wykonać dowolny kod jeszcze przed metodą główną?

Jeśli chcemy wykonać jakiekolwiek instrukcje jeszcze przed utworzeniem obiektów w czasie ładowania klasy, możemy użyć statycznego bloku kodu w klasie. Wszelkie instrukcje wewnątrz tego statycznego bloku kodu zostaną wykonane jednorazowo w momencie ładowania klasy, nawet przed utworzeniem obiektów w metodzie głównej.


42) Czy klasa może być jednocześnie superklasą i podklasą? Podaj przykład.

Jeśli stosowana jest hierarchia dziedziczenia, klasa może być jednocześnie nadklasą dla innej klasy i podklasą dla innej.

W poniższym przykładzie klasa kontynentu jest podklasą klasy światowej i jest superklasą klasy kraju.

public class world {

..........

}
public class continenet extends world {

............

}
public class country extends continent {

......................

}

43) Jak tworzone są obiekty klasy, jeśli w klasie nie zdefiniowano konstruktora?

Nawet jeśli w klasie Java nie zdefiniowano żadnego jawnego konstruktora, obiekty zostaną utworzone pomyślnie, ponieważ do tworzenia obiektów zostanie domyślnie użyty konstruktor domyślny. Ten konstruktor nie ma parametrów.


44) W jaki sposób w wielowątkowości możemy mieć pewność, że zasób nie będzie używany przez wiele wątków jednocześnie?

W wielowątkowości dostęp do zasobów współdzielonych przez wiele wątków można kontrolować, korzystając z koncepcji synchronizacji. zsynchronizowane słowo kluczowe, możemy zapewnić, że tylko jeden wątek może w danym momencie korzystać z współdzielonego zasobu, a inne będą mogły przejąć kontrolę nad zasobem dopiero wtedy, gdy zostanie on uwolniony od innego, który go używa.


45) Czy dla obiektu możemy wywołać konstruktora klasy więcej niż raz?

Konstruktor wywoływany jest automatycznie, gdy tworzymy obiekt za pomocą słowa kluczowego new. Jest wywoływany tylko raz dla obiektu w momencie tworzenia obiektu, dlatego nie możemy ponownie wywołać konstruktora dla obiektu po jego utworzeniu.


46) Istnieją dwie klasy o nazwach classA i classB. Obie klasy znajdują się w tym samym pakiecie. Czy obiekt klasy B może uzyskać dostęp do prywatnego członka klasy A?

Prywatni członkowie klasy nie są dostępni poza zakresem tej klasy i żadna inna klasa, nawet w tym samym pakiecie, nie może uzyskać do nich dostępu.


47) Czy w klasie o tej samej nazwie możemy mieć dwie metody?

Możemy zdefiniować dwie metody w klasie o tej samej nazwie, ale z różną liczbą/rodzajem parametrów. To, która metoda ma zostać wywołana, zależy od przekazanych parametrów.

Na przykład w poniższej klasie mamy dwie metody drukowania o tej samej nazwie, ale różnych parametrach. W zależności od parametrów odpowiedni zostanie wywołany:

public class methodExample {

    public void print() {

        system.out.println("Print method without parameters.");

    }

    public void print(String name) {

        system.out.println("Print method with parameter");

    }

    public static void main(String args[]) {

        methodExample obj1 = new methodExample();

        obj1.print();

        obj1.print("xx");

    }

}

48) Jak możemy wykonać kopię obiektu Java?

Możemy użyć koncepcji klonowania, aby utworzyć kopię obiektu. Za pomocą klonu tworzymy kopie z rzeczywistym stanem obiektu.

Clone() jest metodą interfejsu Cloneable i dlatego do tworzenia kopii obiektów należy zaimplementować interfejs Cloneable.


49) Jaka jest korzyść z dziedziczenia?

Kluczową zaletą korzystania z dziedziczenia jest możliwość ponownego użycia kodu, ponieważ dziedziczenie umożliwia podklasom ponowne wykorzystanie kodu swojej nadklasy. Polimorfizm (rozszerzalność) to kolejna wielka zaleta, która umożliwia wprowadzanie nowych funkcjonalności bez wpływu na istniejące klasy pochodne.


50) Jaki jest domyślny specyfikator dostępu dla zmiennych i metod klasy?

Domyślny specyfikator dostępu do zmiennych i metod jest chroniony pakietem, tj. zmienne i klasa są dostępne dla dowolnej innej klasy, ale w tym samym pakiecie, a nie poza pakietem.


51) Podaj przykład użycia wskaźników w Java class.

Nie ma w nim żadnych wskazówek Java. Nie możemy więc używać koncepcji wskaźników w Java.


52) Jak możemy ograniczyć dziedziczenie klasy, aby żadna klasa nie mogła być z niej dziedziczona?

Jeśli chcemy, aby klasa nie była dalej rozszerzana przez żadną klasę, możemy użyć słowa kluczowego koniec z nazwą klasy.

W poniższym przykładzie klasa Stone jest ostateczna i nie można jej rozszerzyć

public Final Class Stone {
	// Class methods and Variables
}

53) Jaki jest zakres dostępu specyfikatora dostępu chronionego?

Kiedy metoda lub zmienna jest zadeklarowana ze specyfikatorem dostępu chronionego, staje się ona dostępna w tej samej klasie, dowolnej innej klasie tego samego pakietu, a także podklasie.

zmiana Klasa Pakiet Podklasa Świat
publiczny Y Y Y Y
chroniony Y Y Y N
brak modyfikatora Y Y N N
prywatny Y N N N

54) Jaka jest różnica między stosem a kolejką?

Zarówno stos, jak i kolejka są używane jako symbole zastępcze do gromadzenia danych. Podstawowa różnica między stosem a kolejką polega na tym, że stos opiera się na zasadzie „ostatni weszło, pierwsze wyszło” (LIFO), podczas gdy kolejka opiera się na zasadzie FIFO (pierwsze weszło, pierwsze wyszło).


55) Jak w Javie możemy uniemożliwić serializację zmiennych?

Jeśli chcemy, aby pewne zmienne klasy nie były serializowane, możemy użyć słowa kluczowego przemijający podczas ich deklarowania. Na przykład zmienna trans_var poniżej jest zmienną przejściową i nie można jej serializować:

public class transientExample { 
	private transient trans_var; 
    // rest of the code 
}

56) Jak możemy używać prymitywnych typów danych jako obiektów?

Prymitywne typy danych, takie jak int, można traktować jako obiekty, korzystając z odpowiednich klas opakowań. Na przykład Integer jest klasą opakowującą dla pierwotnego typu danych int. Do klasy opakowania możemy zastosować różne metody, tak jak do każdego innego obiektu.


57) Jakie typy wyjątków są wychwytywane w czasie kompilacji?

Sprawdzone wyjątki można przechwycić już w momencie kompilacji programu. Aby pomyślnie skompilować kod, zaznaczone wyjątki muszą być obsługiwane przy użyciu bloku try catch w kodzie.


58) Opisz różne stany wątku.

Wątek w Java może znajdować się w jednym z następujących stanów:

  • Gotowy: po utworzeniu wątku znajduje się on w stanie Gotowy.
  • Działa: aktualnie wykonywany wątek jest w stanie działania.
  • Oczekiwanie: wątek oczekujący na zwolnienie określonych zasobów przez inny wątek jest w stanie oczekiwania.
  • Martwy: wątek, który przestał działać po wykonaniu, jest w stanie martwym.

59) Czy możemy użyć domyślnego konstruktora klasy, nawet jeśli zdefiniowany jest jawny konstruktor?

Java udostępnia domyślny konstruktor bezargumentowy, jeśli w pliku a nie zdefiniowano żadnego jawnego konstruktora Java klasa. Jeśli jednak zdefiniowano jawny konstruktor, nie można wywołać konstruktora domyślnego i programista może używać tylko tych konstruktorów, które są zdefiniowane w klasie.


60) Czy możemy zastąpić metodę, używając tej samej nazwy metody i argumentów, ale różnych typów zwracanych wartości?

Podstawowym warunkiem nadpisania metody jest to, że nazwa metody, argumenty oraz typ zwracany muszą być dokładnie takie same jak nazwa metody nadpisywanej. Dlatego użycie innego typu zwracanego nie zastępuje metody.


61) Jaki będzie wynik następującego fragmentu kodu?

public class operatorExample {

    public static void main(String args[]) {

        int x = 4;

        system.out.println(x++);
	}
}

W tym przypadku użyto operatora postfix ++, który najpierw zwraca wartość, a następnie ją inkrementuje. Stąd jego wyjście będzie wynosić 4.


61) Ktoś twierdzi, że pomyślnie skompilował klasę Java, nawet nie mając w niej metody głównej? Czy to możliwe?

Metoda główna jest punktem wejścia Java class i jest jednak wymagana do wykonania programu; klasa zostaje pomyślnie skompilowana, nawet jeśli nie ma metody głównej. Nie da się go jednak uruchomić.


62) Czy możemy wywołać metodę niestatyczną z metody statycznej?

Metody niestatyczne są własnością obiektów klasy i mają zakres na poziomie obiektowym. Aby wywołać metody niestatyczne z bloku statycznego (jak ze statycznej metody głównej), należy najpierw utworzyć obiekt klasy. Następnie za pomocą odniesienia do obiektu można wywołać te metody.


63) Jakie dwie zmienne środowiskowe należy ustawić, aby którekolwiek uruchomić Java programy?

Java programy mogą być wykonywane na maszynie tylko wtedy, gdy zostaną poprawnie ustawione dwie zmienne środowiskowe:

  1. Zmienna PATH
  2. Zmienna CLASSPATH

64) Czy można używać zmiennych w Java bez inicjalizacji?

In Java, jeśli zmienna zostanie użyta w kodzie bez wcześniejszej inicjalizacji prawidłową wartością, program nie skompiluje się i wyświetli błąd, ponieważ do zmiennych w kodzie nie jest przypisana żadna wartość domyślna Java.


65) Czy zajęcia w Java być dziedziczone z więcej niż jednej klasy?

In Java, klasa może pochodzić tylko z jednej klasy, a nie z wielu klas. Wielokrotne dziedziczenie nie jest obsługiwane przez Java.


66) Czy konstruktor może mieć inną nazwę niż nazwa klasy w Java?

Konstruktor w Java musi mieć taką samą nazwę jak nazwa klasy, a jeśli nazwa jest inna, nie działa jak konstruktor, a kompilator uważa to za normalną metodę.


67) Jaki będzie wynik Round(3.7) i Ceil(3.7)?

Round(3.7) zwraca 4, a Ceil(3.7) zwraca 4.


68) Czy możemy użyć goto in Java przejść do określonej linii?

In Java, nie ma słowa kluczowego goto, a Java nie obsługuje funkcji przechodzenia do konkretnego oznaczonego wiersza.


69) Czy można rozpocząć ponownie martwy wątek?

W Javie wątek, który jest w stanie martwym, nie może zostać uruchomiony ponownie. Nie ma możliwości ponownego uruchomienia martwego wątku.


70) Czy poniższa deklaracja klasy jest poprawna?

public abstract final class testClass {
	// Class methods and variables
}

Odp.: Powyższa deklaracja klasy jest niepoprawna, ponieważ klasy abstrakcyjnej nie można zadeklarować jako ostatecznej.


71) Czy JDK jest wymagany na każdym komputerze do uruchomienia a Java program?

JDK to zestaw deweloperski Java i jest wymagany wyłącznie do programowania i uruchamiania aplikacji Java program na maszynie, JDK nie jest wymagany. Wymagane jest tylko środowisko JRE.


72) Jaka jest różnica między porównaniem metodą equals a operatorem ==?

In JavaMetoda equals() służy do porównywania zawartości dwóch obiektów typu string i zwraca wartość true, jeśli mają one taką samą wartość, podczas gdy operator == porównuje odwołania do dwóch obiektów typu string.

W poniższym przykładzie equals() zwraca true, ponieważ dwa obiekty string mają takie same wartości. Jednak operator == zwraca false, ponieważ oba obiekty string odwołują się do różnych obiektów:

public class equalsTest {

    public static void main(String args[]) {

        String str1 = new String("Hello World");

        String str2 = new String("Hello World");

        if (str1.equals(str2))

        { // this condition is true

            System.out.println("str1 and str2 are equal in terms of values");

        }

        if (str1 == str2) {

            //This condition is true

            System.out.println("Both strings are referencing same object");

        } else

        {

            // This condition is NOT true

            System.out.println("Both strings are referencing different objects");

        }

    }

}

73) Czy można zdefiniować metodę w Java class, ale zapewnić jej implementację w kodzie innego języka, np. C?

Tak, możemy to zrobić metodami natywnymi. W przypadku programowania opartego na metodach natywnych definiujemy publiczne metody statyczne w naszym pliku Java class bez jej implementacji, a następnie implementacja odbywa się osobno w innym języku, takim jak C.


74) Jak definiuje się destruktory w Java?

In Java, w klasie nie zdefiniowano destruktorów, ponieważ nie ma takiej potrzeby. Java ma własny mechanizm zbierania śmieci, który wykonuje to zadanie automatycznie, niszcząc obiekty, do których nie ma już odniesienia.


Java Pytania i odpowiedzi podczas rozmowy kwalifikacyjnej dotyczące doświadczenia powyżej 5 lat

75) Czy zmienna może być jednocześnie lokalna i statyczna?

Nie, zmienna nie może być jednocześnie statyczna i lokalna. Zdefiniowanie zmiennej lokalnej jako statycznej powoduje błąd kompilacji.


76) Czy w interfejsie można stosować metody statyczne?

Metod statycznych nie można zastąpić w żadnej klasie, natomiast metody w interfejsie są domyślnie abstrakcyjne i powinny być zaimplementowane w klasach implementujących interfejs. Dlatego nie ma sensu mieć metod statycznych w interfejsie Java.


77) Czy w klasie implementującej interfejs możemy zmienić wartość dowolnej zmiennej zdefiniowanej w interfejsie?

Nie, nie możemy zmienić wartości żadnej zmiennej interfejsu w klasie implementującej, ponieważ wszystkie zmienne zdefiniowane w interfejsie są domyślnie publiczne, statyczne i ostateczne. Zmienne finalne są jak stałe, których nie można później zmienić.


78) Czy słuszne jest stwierdzenie, że ze względu na funkcję zbierania śmieci w Java, program Java nigdy nie traci pamięci?

Mimo że automatyczne zbieranie śmieci jest zapewniane przez Java, nie gwarantuje, że a Java program nie straci pamięci, ponieważ istnieje możliwość utworzenia Java obiekty są wykonywane w szybszym tempie w porównaniu do wyrzucania elementów bezużytecznych, co skutkuje zapełnieniem wszystkich dostępnych zasobów pamięci.

Zatem zbieranie elementów bezużytecznych pomaga zmniejszyć ryzyko utraty pamięci programu, ale tego nie gwarantuje.


79) Czy dla metody głównej możemy mieć inny typ zwrotu niż void?

Nie, Java Główna metoda klasy może mieć tylko zwracany typ void, aby program mógł zostać pomyślnie wykonany.

Niemniej jednak, jeśli koniecznie musisz zwrócić wartość po zakończeniu metody main, możesz użyć System.exit(int status)


80) Chcę ponownie sięgnąć po obiekt, który został wyrzucony i użyć go. Jak to możliwe?

Gdy obiekt zostanie zniszczony przez garbage collector, nie istnieje już na stercie i nie można uzyskać do niego dostępu. Nie ma możliwości ponownego odwołania się do niego.


81 w Java programowanie wątków, która metoda jest koniecznością dla wszystkich wątków?

Run() to metoda interfejsu Runnable, która musi zostać zaimplementowana przez wszystkie wątki.


82) Chcę kontrolować połączenia z bazą danych w moim programie i chcę, aby tylko jeden wątek mógł nawiązać połączenie z bazą danych w danym momencie. Jak mogę wdrożyć tę logikę?

Odpowiedź: Można to wdrożyć, wykorzystując koncepcję synchronizacji. Kod związany z bazą danych można umieścić w metodzie, która hs zsynchronizowane słowo kluczowe, tak aby tylko jeden wątek mógł uzyskać do niego dostęp w danym momencie.


83) W jaki sposób programista może zgłosić wyjątek ręcznie?

Aby ręcznie zgłosić wyjątek w bloku kodu, rzucać używane jest słowo kluczowe. Następnie ten wyjątek jest przechwytywany i obsługiwany w bloku catch.

public void topMethod() {
    try {
        excMethod();
    } catch (ManualException e) {}
}

public void excMethod {
    String name = null;
    if (name == null) {
        throw (new ManualException("Exception thrown manually ");
        }
    }

84) Chcę, aby moja klasa została opracowana w taki sposób, aby żadna inna klasa (nawet klasa pochodna) nie mogła stworzyć jej obiektów. Jak mogę to zrobić?

Jeśli zadeklarujemy konstruktor klasy jako prywatny, nie będzie on dostępny dla żadnej innej klasy, a zatem żadna inna klasa nie będzie w stanie go utworzyć, a tworzenie jego obiektu będzie ograniczone tylko do niej samej.


85) Jak przechowywane są przedmioty Java?

W Javie każdy obiekt po utworzeniu otrzymuje przestrzeń pamięci ze sterty. Gdy obiekt jest niszczony przez garbage collector, przestrzeń przydzielona mu ze sterty jest ponownie przydzielana do sterty i staje się dostępna dla nowych obiektów.


86) Jak możemy znaleźć rzeczywisty rozmiar obiektu na stercie?

W Javie nie ma możliwości sprawdzenia dokładnego rozmiaru obiektu na stercie.


87) Która z poniższych klas będzie miała przydzieloną większą ilość pamięci?

Klasa A: Trzy metody, cztery zmienne, brak obiektu

Klasa B: Pięć metod, trzy zmienne, brak obiektu

Pamięć nie jest przydzielana przed utworzeniem obiektów. Ponieważ dla obu klas nie utworzono żadnych obiektów, więc dla żadnej klasy nie jest przydzielana pamięć na stercie.


88) Co się stanie, jeśli w programie nie zostanie obsłużony wyjątek?

Jeżeli wyjątek nie zostanie obsłużony w programie za pomocą bloków try catch, program zostanie przerwany i nie zostanie wykonane żadne polecenie po poleceniu, które spowodowało zgłoszenie wyjątku.


89) Mam zdefiniowanych w klasie wiele konstruktorów. Czy można wywołać konstruktora z ciała innego konstruktora?

Jeśli klasa ma wiele konstruktorów, możliwe jest wywołanie jednego konstruktora z treści innego za pomocą to().


90) Co oznacza klasa anonimowa?

Klasa anonimowa to klasa zdefiniowana bez nazwy w pojedynczym wierszu kodu przy użyciu słowa kluczowego new.

Na przykład w poniższym kodzie zdefiniowaliśmy anonimową klasę w jednym wierszu kodu:

public java.util.Enumeration testMethod()

{

    return new java.util.Enumeration()

    {

        @Override

        public boolean hasMoreElements()

        {

            // TODO Auto-generated method stub

            return false;

        }

        @Override

        public Object nextElement()

        {

            // TODO Auto-generated method stub

            return null;

        }

    }

91) Czy istnieje sposób na zwiększenie rozmiaru tablicy po jej deklaracji?

Tablice są statyczne i gdy określimy ich rozmiar, nie możemy go zmienić. Jeśli chcemy używać takich kolekcji, w których możemy wymagać zmiany rozmiaru (liczby elementów), powinniśmy preferować wektory zamiast tablic.


92) Jeśli aplikacja zawiera wiele klas, czy można mieć metodę główną w więcej niż jednej klasie?

Jeśli w aplikacji Java istnieje metoda główna w więcej niż jednej klasie, nie spowoduje to żadnego problemu, ponieważ punktem wejścia dla dowolnej aplikacji będzie konkretna klasa, a kod zacznie się od głównej metody tylko tej konkretnej klasy.


93) Chcę zachować dane obiektów do późniejszego wykorzystania. Jakie jest najlepsze podejście, aby to zrobić?

Najlepszym sposobem na utrwalenie danych do wykorzystania w przyszłości jest skorzystanie z koncepcji serializacji.


94) W czym jest klasa lokalna Java?

In Java, jeśli zdefiniujemy nową klasę w konkretnym bloku, będzie ona nazywana klasą lokalną. Taka klasa ma zasięg lokalny i nie można jej używać poza blokiem, w którym została zdefiniowana.


95) Sznurek i sznurekBuffer oba reprezentują obiekty typu String. Czy możemy porównać String i StringBuffer in Java?

Chociaż String i StringBuffer oba reprezentują obiekty typu String, nie możemy ich ze sobą porównać, a jeśli spróbujemy je porównać, pojawi się błąd.


96) Które API jest dostarczane przez Java do operacji na zbiorze obiektów?

Java udostępnia interfejs API kolekcji, który udostępnia wiele przydatnych metod, które można zastosować na zestawie obiektów. Niektóre z ważnych klas udostępnianych przez Collection API to ArrayList, HashMap, TreeSet i TreeMap.


97) Czy za pomocą rzutowania typów możemy rzutować dowolny inny typ na typ boolowski?

Nie, nie możemy rzutować żadnego innego typu pierwotnego na typ danych Boolean ani nie możemy rzutować typu danych Boolean na żaden inny typ danych pierwotnych.


98) Czy w przypadku nadpisywania metod możemy używać różnych typów zwracanych metod?

Podstawowy wymóg dotyczący przesłaniania metod w Java jest to, że przesłonięta metoda powinna mieć tę samą nazwę i parametry. Metodę można jednak zastąpić innym typem zwracanym, o ile nowy typ zwracany rozszerza oryginał.

Na przykład metoda zwraca typ referencyjny.

Class B extends A {

    A method(int x) {

        //original method

    }

    B method(int x) {

        //overridden method

    }

}

99) Jaka jest klasa bazowa wszystkich klas wyjątków?

In Java, Java.lang.Throwable jest nadklasą wszystkich klas wyjątków i wszystkie klasy wyjątków pochodzą z tej klasy bazowej.


100) Jaka jest kolejność wywoływania konstruktorów w dziedziczeniu?

W przypadku dziedziczenia, gdy tworzony jest nowy obiekt klasy pochodnej, najpierw wywoływany jest konstruktor nadklasy, a następnie konstruktor klasy pochodnej.

Przygotuj się do rozmowy kwalifikacyjnej!!! Iść przez Java Poradnik żeby być lepiej przygotowanym.

To szczegółowe Java Mock Test Quiz pomoże Ci rozwiać wątpliwości Java pytania do rozmowy kwalifikacyjnej, a także pomogą Ci przejść rozmowę kwalifikacyjną.

Te Java i Java 8 pytań na rozmowie kwalifikacyjnej pomoże również w Twoim vivie (oral)