100 najczęściej zadawanych pytań i odpowiedzi dotyczących języka Java (pobierz plik PDF)

ściągnij PDF

Zebraliśmy najczęściej zadawane pytania i odpowiedzi dotyczące języka Java podczas rozmowy kwalifikacyjnej, które pomogą Ci przygotować się do pytań do wywiadu w języku Basic Java, które ankieter może zadać podczas rozmowy kwalifikacyjnej. Na tej liście pytań do rozmowy kwalifikacyjnej w języku Basic Java uwzględniliśmy wszystkie często zadawane pytania na rozmowę kwalifikacyjną w zakresie podstawowej i zaawansowanej wersji języka Core Java wraz ze szczegółowymi odpowiedziami, które pomogą Ci wyczyścić rozmowę kwalifikacyjną.

Poniższa lista zawiera 100 ważnych pytań do rozmowy kwalifikacyjnej dotyczącej języka Core Java dla osób odświeżających, a także pytania dotyczące języka Java i odpowiedzi dla doświadczonych programistów, aby pomóc im przygotować się do rozmowy kwalifikacyjnej. Ten szczegółowy przewodnik z pytaniami na rozmowę kwalifikacyjną dotyczącą programowania w języku Java pomoże Ci łatwo złamać rozmowę kwalifikacyjną.

Podstawowe pytania i odpowiedzi do wywiadów dotyczących języka Java dla świeżo upieczonych i doświadczonych użytkowników

Q1. Jaka jest różnica między klasą wewnętrzną a podklasą?

Odp: Klasa wewnętrzna to klasa zagnieżdżona w innej klasie. Klasa wewnętrzna ma prawa dostępu do 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 dziedzicząca po innej klasie zwanej superklasą. Podklasa ma dostęp do wszystkich publicznych i chronionych metod i pól swojej superklasy.

Q2. Jakie są różne specyfikatory dostępu do klas Java?

Odp: W Javie specyfikatory 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, pole jest dostępne z dowolnego miejsca.

2. Protected: Method, Field może być dostępne 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: do metody, pola, klasy można uzyskać dostęp tylko z tego samego pakietu, a nie spoza jego pakietu natywnego.

4. Prywatne: Metoda, Pole może być dostępne z tej samej klasy, do której należą.

Pytanie 3. Jaki jest cel metod statycznych i zmiennych statycznych?

Odp: Kiedy istnieje wymóg współdzielenia metody lub zmiennej między wieloma obiektami klasy zamiast tworzenia oddzielnych kopii dla każdego obiektu, używamy słowa kluczowego static, aby udostępnić metodę lub zmienną dla wszystkich obiektów.

Q4. Co to jest hermetyzacja danych i jakie jest jej znaczenie?

Odp: Hermetyzacja to koncepcja w programowaniu zorientowanym obiektowo, polegająca na łączeniu właściwości i metod w jednej jednostce.

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

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

Klasa pojedyncza w Javie może mieć tylko jedną instancję, a zatem wszystkie jej metody i zmienne należą tylko do jednej instancji. Koncepcja klasy singleton jest przydatna w sytuacjach, gdy istnieje potrzeba ograniczenia liczby obiektów dla klasy.

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

Pytanie 6. Co to są pętle w Javie? Jakie są trzy rodzaje pętli?

Odp: Pętla jest używana w programowaniu do wielokrotnego wykonywania instrukcji lub bloku instrukcji. W Javie istnieją trzy typy pętli:

1) W przypadku pętli

Pętle For są używane w języku Java do wielokrotnego wykonywania instrukcji przez określoną liczbę razy. Pętle For są używane, gdy programista zna liczbę razy do wykonania instrukcji.

2) Pętle While

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) Pętle Do While

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

P7: Co to jest nieskończona pętla? Jak deklarowana jest nieskończona pętla?

Odp: 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ę łamania 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}

Pytanie 8. Jaka jest różnica między instrukcją continue i break?

Ans: break i continue to dwa ważne słowa kluczowe używane w pętlach. Gdy słowo kluczowe break jest używane w pętli, pętla jest przerywana natychmiastowo, podczas gdy gdy używane jest słowo kluczowe continue, bieżąca iteracja jest przerywana i pętla jest kontynuowana w następnej iteracji.

W poniższym przykładzie pętla jest przerywana, 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 po słowie kluczowym continue 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");}

P9. Jaka jest różnica między zmiennymi typu double i float w Javie?

Odp: W java, zmiennoprzecinkowa zajmuje 4 bajty pamięci, podczas gdy Double zajmuje 8 bajtów pamięci. Liczba zmiennoprzecinkowa to liczba dziesiętna zmiennoprzecinkowa o pojedynczej precyzji, natomiast Double to liczba dziesiętna o podwójnej precyzji.

Pytanie 10. Co to jest końcowe słowo kluczowe w Javie? Daj przykład.

Odp: W java stała jest deklarowana za pomocą słowa kluczowego Final. Wartość można przypisać tylko raz i po przypisaniu wartości stałej nie można zmienić.

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że być przesłonięta przez podklasy. Ta metoda jest szybsza niż jakakolwiek inna metoda, ponieważ są rozwiązywane w odpowiednim czasie.

Gdy klasa jest zadeklarowana jako ostateczna, nie można jej podklasy. Przykład String, Integer i inne klasy opakowania.

P11. Co to jest operator trójskładnikowy? Daj przykład.

Odp: Operator trójskładnikowy, zwany także operatorem warunkowym, służy do decydowania, którą wartość przypisać zmiennej na podstawie wartości logicznej. Jest oznaczony jako?

W poniższym przykładzie, jeśli pozycja ma wartość 1, statusowi przypisywana 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);}}

P12: Jak generować liczby losowe w Javie?

Odp:

  • Za pomocą Math.random () możesz generować liczby losowe z zakresu większego lub równego 0,1 i mniejszego niż 1,0
  • Korzystanie z klasy Random w pakiecie java.util

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

Odp: W instrukcji switch, domyślny przypadek jest wykonywany, gdy żaden inny warunek przełącznika nie jest zgodny. Przypadek domyślny jest przypadkiem opcjonalnym. Można go zadeklarować dopiero po zakodowaniu wszystkich innych przypadków przełącznika.

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

public class switchExample {int score = 4;public static void main(String args[]) {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");}}}

P14. Jaka jest klasa bazowa w Javie, z której pochodzą wszystkie klasy?

Odp: java.lang.object

P15. Czy metoda main () w Javie może zwracać jakiekolwiek dane?

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

P16. Co to są pakiety Java? Jakie jest znaczenie pakietów?

Odp: W Javie pakiet to zbiór klas i interfejsów, które są ze sobą powiązane, ponieważ są ze sobą powiązane. Korzystanie z pakietów pomaga programistom modularyzować kod i grupować go w celu właściwego ponownego wykorzystania. Gdy kod zostanie zapakowany w pakiety, można go zaimportować w innych klasach i używać.

P17. Czy możemy zadeklarować klasę jako abstrakcyjną bez żadnej metody abstrakcyjnej?

Odp: Tak, możemy stworzyć klasę abstrakcyjną, używając słowa kluczowego abstract przed nazwą klasy, nawet jeśli nie ma ona żadnej metody abstrakcyjnej. Jeśli jednak klasa ma choć jedną metodę abstrakcyjną, musi być zadeklarowana jako abstrakcyjna, w przeciwnym razie spowoduje błąd.

P18. Jaka jest różnica między klasą abstrakcyjną a interfejsem w Javie?

Odp: Podstawowa różnica między klasą abstrakcyjną a interfejsem polega na tym, że interfejs może mieć tylko 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 niej.

Inną kluczową różnicą w stosowaniu klas abstrakcyjnych i interfejsów jest to, że klasa implementująca interfejs musi implementować wszystkie metody interfejsu, podczas gdy klasa dziedzicząca po klasie abstrakcyjnej nie wymaga implementacji wszystkich metod swojej superklasy.

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

P19. Jakie są konsekwencje wydajności interfejsów w porównaniu z klasami abstrakcyjnymi?

Odp: Interfejsy działają wolniej w porównaniu z klasami abstrakcyjnymi, ponieważ dla interfejsów wymagane są dodatkowe pośrednie. Innym kluczowym czynnikiem, który deweloperzy 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.

Używanie interfejsów stanowi również dodatkowe obciążenie dla programistów, ponieważ za każdym razem, gdy interfejs jest implementowany w klasie; programista jest zmuszony zaimplementować każdą metodę interfejsu.

Pytanie 20. Czy importowanie pakietu importuje również jego pakiety podrzędne do języka Java?

Odp: W java, kiedy pakiet jest importowany, jego pakiety podrzędne nie są importowane, a programista musi je zaimportować osobno, jeśli jest to wymagane.

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

Importuj uniwersytet. Wydział. *

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

Odp: W java, główna metoda musi być publiczną statyczną, aby poprawnie uruchomić dowolną aplikację. Jeśli metoda główna zostanie zadeklarowana jako prywatna, programista nie otrzyma żadnego błędu kompilacji, jednak nie zostanie ona wykonana i wyświetli błąd w czasie wykonywania.

P22. Jak możemy przekazać argument do funkcji przez referencję zamiast przez wartość?

Odp: W java możemy przekazać argument do funkcji tylko przez wartość, a nie przez odniesienie.

P23. Jak obiekt jest serializowany w Javie?

Odp: W java, aby przekonwertować obiekt na strumień bajtów przez serializację, klasa zaimplementowała interfejs o nazwie Serializable. Wszystkie obiekty klasy implementującej serializowalny interfejs są serializowane, a ich stan jest zapisywany w strumieniu bajtów.

P24. Kiedy powinniśmy używać serializacji?

Odp: Serializacja jest używana, gdy dane muszą być przesył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 odtwarzany w miejscu docelowym.

P25. Czy po bloku Try Block musi następować blok Catch w języku Java w celu obsługi wyjątków?

Odp .: po bloku próbnym musi następować blok Catch lub blok Final lub oba. Każdy wyjątek wyrzucony z bloku try musi być albo przechwycony w bloku catch, albo jakiekolwiek określone zadania, które mają być wykonane, zanim przerwanie kodu zostaną umieszczone w bloku Final.

P26. Czy istnieje sposób, aby pominąć ostatni blok wyjątku, nawet jeśli w bloku wyjątków wystąpi wyjątek?

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

System.exit(0);

P27. Kiedy wywoływany jest konstruktor klasy?

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

Na przykład w poniższej klasie dwa obiekty są tworzone przy użyciu słowa kluczowego new i dlatego 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();}}

P28. Czy klasa może mieć wiele konstruktorów?

Odp: 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.

P29. Czy możemy przesłonić statyczne metody klasy?

Odp: Nie możemy przesłonić metod statycznych. Metody statyczne należą do klasy, a nie do pojedynczych obiektów i są rozwiązywane w momencie kompilacji (nie w czasie wykonywania) .Nawet jeśli spróbujemy przesłonić metodę statyczną, nie otrzymamy błędu zgodności ani wpływu przesłonięcia podczas uruchamiania metody kod.

P30. W poniższym przykładzie, jakie będzie wyjście?

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();}}

Odp : Wynik będzie:

Wyświetlanie z podklasy

Wyświetlanie z nadklasy

P31. Czy String jest typem danych w Javie?

Odp: Ciąg nie jest prymitywnym typem danych w Javie. Kiedy w java tworzony jest łańcuch, jest to właściwie obiekt klasy Java.Lang.String, który jest tworzony. Po utworzeniu tego obiektu string, wszystkie wbudowane metody klasy String mogą być użyte na obiekcie string.

P32. W poniższym przykładzie, ile tworzonych jest obiektów typu String?

String s1="I am Java Expert";String s2="I am C Expert";String s3="I am Java Expert";

Odp: W powyższym przykładzie zostały utworzone dwa obiekty klasy Java.Lang.String. s1 i s3 to odniesienia do tego samego obiektu.

P33. Dlaczego ciągi znaków w Javie są nazywane niezmiennymi?

Odp: W javie obiekty łańcuchowe nazywane są niezmiennymi, ponieważ po przypisaniu wartości do ciągu nie można jej zmienić, a po zmianie tworzony jest nowy obiekt.

W poniższym przykładzie referencja str odnosi się do obiektu typu string o wartości „Wartość jeden”.

String str="Value One";

Kiedy przypisywana jest nowa wartość, tworzony jest nowy obiekt String, a odniesienie jest przenoszone do nowego obiektu.

str="New Value";

P34. Jaka jest różnica między tablicą a wektorem?

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

P35. Co to jest wielowątkowość?

Odp: Wielowątkowość to koncepcja programowania polegająca na jednoczesnym wykonywaniu wielu zadań w ramach jednego programu. Wątki mają ten sam stos procesów i działają równolegle. Pomaga w poprawie wydajności dowolnego programu.

P36. Dlaczego Runnable Interface jest używany w Javie?

Odp: Funkcjonalny interfejs jest używany w Javie do implementacji aplikacji wielowątkowych. Interfejs Java.Lang.Runnable jest implementowany przez klasę do obsługi wielowątkowości.

P37. Jakie są dwa sposoby implementacji wielowątkowości w Javie?

Odp: Aplikacje wielowątkowe można tworzyć w języku Java przy użyciu jednej z następujących dwóch metod:

1. Korzystając z interfejsu Java.Lang.Runnable. Klasy implementują ten interfejs, aby umożliwić wielowątkowość. W tym interfejsie jest zaimplementowana metoda Run ().

2. Pisząc klasę rozszerzającą klasę Java.Lang.Thread.

P38. Kiedy potrzeba wielu zmian w danych, które z nich powinny być preferowane? String czy StringBuffer?

Odp: Ponieważ StringBuffer są z natury dynamiczne i możemy zmieniać wartości obiektów StringBuffer w przeciwieństwie do StringBuffer, który jest niezmienny, zawsze dobrym wyborem jest użycie StringBuffer, gdy dane są zbytnio zmieniane. Jeśli w takim przypadku użyjemy String, dla każdej zmiany danych zostanie utworzony nowy obiekt String, który będzie dodatkowym narzutem.

P39. Jaki jest cel używania Break w każdym przypadku instrukcji Switch?

Odp: Przerwa jest używana po każdym przypadku (z wyjątkiem ostatniego) w przełączniku, dzięki czemu kod jest przerywany po prawidłowym przypadku i nie przepływa również w pozostałych przypadkach.

Jeśli break nie jest używany po każdym przypadku, wszystkie obserwacje po prawidłowym przypadku również zostaną wykonane, co spowoduje nieprawidłowe wyniki.

P40. Jak odbywa się usuwanie elementów bezużytecznych w Javie?

Odp: W Javie, gdy nie ma już odniesienia do obiektu, odbywa się czyszczenie pamięci, a obiekt jest automatycznie niszczony. W celu automatycznego czyszczenia pamięci Java wywołuje metodę System.gc () lub metodę Runtime.gc ().

P41. Jak możemy wykonać dowolny kod nawet przed główną metodą?

Odp: 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 raz w czasie ładowania klasy, nawet przed utworzeniem obiektów w metodzie main.

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

Odp: Jeśli istnieje hierarchia dziedziczenia, klasa może być jednocześnie superklasą dla innej klasy i podklasą dla innej.

W poniższym przykładzie klasa kontynentu jest podklasą klasy światowej i jest to super klasa klasy krajowej.

public class world {… .}public class continenet extends world {… }public class country extends continent {… .}

P43. Jak tworzone są obiekty klasy, jeśli żaden konstruktor nie jest zdefiniowany w klasie?

Odp: Nawet jeśli żaden jawny konstruktor nie jest zdefiniowany w klasie java, obiekty są tworzone pomyślnie, ponieważ domyślny konstruktor jest niejawnie używany do tworzenia obiektów. Ten konstruktor nie ma parametrów.

P44. W przypadku wielowątkowości, w jaki sposób możemy zapewnić, że zasób nie jest używany przez wiele wątków jednocześnie?

Odp: W przypadku wielowątkowości dostęp do zasobów, które są współdzielone przez wiele wątków, można kontrolować za pomocą koncepcji synchronizacji. Używając słowa kluczowego synchronized, możemy zapewnić, że tylko jeden wątek może używać współdzielonego zasobu na raz, a inne mogą uzyskać kontrolę nad zasobem tylko wtedy, gdy zostanie on uwolniony od drugiego, który go używa.

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

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

P46. Istnieją dwie klasy o nazwach classA i classB. Obie klasy znajdują się w tym samym pakiecie. Czy do prywatnego członka klasy A można uzyskać dostęp za pomocą obiektu klasy B?

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

P47. Czy możemy mieć dwie metody w klasie o tej samej nazwie?

Odp: Możemy zdefiniować dwie metody w klasie o tej samej nazwie, ale z różną liczbą / typem parametrów. To, która metoda ma zostać wywołana, będzie zależeć 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 nazwany:

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");}}

P48. Jak możemy wykonać kopię obiektu Java?

Odp: Możemy użyć koncepcji klonowania, aby utworzyć kopię obiektu. Używając clone, tworzymy kopie z rzeczywistym stanem obiektu.

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

P49. Jaka jest korzyść z używania dziedziczenia?

Odp: Kluczową zaletą korzystania z dziedziczenia jest możliwość ponownego wykorzystania kodu, ponieważ dziedziczenie umożliwia podklasom ponowne użycie kodu swojej superklasy. Polimorfizm (rozszerzalność) to kolejna wielka korzyść, która umożliwia wprowadzenie nowych funkcji bez wpływu na istniejące klasy pochodne.

P50. Jaki jest domyślny specyfikator dostępu dla zmiennych i metod klasy?

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

P51. Podaj przykład użycia wskaźników w klasie Java.

Odp: W Javie nie ma wskaźników. Więc nie możemy używać koncepcji wskaźników w Javie.

P52. Jak możemy ograniczyć dziedziczenie dla klasy, aby żadna klasa nie mogła być po niej dziedziczona?

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

W poniższym przykładzie klasa Stone to Final i nie można jej rozszerzać

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

P53. Jaki jest zakres dostępu specyfikatora dostępu chronionego?

Odp: Gdy metoda lub zmienna jest zadeklarowana przy użyciu specyfikatora dostępu chronionego, staje się dostępna w tej samej klasie, dowolnej innej klasie tego samego pakietu, a także w podklasie.

Modyfikator

Klasa

Pakiet

Podklasa

Świat

publiczny

Y

Y

Y

Y

chroniony

Y

Y

Y

N

bez modyfikatora

Y

Y

N

N

prywatny

Y

N

N

N

P54. Jaka jest różnica między stosem a kolejką?

Odp: stos i kolejka są używane jako symbole zastępcze dla kolekcji danych. Podstawowa różnica między stosem a kolejką polega na tym, że stos jest oparty na zasadzie Last in First Out (LIFO), podczas gdy kolejka jest oparta na zasadzie FIFO (First In First Out).

P55. Jak w Javie możemy zabronić serializacji zmiennych?

Odp: Jeśli chcemy, aby pewne zmienne klasy nie były serializowane, możemy użyć słowa kluczowego transient 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}

P56. Jak możemy używać prymitywnych typów danych jako obiektów?

Odp: Prymitywne typy danych, takie jak int, mogą być obsługiwane jako obiekty przy użyciu odpowiednich klas opakowujących. Na przykład Integer jest klasą opakowującą dla pierwotnego typu danych int. Możemy zastosować różne metody do klasy opakowania, tak jak każdy inny obiekt.

P57. Jakie typy wyjątków są przechwytywane w czasie kompilacji?

Odp: Zaznaczone wyjątki można przechwycić w czasie kompilacji programu. Zaznaczone wyjątki muszą być obsługiwane za pomocą bloku try catch w kodzie, aby pomyślnie skompilować kod.

P58. Opisz różne stany wątku.

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

  • Gotowy: utworzony wątek jest w stanie gotowości.
  • Uruchomiony: aktualnie wykonywany wątek jest uruchomiony.
  • Oczekiwanie: Wątek oczekujący na zwolnienie określonych zasobów przez inny wątek jest w stanie oczekiwania.
  • Martwy: wątek, który zniknął po wykonaniu, jest w stanie martwym.

P59. Czy możemy użyć domyślnego konstruktora klasy, nawet jeśli zdefiniowano jawny konstruktor?

Odp: Java udostępnia domyślny konstruktor bez argumentów, jeśli w klasie Java nie zdefiniowano żadnego jawnego konstruktora. Ale jeśli zdefiniowano jawny konstruktor, nie można wywołać konstruktora domyślnego, a programista może używać tylko tych konstruktorów, które są zdefiniowane w klasie.

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

Odp: Podstawowym warunkiem przesłaniania metody jest to, że nazwa metody, argumenty oraz zwracany typ muszą być dokładnie takie same, jak w przypadku zastępowanej metody. W związku z tym użycie innego typu zwracanego nie przesłania metody.

P61. Jaki będzie wynik kolejnego fragmentu kodu?

public class operatorExample {public static void main(String args[]) {int x = 4;system.out.println(x++);}}

Odp: W tym przypadku używany jest operator postfix ++, który najpierw zwraca wartość, a następnie ją zwiększa. W związku z tym jego wyjście będzie wynosić 4.

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

Ans: metoda main jest punktem wejścia do klasy Java i jest jednak wymagana do wykonania programu; klasa zostanie pomyślnie skompilowana, nawet jeśli nie ma metody głównej. Nie można go jednak uruchomić.

P62. Czy możemy wywołać metodę niestatyczną z wnętrza metody statycznej?

Odp: Metody niestatyczne są własnością obiektów klasy i mają zasięg na poziomie obiektu i aby wywołać metody niestatyczne z bloku statycznego (jak ze statycznej metody głównej), należy utworzyć obiekt klasy pierwszy. Następnie za pomocą odwołania do obiektu można wywołać te metody.

P63. Jakie dwie zmienne środowiskowe należy ustawić, aby uruchamiać programy w języku Java?

Odp: Programy Java mogą być uruchamiane na komputerze tylko wtedy, gdy następujące dwie zmienne środowiskowe zostały poprawnie ustawione:

  1. Zmienna PATH
  2. Zmienna CLASSPATH

P64. Czy zmienne mogą być używane w Javie bez inicjalizacji?

Odp: W Javie, jeśli zmienna jest używana w kodzie bez wcześniejszej inicjalizacji przez prawidłową wartość, program nie kompiluje się i wyświetla błąd, ponieważ zmiennym w Javie nie jest przypisywana żadna wartość domyślna.

P65. Czy klasa w Javie może być dziedziczona z więcej niż jednej klasy?

Odp: W Javie klasa może pochodzić tylko z jednej klasy, a nie z wielu klas. Dziedziczenie wielokrotne nie jest obsługiwane przez Javę.

P66. Czy konstruktor może mieć inną nazwę niż nazwa klasy w Javie?

Odp: Konstruktor w Javie musi mieć taką samą nazwę jak nazwa klasy, a jeśli nazwa jest inna, nie działa jak konstruktor, a kompilator traktuje to jak normalną metodę.

P67. Jaki będzie wynik rundy (3.7) i pułapu (3.7)?

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

P68: Czy możemy użyć goto w Javie, aby przejść do określonej linii?

Odp: W Javie nie ma słowa kluczowego goto, a java nie obsługuje tej funkcji przechodzenia do określonej linii z etykietą.

P69. Czy można ponownie uruchomić martwy wątek?

Odp: W java wątku, który jest w stanie nieaktywnym, nie można ponownie uruchomić. Nie ma możliwości ponownego uruchomienia martwego wątku.

P70. Czy poniższa deklaracja klasy jest poprawna?

Odp:

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

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

P71. Czy JDK jest wymagany na każdym komputerze, aby uruchomić program w języku Java?

Odp: JDK jest zestawem deweloperskim języka Java i jest wymagany tylko do programowania i uruchamiania programu w języku Java na komputerze. JDK nie jest wymagany. Wymagane jest tylko środowisko JRE.

P72. Jaka jest różnica między porównaniem wykonanym metodą equals a operatorem ==?

Ans: W Javie metoda equals () jest używana do porównywania zawartości dwóch obiektów typu string i zwraca wartość true, jeśli oba mają tę samą wartość, podczas gdy operator == porównuje odwołania do dwóch obiektów typu string.

W poniższym przykładzie equals () zwraca wartość true, ponieważ dwa obiekty łańcuchowe mają te same wartości. Jednak operator == zwraca false, ponieważ oba obiekty łańcuchowe 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 trueSystem.out.println("str1 and str2 are equal in terms of values");}if (str1 == str2) {//This condition is trueSystem.out.println("Both strings are referencing same object");} else{// This condition is NOT trueSystem.out.println("Both strings are referencing different objects");}}}

P73. Czy można zdefiniować metodę w klasie Java, ale zapewnić jej implementację w kodzie innego języka, takiego jak C?

Odp: Tak, możemy to zrobić przy użyciu metod natywnych. W przypadku programowania opartego na metodach natywnych, definiujemy publiczne metody statyczne w naszej klasie Java bez jej implementacji, a następnie implementacja odbywa się w innym języku, takim jak C.

P74. Jak są definiowane destruktory w Javie?

Odp: W Javie nie ma żadnych destruktorów zdefiniowanych w klasie, ponieważ nie ma takiej potrzeby. Java ma własny mechanizm usuwania elementów bezużytecznych, który wykonuje to zadanie automatycznie, niszcząc obiekty, gdy nie są już do nich odwoływane.

P75. Czy zmienna może być jednocześnie lokalna i statyczna?

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

P76. Czy możemy mieć statyczne metody w interfejsie?

Odp: Metody statyczne nie mogą być przesłonięte w żadnej klasie, podczas gdy wszystkie metody w interfejsie są domyślnie abstrakcyjne i powinny być zaimplementowane w klasach implementujących interfejs. Dlatego nie ma sensu mieć statycznych metod w interfejsie w Javie.

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

Odp: 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 końcowe, a zmienne końcowe są jak stałe, których nie można później zmienić.

P78. Czy słuszne jest stwierdzenie, że dzięki funkcji czyszczenia pamięci w Javie program java nigdy nie traci pamięci?

Odp: Mimo że Java zapewnia automatyczne usuwanie pamięci, nie gwarantuje to, że program Java nie wyjdzie z pamięci, ponieważ istnieje możliwość, że tworzenie obiektów Java odbywa się w szybszym tempie w porównaniu do czyszczenia pamięci, co skutkuje wypełnienie wszystkich dostępnych zasobów pamięci.

Tak więc, odśmiecanie pamięci pomaga zmniejszyć prawdopodobieństwo, że program wypadnie z pamięci, ale tego nie gwarantuje.

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

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

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

P80. Chcę ponownie dotrzeć do obiektu i użyć go po zebraniu elementów bezużytecznych. Jak to możliwe?

Odp: Po zniszczeniu obiektu przez garbage collectora, nie ma go już na stercie i nie można uzyskać do niego ponownego dostępu. Nie ma możliwości ponownego odniesienia się do niego.

P81. W programowaniu wątkowym Java, która metoda jest obowiązkowa dla wszystkich wątków?

Ans: Run () to metoda interfejsu Runnable, która musi być implementowana przez wszystkie wątki.

P82. Chcę kontrolować połączenia z bazą danych w moim programie i chcę, aby tylko jeden wątek mógł nawiązywać połączenie z bazą danych w danym momencie. Jak mogę zaimplementować tę logikę?

Odp: Można to zrealizować za pomocą koncepcji synchronizacji. Kod związany z bazą danych można umieścić w metodzie, która używa słowa kluczowego hs synchronized, tak aby tylko jeden wątek miał do niego dostęp w danym momencie.

P83. W jaki sposób wyjątek może zostać wyrzucony ręcznie przez programistę?

Odp: Aby ręcznie zgłosić wyjątek w bloku kodu, używane jest słowo kluczowe throw . 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 ");}}

P84. Chcę, aby moja klasa była rozwijana w taki sposób, aby żadna inna klasa (nawet klasa pochodna) nie mogła tworzyć swoich obiektów. Jak mogę to zrobić?

Odp: 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 jej utworzyć, a tworzenie jej obiektu będzie ograniczone tylko do niej samej.

P85. Jak obiekty są przechowywane w Javie?

Odp: W Javie każdy utworzony obiekt otrzymuje przestrzeń pamięci ze sterty. Gdy obiekt jest niszczony przez moduł odśmiecania pamięci, miejsce przydzielone mu ze sterty jest ponownie przydzielane do sterty i staje się dostępne dla wszystkich nowych obiektów.

P86. Jak możemy znaleźć rzeczywisty rozmiar obiektu na stercie?

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

P87. Która z poniższych klas będzie miała więcej przydzielonej pamięci?

Klasa A: Trzy metody, cztery zmienne, brak obiektu

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

Odp: Pamięć nie jest przydzielana przed utworzeniem obiektów. Ponieważ dla obu klas nie są tworzone żadne obiekty, więc żadna klasa nie jest przydzielana na stosie pamięci.

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

Odp: Jeśli wyjątek nie jest obsługiwany w programie używającym bloków try catch, program zostaje przerwany i żadna instrukcja nie jest wykonywana po instrukcji, która spowodowała zgłoszenie wyjątku.

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

Odp: Jeśli klasa ma wiele konstruktorów, możliwe jest wywołanie jednego konstruktora z ciała innego przy użyciu metody this () .

P90. Co oznacza anonimowe zajęcia?

Odp: 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 jednej linii kodu:

public java.util.Enumeration testMethod(){return new java.util.Enumeration(){@Overridepublic boolean hasMoreElements(){// TODO Auto-generated method stubreturn false;}@Overridepublic Object nextElement(){// TODO Auto-generated method stubreturn null;}}

P91. Czy istnieje sposób na zwiększenie rozmiaru tablicy po jej deklaracji?

Odp: Tablice są statyczne i po określeniu ich rozmiaru nie możemy go zmienić. Jeśli chcemy korzystać z takich kolekcji, w których możemy wymagać zmiany rozmiaru (liczby elementów), powinniśmy preferować wektor niż tablicę.

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

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

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

Odp: Najlepszym sposobem na utrwalenie danych do wykorzystania w przyszłości jest użycie koncepcji serializacji.

P94. Co to jest klasa lokalna w języku Java?

Odp: W Javie, jeśli zdefiniujemy nową klasę wewnątrz określonego bloku, nazywa się to klasą lokalną. Taka klasa ma zasięg lokalny i nie można jej używać poza blokiem, w którym została zdefiniowana.

P95. String i StringBuffer reprezentują obiekty String. Czy możemy porównać String i StringBuffer w Javie?

Odp: Chociaż zarówno String, jak i StringBuffer reprezentują obiekty typu String, nie możemy ich ze sobą porównać, a jeśli spróbujemy je porównać, otrzymamy błąd.

P96. Który interfejs API zapewnia Java do wykonywania operacji na zbiorze obiektów?

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

Q97. Czy możemy rzutować dowolny inny typ na typ boolowski z rzutowaniem typów?

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

P98. Czy możemy użyć różnych typów zwracanych dla metod, gdy są zastępowane?

Odp: Podstawowym wymogiem przesłaniania metody w Javie jest to, aby przesłana metoda miała taką samą nazwę i parametry, ale metoda może zostać zastąpiona innym typem zwracanym, o ile nowy typ zwracany jest rozszerzeniem oryginalnej.

Na przykład metoda zwraca typ referencyjny.

Class B extends A {A method(int x) {//original method}B method(int x) {//overridden method}}

Q99. Jaka jest klasa bazowa wszystkich klas wyjątków?

Odp: W Javie Java.lang.Throwable jest superklasą wszystkich klas wyjątków i wszystkie klasy wyjątków pochodzą z tej klasy bazowej.

P100. Jaka jest kolejność wywołań konstruktorów w dziedziczeniu?

Odp: W przypadku dziedziczenia, kiedy tworzony jest nowy obiekt klasy pochodnej, najpierw wywoływany jest konstruktor klasy nadrzędnej, a następnie konstruktor klasy pochodnej.

Przygotuj się na rozmowę kwalifikacyjną !!! Przejdź przez samouczek Java, aby być lepiej przygotowanym.

Ten szczegółowy plik PDF z pytaniami do rozmowy kwalifikacyjnej w języku Java pomoże Ci rozwiać wątpliwości dotyczące pytań do rozmowy kwalifikacyjnej w języku Java, a także pomoże Ci rozwiązać ten wywiad.

Interesujące artykuły...