Top 130+ pytań i odpowiedzi do wywiadu Java 2022

Opublikowany: 2021-01-01

Pytania i odpowiedzi dotyczące rozmowy kwalifikacyjnej w języku Java

W tym artykule zebraliśmy najczęściej zadawane pytania do rozmowy kwalifikacyjnej w języku Java. Te pytania pozwolą Ci zapoznać się z rodzajem pytań, które ankieter może zadać podczas rozmowy kwalifikacyjnej do programowania w języku Java

Jako Fresher właśnie uczestniczyłeś w rozmowie kwalifikacyjnej lub planujesz wziąć udział w niedługim czasie. Jako osoba poszukująca pracy na poziomie podstawowym, która chce rozwijać swoją karierę w programowaniu, możesz być zdenerwowany zbliżającymi się rozmowami kwalifikacyjnymi . Każdy z nas ma te chwile paniki, w których tracimy pamięć i możemy nawet zapomnieć, czym jest wątek. Uprościmy to dla Ciebie, wystarczy wziąć głęboki oddech i sprawdzić pytania, które najprawdopodobniej zostaną zadane.

Nie możesz uniknąć paniki, ale na pewno możesz przygotować się na to, gdy wejdziesz do pokoju przesłuchań. Jesteś pewny siebie i wiesz, że poradzisz sobie ze wszystkim, co może rzucić na Ciebie ankieter.

Ucz się programów inżynierii oprogramowania online z najlepszych światowych uniwersytetów. Zdobywaj programy Executive PG, Advanced Certificate Programs lub Masters Programs, aby przyspieszyć swoją karierę.

Oto skompilowana lista wyczerpujących 24 pytań do rozmowy kwalifikacyjnej Java z odpowiedziami (ostatni 2022), które pomogą ci zdobyć pewność siebie i zapewnić przetrwanie rozmowy kwalifikacyjnej.

1. Z czego składa się JVM?
JVM, skrót od Java Virtual Machine, jest wymagana przez każdy system do uruchamiania programów Java. Jego architektura składa się zasadniczo z:
● Classloader: Jest to podsystem JVM, a jego główną funkcją jest ładowanie plików klas za każdym razem, gdy uruchamiany jest program Java.
● Sterta: to dane runtime używane do alokacji obiektów.
● Obszar klasy: zawiera poziom klasy każdego pliku klasy, taki jak zmienne statyczne, metadane i pula stałych uruchomień.
● Stos: używany do przechowywania zmiennych tymczasowych.
● Rejestr: rejestr zawiera adres aktualnie wykonywanej instrukcji JVM
● Silnik wykonawczy: EE składa się z procesora wirtualnego, interpretera wykonującego instrukcje po odczytaniu kodu bajtowego oraz kompilatora JIT, który poprawia wydajność, gdy szybkość wykonywania jest niska.
● Java Native Interface: działa jako medium komunikacyjne do interakcji z inną aplikacją stworzoną w C, C++ itp.

2. Co to jest programowanie obiektowe? Czy Java jest językiem obiektowym?
Zasadniczo programowanie obiektowe to paradygmat programowania, który działa na koncepcji obiektów. Mówiąc najprościej, obiekty to kontenery – zawierają dane w postaci pól i kodu w postaci procedur. Zgodnie z tą logiką język obiektowy to język, który działa na obiektach i procedurach.

Ponieważ Java wykorzystuje 8 prymitywnych typów danych — boolean, byte, char, int, float, long, short, double — które nie są obiektami, Java nie może być uważana za język w 100% zorientowany obiektowo.

3. Co rozumiesz przez agregację w kontekście Java?
Agregacja to forma asocjacji, w której każdemu obiektowi przypisywany jest własny cykl życia. Ale jest w tym prawo własności, a obiekt potomny nie może w żaden sposób należeć do żadnego innego obiektu nadrzędnego.

4. Nazwij superklasę w Javie.
Java.lang. Wszystkie różne nieprymitywne są dziedziczone bezpośrednio lub pośrednio z tej klasy.

5. Wyjaśnij różnicę między „w końcu” a „sfinalizuj” w Javie?
Używany z blokiem try-catch, blok „finally” służy do zapewnienia, że ​​określony fragment kodu jest zawsze wykonywany, nawet jeśli wykonanie jest generowane przez blok try-catch.

W przeciwieństwie do tego, finalize() jest specjalną metodą w klasie obiektów. Generalnie jest nadpisywane zwalnianie zasobów systemowych, gdy wartość śmieci jest zbierana z obiektu.

6. Co to jest anonimowa klasa wewnętrzna? Czym różni się od klasy wewnętrznej?
Każda lokalna klasa wewnętrzna, która nie ma nazwy, jest znana jako anonimowa klasa wewnętrzna. Ponieważ nie ma nazwy, nie można stworzyć jego konstruktora. Zawsze albo rozszerza klasę, albo implementuje interfejs i jest definiowany i tworzony w jednej instrukcji.

Niestatyczna klasa zagnieżdżona nazywana jest klasą wewnętrzną. Klasy wewnętrzne są powiązane z obiektami klasy i mają dostęp do wszystkich metod i zmiennych klasy zewnętrznej.

7. Co to jest klasa systemowa?
Jest to podstawowa klasa w Javie. Ponieważ klasa jest ostateczna, nie możemy nadpisać jej zachowania poprzez dziedziczenie. Nie możemy również utworzyć instancji tej klasy, ponieważ nie zapewnia ona żadnych publicznych konstruktorów. Dlatego wszystkie jego metody są statyczne.

8. Jak stworzyć wątek demona w Javie?
Do utworzenia tego wątku używamy klasy setDaemon(true). Wywołujemy tę metodę przed metodą start(), w przeciwnym razie otrzymamy IllegalThreadStateException.

Profil zawodowy dla programisty

9. Czy Java obsługuje zmienne globalne? Dlaczego? Dlaczego nie?
Nie, Java nie obsługuje zmiennych globalnych. Dzieje się tak głównie z dwóch powodów:
● Tworzą kolizje w przestrzeni nazw.
● Łamią referencyjną przejrzystość.

10. Jak powstaje obiekt RMI?
Aby opracować obiekt RMI, można podjąć następujące kroki:
● Zdefiniuj interfejs
● Zaimplementuj interfejs
● Kompiluj interfejs i jego implementacje za pomocą kompilatora java
● Skompiluj implementację serwera za pomocą kompilatora RMI
● Uruchom rejestr RMI
● Uruchom aplikację

11. Wyjaśnij różnice między podziałem czasu a planowaniem z wyprzedzeniem?
W przypadku dzielenia czasu zadanie jest wykonywane przez określony przedział czasowy – znany również jako wycinek. Następnie trafia do kolejki gotowych — puli „gotowych” zadań. Harmonogram następnie wybiera następne zadanie do wykonania na podstawie priorytetu i innych czynników.

Podczas gdy w przypadku planowania z wywłaszczaniem, zadanie o najwyższym priorytecie jest wykonywane albo do momentu przejścia w stan nieaktywny lub stan ostrzeżenia, albo gdy pojawi się inne zadanie o wyższym priorytecie.

12. Co to za wątek śmietnika?
To jest wątek demona.

13. Jaki jest cykl życia wątku w Javie?
Każdy wątek w Javie przechodzi w swoim cyklu życia następujące etapy:
● Nowy
● Możliwość uruchomienia
● Bieganie
● Nie można uruchomić (zablokowane)
● Zakończono

14. Wymień metody stosowane podczas procesu deserializacji i serializacji.
ObjectInputStream.readObject
Odczytuje plik i deserializuje obiekt.

ObjectOutputStream.writeObject
Serializuj obiekt i zapisz serializowany obiekt do pliku.

15. Czym są zmienne zmienne i jaki jest ich cel?
Zmienne ulotne to zmienne, które zawsze czytają z pamięci głównej, a nie z pamięci podręcznej wątku. Są one zwykle używane podczas synchronizacji.

16. Czym są klasy opakowujące w Javie?
Wszystkie prymitywne typy danych w Javie mają powiązaną z nimi klasę – znaną jako klasy opakowujące. Są one znane jako klasy opakowujące, ponieważ „opakowują” pierwotny typ danych w obiekt dla klasy. Krótko mówiąc, przekształcają prymitywy Javy w obiekty.

17. Jak zrobić klasę singletona?
Poprzez uczynienie swojego konstruktora prywatnym.

18. Jakie są ważne metody klasy wyjątków w Javie?
● ciąg getMessage()
● ciąg doString()
● void printStackTrace()
● zsynchronizowane Throwable getCause()
● public StackTraceElement[] getStackTrace()

19. Jak zrobić wątek w Javie?
Możemy zastosować jeden z dwóch sposobów tworzenia wątku w Javie:
● Rozszerzając klasę wątków

Wadą tej metody jest to, że nie możemy rozszerzyć żadnych innych klas, ponieważ klasa wątków została już rozszerzona.
● Poprzez wdrożenie interfejsu Runnable

20. Wyjaśnij różnice między metodami get() i load().
Metody get() i load() mają następujące różnice:
● get() zwraca null, jeśli obiekt nie zostanie znaleziony, podczas gdy load() zgłasza wyjątek ObjectNotFound.
● get() zawsze zwraca rzeczywisty obiekt, podczas gdy load() zwraca obiekt proxy.
● Metoda get() zawsze trafia do bazy danych, podczas gdy load() nie.
● get() powinno być używane, jeśli nie jesteś pewien istnienia instancji, natomiast load() powinno być używane, jeśli masz pewność, że instancja istnieje.

21. Jaka jest domyślna wartość zmiennych lokalnych?
Nie są inicjowane do żadnej wartości domyślnej. Nie są to również prymitywy ani odwołania do obiektów.

22. Co to jest Singleton w Javie?
Jest to klasa z jedną instancją w całej aplikacji Java. Na przykład java.lang.Runtime jest klasą Singleton. Podstawowym celem Singletona jest kontrolowanie tworzenia obiektu poprzez zachowanie prywatnego konstruktora.

23. Co to jest metoda statyczna?

Metodę statyczną można wywołać bez konieczności tworzenia instancji klasy. Metoda statyczna należy do klasy, a nie do obiektu klasy. Metoda statyczna może uzyskać dostęp do statycznego elementu danych i zmienić jego wartość.

24. Jaki jest wyjątek?

Wyjątki Nietypowe warunki podczas programu. Może to być spowodowane nieprawidłową logiką napisaną przez nieprawidłowe dane wejściowe użytkownika lub programistę.

25. Jak w uproszczeniu zdefiniowałbyś Javę?

Java to portal wysokiego poziomu, niezależny od platformy, zorientowany obiektowo, oferujący wsparcie o wysokiej wydajności do tworzenia zaawansowanych programów, aplikacji i witryn internetowych. Java to język programowania ogólnego przeznaczenia, który umożliwia programistom tworzenie aplikacji o bogatej funkcjonalności za pomocą środowiska WORA (WORA). James Arthur Gosling, informatyk z Kanady, opracował Javę w 1991 roku i jest powszechnie znany jako „Dr Java”. Dzisiaj Java stała się niezbędnym fundamentem nowoczesnej branży IT.

26 . Co to jest pula ciągów Java?

Pula ciągów w Javie to odrębne miejsce, które ma pulę ciągów przechowywanych za pośrednictwem pamięci sterty Java. W tym przypadku String reprezentuje specjalną klasę w Javie, a obiekty łańcuchowe można tworzyć za pomocą nowego operatora lub wartości w cudzysłowie.
Ciąg znaków jest niezmienny w Javie, dzięki czemu możliwe jest utworzenie puli ciągów, a następnie dalsza implementacja za pomocą koncepcji wewnętrznych ciągów.

27. Co to jest klasa kolekcji w Javie? Wymień metody i interfejsy?

Klasy kolekcji Java to specjalne klasy, które są używane wyłącznie z metodami statycznymi, które działają w szczególności na kolekcjach zwracanych. Kolekcja Java domyślnie dziedziczy klasę i ma dwie podstawowe funkcje, takie jak:

  • Obsługują i działają z algorytmami polimorficznymi, które zwracają nowe kolekcje dla każdej określonej kolekcji.
  • Metody w kolekcji Java generują wyjątek NullPointerException w przypadku, gdy obiekty klasy lub kolekcje mają wartość Null.

Są one reprezentowane i deklarowane jako klasa Java.util.Collection.

Istnieje ponad 60 metod, modyfikatorów i typów klas Java Collection. Oto lista najważniejszych metod w Java Collection Class:

Nr S. Modyfikator, metoda i typ Opis
1. static <T> wartość logiczna addAll() Ta metoda pozwala na dodanie określonych elementów do określonej kolekcji.
2. statyczna <T> Kolejka <T> asLifoQueue() Ta metoda umożliwia wyświetlenie kolekcji jako ostatniej w pierwszym wyjściu (LIFO) w widoku.
3. static <T> int binarySearch() Metoda ta pozwala na wyszukanie konkretnego obiektu, a następnie zwraca go na posortowanej liście.
4. statyczny <E> Kolekcja<E> Ta metoda zwraca widok dynamiczny z dowolnej określonej kolekcji.
5. statyczny <E> Lista <E> Ta metoda daje zwrot dynamicznego widoku Typesafe z określonej listy.

Oto kilka przykładów kolekcji Java:
Kolekcja Java min() Przykład:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
 import java.util.* ;  
 	public class KolekcjePrzykład {  
 	    public static void main ( Ciąg a []) {         
 	        List < Integer > list = new ArrayList < Integer >();  
 	        lista . dodaj ( 90 );  
 	        lista . dodaj ( 80 );  
 	        lista . dodać ( 76 );  
 	        lista . dodać ( 58 );  
 	        lista . dodać ( 12 );  
          System . się . println ( "Element wartości minimalnej w kolekcji: " + Kolekcje . min ( lista ));  
      }  
  } 

Wynikiem będą:

Minimalna wartość elementu w kolekcji: 12

Kolekcja Java max() Przykład:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
 import java.util.* ;  
  public class KolekcjePrzykład {  
      public static void main ( Ciąg a []){         
          List < Integer > list = new ArrayList < Integer >();  
          lista . dodaj ( 90 );  
          lista . dodaj ( 80 );  
          lista . dodać ( 76 );  
          lista . dodać ( 58 );  
          lista . dodać ( 12 );  
          System . się . println ( "Element wartości maksymalnej w kolekcji: " + Kolekcje . max ( lista ) );  
      }  
  }

Wynikiem będą:

Element Wartość maksymalna w kolekcji: 90

28 . Co to jest serwlet?

Serwlety to komponenty oprogramowania Java, które dodają więcej możliwości serwerowi Java za pomocą technologii, interfejsu API, interfejsu, klasy lub dowolnego wdrożenia internetowego. Serwlety działają w szczególności na serwerach aplikacji internetowych z obsługą języka Java i są w stanie obsługiwać złożone żądania z serwera WWW. Serwlety dodają korzyści w postaci wyższej wydajności, odporności, skalowalności, przenośności i zapewniają bezpieczeństwo aplikacji Java.

Proces lub wykonanie serwletu:

  • Rozpoczyna się, gdy użytkownik wysyła żądanie z przeglądarki internetowej.
  • Serwer WWW odbiera, a następnie przekazuje to żądanie do określonego serwletu.
  • Servlet następnie przetwarza to żądanie, aby uzyskać określoną odpowiedź z danymi wyjściowymi.
  • Servlet następnie wysyła tę odpowiedź z powrotem do serwera WWW.
  • Następnie serwer WWW otrzymuje informacje, które przeglądarka wyświetla na ekranie.

Serwlety Java są dostarczane z wieloma klasami i interfejsami, takimi jak GenericServlet, ServletRequest, Servlet API, HttpServlet, ServeResponse itp.

29. Co to jest Dyspozytor Żądań?

W Servlecie, RequestDispatcher działa jako interfejs do definiowania obiektu do odbierania żądań od klientów z jednej strony, a następnie do wysyłania go do określonych zasobów z drugiej strony (może to być serwlet, HTML, JSP). Ten RequestDispatcher ma ogólnie dwie metody:

void forward (żądanie ServletRequest, odpowiedź ServletResponse) Pozwala to na przekazywanie żądań z dowolnego serwletu do zasobów serwera w postaci serwletu, pliku HTML lub pliku JSP.
void include(żądanie ServletRequest, odpowiedź ServletResponse) Zawiera treść dla konkretnego zasobu w postaci odpowiedzi, takiej jak plik HTML, strona JSP lub serwlet.

30. Jaki jest cykl życia serwletu?

Servlet to komponent oprogramowania Java, którego główną funkcją jest najpierw przyjęcie żądania, następnie przetworzenie żądania i udzielenie odpowiedzi użytkownikowi na stronie HTML. Tutaj Servlet Container zarządza cyklem życia serwletu. Oto główne etapy:

  • Ładowanie serwletu.
  • Następnie inicjalizacja serwletu.
  • Obsługa żądania (metoda usługi wywoływania).
  • Następnie zniszczenie Servlet.

Oto krótki diagram przedstawiający cykl życia serwletu Java:
Cykl życia serwletu

Źródło

  • Ładowanie serwletu

Cykl życia Servlet zaczyna się od etapu ładowania do kontenera Servlet. Serwlet ładuje się na jeden z dwóch sposobów:

    • Ustawienie apletu jako dodatniej lub zerowej wartości całkowitej.
    • Po drugie, proces ten może się opóźnić, ponieważ kontener wybiera odpowiedni serwlet do obsługi żądania.

Teraz kontenery najpierw ładują klasę Servlet, a następnie budują instancję za pomocą konstruktora bezargumentowego.

  • Inicjalizacja serwletu

Następnym krokiem jest użycie metody Servlet.init(ServletConfig) do zainicjowania Servlet, na przykład źródła danych JDBC.

  • Obsługa żądania (metoda usługi wywoływania)

Tutaj Servlet przyjmuje żądania klienta i wykonuje wymaganą operację za pomocą metody service().

  • Zniszczenie serwletu

Teraz kontener Servlet niszczy serwlet, wykonując i kończąc określone zadania oraz wywołując metodę destroy() w instancji.

31. Jakie są różne metody zarządzania sesjami w serwletach?

Sesje śledzą aktywność użytkownika po zalogowaniu się do serwisu. Zarządzanie sesją zapewnia mechanizm pozyskiwania informacji dla każdego niezależnego użytkownika. Oto cztery różne metody zarządzania sesjami w serwletach:

  • Sesja HTTP
  • Ciasteczka
  • Przepisywanie URL
  • Ukryte pole HTML

32. Co to jest sterownik JDBC?

Java Database Connectivity (JDBC) działa tutaj jako składnik oprogramowania, który umożliwia aplikacjom Java komunikowanie się z bazą danych.

Sterowniki JDBC mają następujące cztery typy w środowisku:

  • Sterownik mostka JDBC-ODBC
  • Sterownik protokołu sieciowego (sterownik oprogramowania pośredniczącego)
  • Sterownik protokołu bazy danych (w pełni sterownik Java)
  • Natywny sterownik API

33. Co to jest interfejs połączenia JDBC?

Połączenia definiują sesje między bazą danych a aplikacjami Java. Interfejs połączenia JDBC jest tylko częścią pakietu java.sql i udostępnia informacje o sesji dla określonej bazy danych. Reprezentują one wiele instrukcji SQL do wykonania i wyników w kontekście pojedynczego interfejsu połączenia. Oto główne metody interfejsu Connections:

  • createStatement() : Tworzy określony obiekt instrukcji do dodawania instrukcji SQL do określonej bazy danych.
  • setAutoCommit(boolean status) : Aby zdefiniować połączenie trybu zatwierdzania z dyrektywą false lub true.
  • commit() : To wprowadza wszystkie modyfikacje z ostatniego zatwierdzenia i dalej zwalnia każdą bazę danych aktualnie posiadaną przez określony obiekt Connection.
  • rollback() : cofa lub cofa wszystkie zmiany dokonane w przeszłej lub bieżącej transakcji, a także zwalnia aktualnie przechowywaną bazę danych w obiekcie połączenia.
  • close() : To kończy lub zamyka bieżące połączenie, a także natychmiast zwalnia lub czyści zasoby JDBC.

34. Nazwij różne moduły frameworka Spring?

Framework Spring składa się z wielu modułów:

  • Moduł sieciowy
  • Moduł rozpórek
  • Moduł serwletów
  • Główny moduł kontenera
  • Programowanie zorientowane aspektowo (AOP)
  • Moduł kontekstu aplikacji
  • Moduł ramowy MVC
  • Abstrakcja JDBC i moduł DAO
  • Moduł OXM
  • Moduł języka wyrażeń
  • Moduł transakcyjny
  • Moduł Java Messaging Service (JMS)
  • Moduł integracji ORM

Te moduły są obecne w grupach:

moduły-sprężyny

Źródło

35. Wyjaśnij fasolę wiosenną i wymień różne zakresy fasoli wiosennej.

Fasola to jedna z podstawowych koncepcji frameworka Spring w efektywnym zarządzaniu strukturami. W uproszczonej definicji Spring Bean reprezentuje kontenery IoC, które zarządzają obiektem tworzącym szkielet aplikacji.

Zakresy fasoli wiosennej:

Oscyloskopy odgrywają kluczową rolę w efektywnym wykorzystaniu fasoli wiosennej w aplikacji. Zakres pomaga nam zrozumieć cykl życia Spring Bean i mają one następujące typy .

Nr S. Zakres i opis
1. Singleton — domyślnie zakres Spring bean ma zakres singleton, który reprezentuje tylko jedną instancję kontenera Spring IOC. Ten sam obiekt jest udostępniany dla każdego żądania.
2. Prototyp — w tym przypadku nowa instancja zostanie wywołana i utworzona dla każdej definicji ziarna, za każdym razem, gdy zostanie wysłane żądanie określonego ziarna.
3. Żądanie — w tym zakresie pojedynczy ziarno zostanie wywołane i utworzone dla każdego żądania HTTP dla tego konkretnego ziarna.
4. Sesja — ten zakres definiuje użycie pojedynczego komponentu bean w cyklu życia w określonej globalnej sesji HTTP.
5. Sesja globalna — ten zakres umożliwia wdrożenie pojedynczego komponentu bean dla określonego cyklu życia w globalnej sesji HTTP.

Uwaga: ostatnie trzy zakresy mają zastosowanie tylko w Spring ApplicationContext z obsługą sieci Web.

Trzeba przeczytać: Dlaczego Java jest tak popularna wśród programistów

36. Wyjaśnij rolę DispatcherServlet i ContextLoaderListener.

Podczas konfigurowania konfiguracji Spring MVC opartej na XML w pliku web.xml, dwie deklaracje DispatcherServlet i ContextLoaderListener odgrywają istotną rolę w uzupełnieniu celu frameworka.

  • DyspozytorSerwlet –

DispatcherServlet ma główny cel do zarządzania przychodzącymi żądaniami sieci Web dla określonych dopasowanych skonfigurowanych wzorców URI. DispatcherServlet działa jako kontroler frontowy dla rdzenia aplikacji Spring MVC i w szczególności ładuje plik konfiguracyjny, a następnie inicjuje właściwe ziarna obecne w tym pliku. A gdy adnotacje są włączone, może również sprawdzać i skanować konfiguracje i pakiety pod kątem wszystkich adnotowanych za pomocą @Repository, @Component, @Service lub @Controller.

  • ContextLoaderListener –

ContextLoaderListener działa tutaj jako odbiornik żądań do uruchamiania i zamykania głównego WebApplicationContext. Tak więc tworzy i udostępnia kontekst aplikacji głównej z kontekstami podrzędnymi przez konteksty DispatcherServlet. Aplikacje mogą używać tylko jednego wpisu dla elementu ContextLoaderListener w pliku web.xml.

37. Wyjaśnij architekturę hibernacji.

Hibernate definiuje architekturę warstwową, która umożliwia użytkownikom działanie i wydajność bez znajomości podstawowych interfejsów API, tj. Hibernate działa jako struktura do budowania i rozwijania logiki trwałości niezależnie od oprogramowania bazy danych.

Architektura hibernacji składa się z czterech głównych warstw:

  • Warstwa aplikacji Java
  • Warstwa bazy danych
  • Warstwa interfejsu API zaplecza
  • Hibernacja warstwy szkieletu

Elementy architektury hibernacji

Istnieje kilka aspektów i zakresu architektury Hibernate. Aby dowiedzieć się o nich więcej, musisz znać elementy architektury Hibernate.

  • SessionFactory: Sessionfactory udostępnia metodę tworzenia obiektów sesji, które są obecne tylko w pakiecie org.hiberate. Jest z natury bezpieczny wątkowo, niezmienny i przechowuje i zachowuje pamięć podręczną drugiego poziomu danych.
  • Sesja: Obiekty sesji zapewniają interfejs dla oprogramowania Connection i Database za pośrednictwem struktury hibernacji.
  • Transakcja: Interfejs wspomagający zarządzanie transakcjami i umożliwiający zmianę bazy danych.
  • ConnectiveProvider: Część połączeń JDBC, oddziela główną aplikację od DataSource lub DriverManager.
  • TransactionFactory: reprezentuje fabrykę transakcji.

38. Co to jest hierarchia wyjątków w Javie?

Wyjątek definiuje niepożądane zdarzenia, które pojawiają się podczas uruchamiania lub wykonywania programu. Wyjątek zakłóca normalny przebieg programu.
Hierarchia wyjątków jest częścią klasy java.lang.Exception i należy do podstawowej klasy Throwable. Inna podklasa „ Error ” również reprezentuje klasę Throwable w Javie. Chociaż błędy są niezwykłymi warunkami w przypadku awarii, nadal nie są one obsługiwane ani usuwane za pomocą programów Java.
Istnieją dwie podstawowe podklasy dla wyjątkowej hierarchii w Javie z klasą RuntimeException i klasą IOCException.

39. Co to jest synchronizacja?

Synchronizacja w Javie definiuje możliwość zarządzania i kontrolowania dostępu wielu wątków do określonego zasobu. Dzięki temu jeden wątek może w danym momencie uzyskać dostęp do określonego zasobu. Tutaj Java umożliwia tworzenie wątków, a następnie synchronizację zadań za pomocą bloków synchronizujących.

Te zsynchronizowane bloki umożliwiają wykonanie tylko jednego wątku przez określony czas i blokują inne wątki, dopóki bieżący wątek nie zostanie zamknięty w bloku. Tutaj koncepcja monitorów jest kluczowa we wdrażaniu synchronizacji w Javie. Gdy wątek przechodzi w fazę blokady, określa się, że wchodzi do monitora. W ten sposób blokuje wszystkie inne wątki, chyba że pierwszy wątek opuścił monitor.

40. Jakie cechy sprawiają, że Java jest jednym z najlepszych języków programowania?

Oto najważniejsze funkcje, które sprawiają, że Java na początku Twojej krzywej uczenia się w świecie programowania:

  • Prostota: Java jest dość prosta do nauczenia się i pisania. Składnia Java jest w C++, co pozwala programistom na bezproblemowe pisanie programów.
  • OOPS: Java jest oparta na systemie programowania obiektowego (OOPS), co umożliwia budowanie kodu w wielu typach obiektów o różnych danych i zachowaniu.
  • Dynamiczny: Java to kompletny język dynamiczny, który obsługuje ładowanie klas dynamicznych zawsze i wszędzie, gdzie jest to wymagane. Ma również kompleksową obsługę natywnych języków kodu, takich jak C, C++ itp.
  • Platform Independent: Java obsługuje również ekskluzywny i niezależny od platformy język programowania, dzięki czemu programiści mogą uruchamiać swój program tylko na ich platformie.
  • Przenośność: Java ma zasięg raz napisać w dowolnym miejscu, które pozwala na uruchomienie kodu na dowolnej platformie.
  • Bezpieczeństwo: Podążanie za koncepcją ByteCode, obsługa wyjątków i brak jakichkolwiek jawnych wskaźników sprawia, że ​​Java jest wysoce bezpiecznym środowiskiem.

Java jest również neutralna dla architektów i nie jest zależna od żadnej architektury. Silne zarządzanie pamięcią i zautomatyzowane usuwanie elementów bezużytecznych zwiększają niezawodność środowiska.

41. Co sprawia, że ​​Java zapewnia wysoką wydajność?

Zastosowanie kompilatora Just in Time (JIT) w swojej architekturze sprawia, że ​​Java jest jednym z najbardziej wydajnych języków programowania, ponieważ przekształca instrukcje w kody bajtowe.

42. Wymień najpopularniejsze Java IDE.

W branży dostępnych jest wiele środowisk IDE dla Javy. Oto pięć najlepszych środowisk IDE Java, których możesz dziś użyć, aby rozpocząć naukę tego języka programowania:

  • Zaćmienie
  • Netbeans
  • IntelliJ
  • JDeveloper
  • Moje zaćmienie

43. Zdefiniuj główne różnice między Javą a innymi platformami?

Dwie główne różnice, które wyróżniają Javę na tle innych platform, to:

  • Java jest przede wszystkim platformą opartą na oprogramowaniu, podczas gdy inne mogą być platformami programowymi lub sprzętowymi.
  • Java działa lub jest wykonywana na dowolnej platformie sprzętowej, podczas gdy inne wymagają określonych wymagań sprzętowych.

44. Co sprawia, że ​​Java ma charakter „zapisz raz i uruchom wszędzie” (WORA)?

Cóż, jednowyrazowa odpowiedź to kod bajtowy. Kompilator Java konwertuje wszystkie programy Java na określony kod bajtowy działający jako język pośredniczący między kodem maszynowym a kodem źródłowym. ByteCode może działać na dowolnym komputerze i nie jest uzależniony od platformy.

45. Wyjaśnij różne typy specyfikatorów dostępu używane w Javie.

W języku programowania Java specyfikatory dostępu reprezentują dokładny zakres klasy, zmiennej lub metody. Istnieją cztery główne specyfikatory dostępu:

  • Zmienne zdefiniowane publicznie , metody lub klasy są dostępne w dowolnej metodzie lub klasie.
  • Specyfikator dostępu chronionego definiuje zakres klasy, metody i zmiennej do tego samego pakietu, w tej samej klasie lub do tej konkretnej podklasy klasy.
  • Zakres Default jest dostępny dla wszystkich obecnych klas, zmiennych i metod z dostępem tylko do pakietu.
  • Zakres Private zachowuje dostęp do klasy, zmiennych i metod tylko do określonej klasy.

Przeczytaj: Projekt Java Swing

46. ​​Wyjaśnij znaczenie pakietów w Javie wraz z ich zaletami.

Pakiety to mechanizm grupowania podobnych typów (interfejs, klasy, adnotacje i wyliczenia) zapewniający ochronę zasobów i kompleksowe zarządzanie nazwami.

Oto zalety pakietów w Javie:

  • Pakiety pomagają nam zapobiegać konfliktom nazw, gdy klasy o tej samej nazwie istnieją w dwóch różnych pakietach.
  • Pakiety pomagają w systematycznym przeprowadzaniu kontroli dostępu.
  • Zbuduj ukryte klasy, które będą używane przez pakiety.
  • Pomaga w zlokalizowaniu klas powiązanych z pakietem.

47. Jak zdefiniowałbyś Konstruktor w Javie?

Konstruktory to specjalny blok kodów, który inicjuje obiekt w momencie tworzenia. Chociaż ma podobieństwo do metody instancji, nadal Konstruktory nie są metodą, ponieważ nie mają żadnego jawnego typu zwracanego. Tak więc za każdym razem, gdy obiekt jest tworzony w systemie, wywoływany jest jeden konstruktor, który ma go wykonać. Jeśli nie ma zdefiniowanego konstruktora, kompilator używa konstruktora domyślnego.

Oto prosta prezentacja Konstruktora w Javie:

 1
2
3
4
5
6
 klasa publiczna MojaKlasa {
   //To jest konstruktor
   MojaKlasa (){
   }
   ...
}

48. Jakie są różne typy konstruktorów używanych w Javie?

W Javie używane są trzy typy konstruktorów:

  • Konstruktor domyślny: Gdy programista nie używa konstruktora, kompilator Java dodaje bardziej szczegółowy konstruktor domyślny istniejący w pliku .class.
  • Konstruktor bezargumentowy: W tym przypadku nie ma argumentów w konstruktorze, a kompilator nie akceptuje żadnego parametru, ponieważ metoda zmiennej instancji jest inicjowana z określonymi stałymi wartościami.
  • Konstruktor sparametryzowany: w tym przypadku jeden lub więcej parametrów jest obecnych w konstruktorze zapisanym tylko w nawiasach głównego elementu.

49. Jakie są różnice między konstruktorami a metodami?

Główna różnica w konstruktorach i metodach to:

  • Cel: celem konstruktorów jest inicjalizacja obiektu klasy, podczas gdy metoda wykonuje określone zadania związane z wykonaniem kodu.
  • Metoda ma zwracane typy, podczas gdy konstruktory nie.
  • W metodach są abstrakcyjne, statyczne, końcowe i synchronizacyjne, podczas gdy w konstruktorach nie można tworzyć określonych procedur.

50. Wyjaśnij znaczenie zmiennej lokalnej i zmiennej instancji?

  • Zmienne lokalne są obecne w metodzie, a zakres istnieje tylko w ramach metody.
  • Zmienne instancji są obecne i zdefiniowane w klasie tylko z ich zasięgiem w całej klasie.

51. Wyjaśnij znaczenie Class w Javie?

W Javie wszystkie kody, zmienne i metody są zdefiniowane w klasie.

  • Zmienne reprezentują atrybuty, które definiują stan określonej klasy.
  • Metody przedstawiają, gdzie działa logika biznesowa. Metody obejmują zestaw instrukcji i instrukcji, aby spełnić wymagania.

Oto prosty przykład klasy w Javie :

 1
2
3
4
5
6
7
 public class Dodatek { //Deklaracja nazwy klasy
int x = 10 ; //Deklaracja zmiennej
int y = 10 ;
public void dodaj (){ //Deklaracja metody
int z = a + b ;
}
}

52. Wyjaśnij znaczenie Object w Javie?

Obiekty są definiowane jako instancje klasy tylko z określonym stanem i zachowaniem. Na przykład pies z określonym imieniem, rasą i kolorem, podczas gdy zachowanie obejmuje szczekanie, machanie ogonem itp. Tak więc za każdym razem, gdy JVM odczyta dowolne słowo kluczowe new(), zostanie utworzona odpowiednia instancja. Obiekt musi być najpierw zadeklarowany, a następnie utworzony, a na koniec zainicjalizowany w celu dalszego wykonywania.

53. Zdefiniuj domyślną wartość dla bajtowego typu danych w języku Java.

W przypadku typu danych Byte wartością domyślną jest 0.

54. Dlaczego typ danych bajtowych jest bardziej korzystny w Javie?

Ponieważ typ danych bajtowych jest prawie czterokrotnie mniejszy niż liczba całkowita, może pomieścić więcej miejsca na duże tablice.

55. Wyjaśnij pojęcia OOP w Javie.

OOP to podstawowe koncepcje języka programowania Java. Obejmują one abstrakcję, polimorfizm, dziedziczenie i enkapsulację. Koncepcje Java OOP umożliwiają programistom tworzenie zmiennych, metod i komponentów, które dodatkowo umożliwiają ich ponowne wykorzystanie w spersonalizowany sposób przy jednoczesnym zachowaniu bezpieczeństwa.

56. Wyjaśnij znaczenie dziedziczenia.

W Javie dziedziczenie jest specyficznym mechanizmem, który pozwala jednej klasie na pozyskiwanie właściwości (za pomocą pól i metod) innej klasy. Dziedziczenie jest jednym z podstawowych pojęć Java OOP.

Dziedziczenie umożliwia budowanie nowych klas, dodawanie kolejnych pól i metod do istniejących klas w celu ich ponownego wykorzystania w dowolny sposób.

  • Podklasa to ta, która dziedziczy właściwości drugiej klasy.
  • Nadklasa to ta, której właściwości są dziedziczone.

57. Wyjaśnij pojęcia enkapsulacji w Javie?

Jako jedna z podstawowych koncepcji Java OOP, enkapsulacja umożliwia pakowanie danych i kodu tylko w jedną jednostkę. Enkapsulacja jest również znana jako ukrywanie danych, ze zmiennymi określonej klasy ukrytymi przed wszystkimi innymi klasami i dostępnymi tylko za pomocą metod z istniejącej klasy.

Dwie podstawowe rzeczy do osiągnięcia enkapsulacji w Javie to:

  • Deklarowanie zmiennych określonej klasy jako prywatne.
  • Wykorzystanie publicznych metod ustawiających i pobierających do wprowadzania zmian i przeglądania wartości zmiennych.

58. Wyjaśnij pojęcia polimorfizmu.

Polimorfizm w Javie umożliwia programistom wykonywanie jednego zadania na wiele sposobów. Istnieją dwa rodzaje polimorfizmu w Javie z czasem wykonawczym i czasem kompilacji. Do obsługi polimorfizmu w Javie można używać metod zastępujących i przeciążających.

59. Wyjaśnij znaczenie interfejsu.

W Javie nie możemy osiągnąć wielu dziedziczeń. Tutaj interfejs odgrywa kluczową rolę w przezwyciężeniu tego problemu, aby osiągnąć abstrakcję, wspomagać wielokrotne dziedziczenie, a także obsługuje luźne sprzężenie. Teraz mamy domyślną, statyczną i prywatną metodę w interfejsie z najnowszymi aktualizacjami Javy.

60. Co oznacza klasa abstrakcyjna?

Klasy abstrakcyjne są budowane przy użyciu określonego słowa kluczowego abstrakcyjnego w Javie. Reprezentują zarówno metody abstrakcyjne, jak i nieabstrakcyjne.

61. Wyjaśnij klasę abstrakcji w Javie?

Abstrakcja jest jedną z podstawowych właściwości ukrywania informacji o implementacji przed użytkownikiem, a następnie reprezentowania wyłącznie funkcji użytkownika. For instance, when you send an SMS from one person to another person. The user gets to know only the message and number while the backend process remains hidden.

You can achieve abstraction in Java using the following two ways:

  • Abstract Class (0 to 100%)
  • Interface (100%)

62. Explain the difference between Abstraction and Encapsulation in Java.

Here are the main differences:

Abstrakcja Kapsułkowanie
Abstraction aims to gain information. Encapsulation's main aim is to contain or procure information.
In the abstraction process, issues or problems are handled at the interface/ design level. In Encapsulation, problems are handled at a specific implementation level.
Abstraction aids in hiding unwanted information. Encapsulation method applies hiding data within a single unit.
Implemented with interfaces and abstract classes. Implemented with a particular access modifier (public, private, and protected).
Use abstract classes and interfaces to hide complexities. Use getters and setters to hide data.
Objects that extend to abstraction must be encapsulated. An object for encapsulation must not be abstracted.

63. Explain the differences between Abstract class and interface.

Abstract Class Berło
Abstract Class comes with a default constructor. The interface doesn't have a constructor. So, no further process.
Uses both Abstract and Non-Abstract methods. Only use Abstract methods.
Classes that must extend for Abstract class need only abstract methods throughout their sub-class. Classes that extend to interface must provide implementation across all the methods.
These include instance variables. The interface presents constants only.

64. Explain the main differences between Array and Array List.

Szyk Array List
The size needs to be defined for the declaring array.

String[] name = new String[5]

No size requirements; and modifies dynamically.

ArrayList name = new ArrayList

You must specify an index for putting an object inside the array.

name[1] = “dog”

There are no index requirements.

name.add(“dog”)

Arrays are not parameterised. From Java 5.0 onwards, ArrayLists have a specific parameterised type.

65. Explain the difference between static method and instance method.

Static or Class Method Instance Method
You must declare a method static for a static method. All methods with declaration as static come under Instance method only.
No requirements for creating objects in the Static method. The object is a must for calling the instance method.
You cannot access Instance or Non-static methods in the static context. You can access both static and non-static in the instance method.

66. How to make Constructors static?

Constructors invoked with the object, and static context is part of the class, not the object. Hence, constructors cannot be static and show compiler error if run or executed.

67. Explain the use of 'this' keyword in Java?

In Java, 'this' keyword represents a specific reference on the current object. There are multiple uses for this keyword for referring to the current class properties from a variable, constructors, methods, and more. You can also pass this as an argument within constructors or methods. You can also fetch this as a return value from the current class instance. You can also refer to this as a static context.

Przeczytaj także: Jak kodować, kompilować i uruchamiać projekty Java

68. What is a classloader in Java? What are the different types of ClassLoaders in Java?

Java Classloader's main function is to dynamically load all classes into the Java Virtual Machine (JVM). ClassLoaders are part of the JRE only. So every time we run a Java program, classloader loads the classes to execute this program. A single ClassLoader loads only a specific class on requirements and uses getClassLoader() method to specify the class. These classes are loaded by calling their names, and in case these are not found then it retrieves or throws a ClassNotFoundException or NoClassDefFoundError.

Java ClassLoader uses three principles in performing tasks with delegation, uniqueness, and visibility.
There are three different types of Java ClassLoader:

  • BootStrap ClassLoader:

BootStrap ClassLoader represents the parent or superclass for extension classloader and all other classloaders. It has machine code that loads the pure first Java ClassLoader and takes classes from the rt.jar and also known as Primordial ClassLoader.

  • Extension ClassLoader:

Extension ClassLoader represents the child classloader for the superclass or BootStrap ClassLoader. It loads core java classes from jre/lib/ext , ie, JDK extension library.

  • System ClassLoader:

Application or System ClassLoader are further child classes of Extension ClassLoader. It takes and loads a file from the current directory for the program that you can customise with the 'classpath' switch.

69. Explain the meaning of Java Applet.

Java Applet is a program that executes or runs in the web browser only. Applets are specifically designed to function and embed with HTML web pages. Applets have the capability to function full Java applications with the entire use of Java API. JVM is a must requirement to view an applet on the browser. Applet extends with the use of java.applet.Applet class.

70. What are the types of Applets?

Based on location, there are two types of Java applets as Local Applets that are stored on the same computer or system. The Remote Applets that have files on remote systems.

71 What are immutable objects in Java?

W Javie niezmienne obiekty to takie, których stan nie zmienia się po utworzeniu. Obiekty niezmienne są idealne dla aplikacji wielowątkowych, które umożliwiają współdzielenie wątków przy jednoczesnym uniknięciu synchronizacji. Obiekty niezmienne są preferowane do budowania prostego, solidnego i niezawodnego kodu, aby dopasować go do skutecznej strategii.

72. Co masz na myśli przez JRE (Java Runtime Environment)?

Java Runtime Environment to warstwa oprogramowania, która zapewnia obsługę minimalnych wymagań dotyczących uruchamiania programów Java na komputerze. Wraz z JDK i JRE, te trzy elementy stanowią podstawę uruchamiania i tworzenia programów Java na określonej maszynie.

73. Co jest częścią JDK?

Java Development Kit (JDK) to jeden z podstawowych pakietów technologicznych niezbędnych do uruchamiania programów Java. Może to być implementacja z dowolnej platformy Java, Standard Edition, Micro lub Enterprise Edition opracowana przez Oracle do tworzenia aplikacji na Windows, Linux lub macOS.

74. Co to jest wirtualna maszyna Java (JVM)?

Java Virtual Machine (JVM) jest jednym z trzech podstawowych wymagań dotyczących uruchamiania i wykonywania programów Java wraz z JDK i JRE. JVM ma dwie podstawowe funkcje; po pierwsze, aby umożliwić programom Java bezproblemowe działanie na dowolnym komputerze lub systemie, a po drugie, aby zoptymalizować pamięć w celu zapewnienia wydajności.

75. Jakie są różnice między JDK, JRE i JVM?

JVM
JRE
JDK
Maszyna wirtualna Java Środowisko wykonawcze Java Zestaw narzędzi programistycznych Java
Zależna od platformy z kilkoma dostępnymi opcjami oprogramowania i sprzętu. Warstwa oprogramowania zapewniająca obsługę minimalnych wymagań do uruchamiania programów Java na komputerze.

Wersja standardowa

Wersja Enterprise

Wersja mikro

Trzy pojęcia, jak:

  • Specyfikacja
  • Realizacja
  • Instancja
Zestaw bibliotek + plików, które wspierają JVM w środowisku wykonawczym. Narzędzia programistyczne JRE +
Zapewnia środowisko uruchomieniowe do wykonania. JRE reprezentuje implementację JVM. Środowisko programistyczne.

76. Ile typów obszarów pamięci znajduje się w JVM?

W JVM występuje kilka typów obszarów pamięci:

  • Obszar klas: ta pamięć przechowuje struktury przedklasowe z polem, pulą, danymi metod i kodem.
  • Heap oznacza pamięć uruchomieniową specjalnie przydzieloną do obiektów.
  • Stos reprezentuje pamięć ramki ze zmienną lokalną, częściowymi wynikami, wątkiem i ramką dla każdej metody.
  • Rejestr liczników programów przechowuje informacje dla bieżących instrukcji podczas wykonywania wirtualnej maszyny Java.
  • Metoda natywna Stack przechowuje wszystkie obecne metody natywne używane w bieżących aplikacjach.

77. Co to jest wiązanie danych w Javie?

Powiązanie danych reprezentuje połączenia między klasą a metodą, polem, zmienną, konstruktorami lub treścią metody. Java może obsługiwać wiązanie danych zarówno statycznie, jak i dynamicznie.

78. Jakie są różne typy wiązania danych w Javie?

W Javie istnieją dwa kluczowe typy wiązania danych.

  • Powiązanie statyczne ma miejsce w czasie kompilacji przy użyciu metod statycznych, końcowych i prywatnych; znany również jako wczesne wiązanie.
  • Powiązanie dynamiczne jest wyświetlane w czasie wykonywania bez dokładnych informacji o właściwej metodzie w czasie kompilacji.

79. Co to jest gniazdo Java?

Gniazda pomagają w budowaniu mechanizmów komunikacji z dwóch komputerów poprzez TCP. Gniazda są w idealnym przypadku bardziej wystarczające i elastyczne do komunikacji.

80. Wyjaśnij różnicę między Ścieżką a Ścieżką klas.

Zarówno path, jak i Classpath reprezentują lokalne zmienne środowiskowe. Ścieżka zapewnia oprogramowaniu lokalizowanie plików wykonywalnych, podczas gdy ClassPath określa lokalizację plików .class w systemie.

81. Czy istnieje metoda abstrakcyjna bez użycia klasy abstrakcyjnej?

Nie, aby metoda abstrakcyjna istniała w klasie, musi być klasą abstrakcyjną.

82. Jak wygląda proces tworzenia klasy tylko do odczytu w Javie?

W Javie można utworzyć klasę tylko do odczytu, zachowując wszystkie pola jako prywatne. Ta konkretna klasa tylko do odczytu będzie miała tylko metody pobierające, które zwracają własność prywatną. Nie pozwala na modyfikację lub zmianę tej właściwości, ponieważ nie jest dostępna żadna metoda ustawiająca.

 1
2
3
4
5
6
7
8
9
 //Klasa tylko do odczytu w Javie
klasa publiczna uczeń {    
//członek danych prywatnych
prywatny instytut String = "MKG" ;    
//metoda pobierająca dla instytutu
public String getInstitute (){    
powrót instytut ;    
}    
}

83. Jak wygląda proces tworzenia klasy tylko do zapisu w Javie?

W Javie można również utworzyć klasę tylko do zapisu, zachowując wszystkie pola jako prywatne z implementacją tylko metod ustawiających.

 1
2
3
4
5
6
7
8
9
 // Klasa tylko do zapisu w Javie
klasa publiczna uczeń {    
//członek danych prywatnych
prywatny instytut String ;    
//metoda ustawiająca dla instytutu
public void setInstitute ( String instytut ){    
to . instytut = instytut ;    
}    
}

84. Wyjaśnij sposób dostępu do klasy w innej klasie w Javie?

W Javie istnieją dwa sposoby uzyskania dostępu do klasy w innej klasie:

  • Używanie określonej nazwy: Możemy uzyskać dostęp do określonej klasy z innego pakietu, używając nazwy kwalifikowanej lub zaimportować pakiet, który zawiera określoną klasę.
  • Korzystanie ze ścieżki względnej: Podobnie, możemy również użyć ścieżki względnej dla tego pakietu z określoną klasą.

85. Co to jest obsługa wyjątków?

Obsługa wyjątków reprezentuje mechanizm obsługi wyjątków lub nienormalnych warunków podczas błędów środowiska wykonawczego w celu utrzymania normalnego przepływu aplikacji. Istnieją trzy różne typy wyjątków Java z zaznaczonym wyjątkiem, niesprawdzonym wyjątkiem i błędem.

86. Wyjaśnij różnicę między zaznaczonym i niesprawdzonym wyjątkiem.

  • Sprawdzone wyjątki to klasy, które dodatkowo rozszerzają klasy, które można wyrzucać, z wyjątkiem RuntimeException, takich jak SQLException, IOException itp. Sprawdzone wyjątki są obsługiwane tylko w czasie kompilacji.
  • Niesprawdzone wyjątki to klasy, które rozszerzają RuntimeException, takie jak NullPointerException, ArithmeticException itp. i nie są obsługiwane w czasie kompilacji.

87. Jaka jest klasa bazowa dla wyjątków i błędów?

Tutaj klasa Throwable reprezentuje klasę bazową dla wyjątku i błędu.

88. Wymień słowo kluczowe Obsługa wyjątków w Javie.

Istnieje pięć słów kluczowych do obsługi wyjątków w Javie :

Słowo kluczowe Opis
próbować Ten blok try definiuje blok do umieszczania kodu wykonawczego. Po tym bloku try zwykle następuje użycie catch lub w końcu. Więc nie można ich używać samodzielnie.
złapać Głównym celem bloku catch jest obsługa wyjątku. Musisz użyć tego w połączeniu z try block, a następnie w późniejszym etapie.
wreszcie Na koniec block sprawdza ważny kod programu, który sprawdza, czy wykonanie zostało wykonane, czy nie.
rzucić Głównym celem słowa kluczowego throw jest wyrzucenie wyjątku z programu.
rzuty Słowo kluczowe throws służy głównie do deklarowania wyjątków, a nie do zgłaszania wyjątku. Dostarcza informacji o wystąpieniu wyjątku i jest stosowany z podpisem metody.

89. Wyjaśnij znaczenie ostatniego bloku.

Tutaj ostatni blok ma kluczowe znaczenie dla sprawnego działania programu. Jest zawsze wykonywany bez względu na to, czy wyjątek jest obsługiwany, czy nie. W końcu blok pojawia się po bloku try lub catch. W maszynie JVM system zawsze uruchomi blok Last przed zakończeniem lub zamknięciem pliku. Dla każdego obecnego bloku try może być zero lub wiele bloków catch, wciąż jednak może być tylko jeden blok finalny.

90. Czy możliwe jest uruchomienie final block bez catch block?

Tak, można uruchomić blok last, po którym następuje odpowiednio blok try lub catch.

91. Czy są przypadki, że nie istnieje ostatecznie zablokowana?

Ostatecznie blok nie jest uruchamiany lub wykonywany w przypadku, gdy program już istnieje lub powoduje błąd krytyczny w przypadku przerwania procesu.

92. Wyjaśnij główne różnice między rzutami a rzutami.

rzucić słowo kluczowe

rzuca słowo kluczowe

Zgłasza wyjątek. Deklaruje wyjątek.
Sprawdzone wyjątki nie mogą być propagowane tylko za pomocą throw. Sprawdzone wyjątki mogą się propagować za pomocą rzutów.
Po nim następuje instancja. Po nim następuje klasa.
Jest używany tylko w metodzie. Jest używany z określoną sygnaturą metody.
Nie ma możliwości dla wielu wyjątków. Podczas gdy w tej procedurze można zadeklarować wiele wyjątków.

93. Czy istnieje możliwość ponownego zgłoszenia wyjątku?

Tak, jeśli istnieje wyjątek, można go ponownie zgłosić.

94. Wyjaśnij propagację wyjątków.

Proces wyjątków w ramach procedury obsługi jest znany jako propagacja wyjątków. Na przykład wyjątek jest najpierw obsługiwany na szczycie stosu, a następnie, jeśli nie zostanie przechwycony, wyjątek spada do poprzedniej metody, a jeśli nie, to spada dalej, aż wyjątek zostanie przechwycony lub osiągnie dół stosu. Zaznaczone wyjątki domyślnie nie mają propagacji.

95. Wyjaśnij znaczenie wątku w Javie.

W Javie sposób lub przepływ wykonania jest znany jako wątek. Tak więc każdy program zawiera jeden wątek określany jako główny wątek utworzony przez JVM. Deweloperzy mogą definiować własne wątki, dodając i rozszerzając klasę Thread za pomocą interfejsu.

96. Wyjaśnij znaczenie puli wątków.

Pula wątków Java to grupa wielu wątków, które nieustannie czekają na przydzielone zadania. W tym przypadku pule wątków działają pod nadzorem dostawcy usług, który pobiera wątek z tej puli, a następnie przypisuje mu zadanie dla określonego zadania. Pula wątków zwiększa wydajność i stabilność systemu.

97. Wyjaśnij różnicę między String i StringBuffer.

Strunowy

Bufor ciągów

Klasa String ma charakter niezmienny. Natomiast klasa StringBuffer jest zmienna.
Struny są wolne. Poza tym StringBuffer jest dość szybki.
Zużywają one więcej pamięci na tworzenie nowej instancji. Zużywają one mniej pamięci dzięki ciągom concat.
Ciągi umożliwiają porównanie jego zawartości, ponieważ przesłania ona metodę equals() z klasy Object. Natomiast klasa StringBuffer nie może przesłonić metody equals() z klasy Object.

98. Wyjaśnij różnicę między StringBuffer i StringBuilder.

Bufor ciągów

StringBuilder

Jest zsynchronizowany z bezpieczeństwem do wątków. Jest niezsynchronizowany, bez bezpieczeństwa dla wątków.
W tym przypadku dwa wątki nie mają metody wywołania. W tym przypadku dwa wątki mogą bezproblemowo mieć metody wywoływania.
Niższy lub mniej wydajny niż StringBuilder. Bardziej wydajny niż StringBuffer.

99. Jaki jest sposób na stworzenie niezmiennej klasy w Javie?

W Javie można utworzyć niezmienną klasę, deklarując ostateczną klasę ze wszystkimi jej członkami jako ostateczną. Weźmy przykład, aby to zrozumieć:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
 publiczna klasa końcowa Pracownik {  
 	końcowy Numer bezpieczeństwa ciągu ;  
 	  
 	public Employee ( String securityNumber ){  
 	to . NumerZabezpieczenia = NumerZabezpieczenia ;  
 	}  
 	  
 	public String getSecurityNumber (){  
 	numer zabezpieczenia zwrotu ;  
  }  
    
  }

99. Czym są klasy wewnętrzne?

Klasy Java Inner są definiowane i deklarowane w interfejsie lub klasie. Klasy wewnętrzne pozwalają systemowi logicznie pogrupować klasy i interfejsy, czyniąc je bardziej czytelnymi i łatwymi w utrzymaniu. Co więcej, te klasy mogą uzyskiwać dostęp do wszystkich członków klasy zewnętrznej za pomocą metod, a także prywatnych członków danych.

100. Jakie są główne zalety i wady korzystania z klas Java Inner?

Główne zalety klas wewnętrznych Java to:

  • Dostępność dla wszystkich członków z klas zewnętrznych.
  • Mniej kodu do napisania.
  • Więcej konserwacji i czytelny kod.

Główne wady klas wewnętrznych Java to:

  • Mniejsze wsparcie ze strony IDE.
  • Duża liczba wszystkich klas.

101. Zdefiniować typy klas wewnętrznych w języku programowania Java?

Klasy wewnętrzne mają trzy główne typy:

  • Składowa Klasa wewnętrzna, która określa klasę w klasie przy użyciu metody zewnętrznej.
  • Anonimowa klasa wewnętrzna do rozszerzania klasy lub określania implementacji interfejsu.
  • Lokalna klasa wewnętrzna, aby utworzyć klasę w ramach metody.

102. Zdefiniuj klasę zagnieżdżoną.

Klasy zagnieżdżone są definiowane lub deklarowane tylko w ramach klasy lub interfejsu. Klasa zagnieżdżona może w szczególności uzyskiwać dostęp do wszystkich członków klasy zewnętrznej za pomocą metod i prywatnych danych członkowskich. Oto prosta składnia klasy zagnieżdżonej:

 1
2
3
4
5
6
 klasa Java_Zewnętrzna_klasa {    
 	 //kod
 	 klasa Java_Zagnieżdżona_klasa {    
 	  //kod
 	 }    
 	}

103. Czy możesz wyjaśnić różnicę między klasami wewnętrznymi a klasami zagnieżdżonymi?

Wszystkie klasy wewnętrzne są zdefiniowane jako niestatyczne klasy zagnieżdżone. Tak więc klasy wewnętrzne są tylko częścią klas zagnieżdżonych.

104. Jak zdefiniowałbyś znaczenie Kolekcji w Javie?

Kolekcje w Javie to grupa wielu obiektów, które prezentują się jako jedna jednostka; znany przede wszystkim jako Kolekcje obiektów. Nazywa się je również ramami kolekcji lub architekturą, która zapewnia miejsce do przechowywania obiektów i dalej manipuluje projektem w celu wprowadzenia zmian.

Oto główne funkcje wykonywane przez kolekcje Java:

  • Sortowanie
  • Badawczy
  • Wprowadzenie
  • Manipulacja
  • Usunięcie

Istnieje wiele interfejsów i klas, które są częścią kolekcji.

105. Jakie interfejsy i klasy są dostępne w kolekcjach?

Oto lista interfejsów i klas, które są dostępne w kolekcjach w Javie.

  • Interfejsy: kolekcja, kolejka, posortowany zestaw, posortowana mapa, lista, zestaw, mapa
  • Klasy: Listy, Wektory, Lista tablic, Lista połączona
  • Zestawy: zestaw skrótów , zestaw drzew, połączony zestaw skrótów
  • Mapy: Mapa skrótów, tabela skrótów, mapa drzewa, połączona mapa haszowana
  • Kolejka: Kolejka priorytetowa

106. Wyjaśnij posortowane i uporządkowane w odniesieniu do zbiorów w Javie?

  • Posortowane: sortowanie umożliwia grupie obiektów zastosowanie wewnętrznie lub zewnętrznie w celu posortowania ich w określonej kolekcji na podstawie ich różnych właściwości.
  • Uporządkowane: Definiuje wartości, które są sortowane na podstawie wartości dodanych w kolekcji i powtarza je w określonej kolejności.

107. Jakie są różne listy dostępne w kolekcji?

Listy przechowują wartości na podstawie ich pozycji w indeksie z dozwolonym duplikowaniem. Oto główne typy list:
Listy tablic: Wykorzystuje interfejs dostępu losowego, zapewnia zbieranie kolejności według indeksu, a nie sortowanie i oferuje szybką iterację. Oto przykład, aby to zrozumieć:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
 klasa publiczna Owoce {
public static void main ( String [ ] args ){
ArrayList < String > names = new ArrayList < String >();
nazwiska . dodaj (  jabłko  );
nazwiska . dodaj (  awokado  );
nazwiska . dodaj (  wiśnia  );
nazwiska . dodaj (  kiwi  );
nazwiska . dodaj (  pomarańcze  );
nazwiska . dodaj (  banan  );
nazwiska . dodaj (  kiwi  );
System . się . println ( nazwy );
}
}

Dane wyjściowe są następujące:

[Jabłko, awokado, wiśnia, kiwi, pomarańcze, banan, kiwi]

Dzięki wynikom możesz sprawdzić, czy Array List zachowuje oryginalną kolejność wstawiania, a także zezwala na duplikaty. Chociaż nie posortowane.

Vector: korzysta również z metody dostępu losowego, jest zsynchronizowany i oferuje wsparcie dla bezpieczeństwa wątków.

Zrozummy to na przykładzie:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
 klasa publiczna Owoce {
public static void main ( String [ ] args ){
ArrayList < String > names = nowy wektor < String >();
nazwiska . dodaj (  kiwi  );
nazwiska . dodaj (  pomarańcze  );
nazwiska . dodaj (  banan  );
nazwiska . dodaj (  jabłko  );
nazwiska . dodaj (  awokado  );
nazwiska . dodaj (  wiśnia  );
nazwiska . dodaj (  kiwi  );
System . się . println ( nazwy );
}
}

Dane wyjściowe są następujące:

[kiwi, pomarańcze, banan, jabłko, awokado, wiśnia, kiwi]

Listy wektorowe są zgodne z pierwotną kolejnością wstawiania, a także obsługują duplikaty.

Lista połączona: jest to również idealny wybór do usuwania i wstawiania, elementy są podwójnie połączone, ale mają niską wydajność.

Przykład dla połączonej listy:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
 klasa publiczna Owoce {
public static void main ( String [ ] args ){
ArrayList < String > names = nowy wektor < String >();
nazwiska . dodaj (  kiwi  );
nazwiska . dodaj (  pomarańcze  );
nazwiska . dodaj (  banan  );
nazwiska . dodaj (  jabłko  );
nazwiska . dodaj (  awokado  );
nazwiska . dodaj (  wiśnia  );
nazwiska . dodaj (  kiwi  );
System . się . println ( nazwy );
}
}

Dane wyjściowe są następujące:

[Jabłko, awokado, wiśnia, kiwi, pomarańcze, banan, kiwi]

Jest również zgodny z pierwotnym zamówieniem reklamowym i akceptuje duplikaty.

108. Jakie są główne różnice między kolekcją a kolekcją w Javie?

Główne różnice są następujące:

  • Kolekcja reprezentuje interfejs, podczas gdy Kolekcje jest w szczególności tylko klasą.
  • Interfejs kolekcji zapewnia wiele funkcji do strukturyzacji danych w postaci listy, zestawu i kolejki. Natomiast głównym celem klasy Collection jest sortowanie i synchronizowanie elementów kolekcji.

109. Wyjaśnij kolejkę priorytetów.

Kolejka priorytetowa definiuje interfejs kolejki do obsługi list połączonych w celu wejścia i wyjścia z priorytetem. Kolejka generalnie przebiega według algorytmu FIFO (pierwsze weszło, pierwsze wyszło), nadal możesz kolejkować elementy w oparciu o określone wymagania, a następnie możemy wdrożyć PriorityQueue w celu dostosowania. W przypadku kolejki priorytetów zależy to od sterty priorytetów w sposób naturalny lub przez komparator od ich względnego priorytetu.

110. Kiedy najlepiej jest używać i porównywać interfejs Runnable w Javie?

Gdy potrzebujemy rozszerzyć klasę o inne klasy, a nie o wątki, wówczas uruchamialne interfejsy są idealnym wyborem.

111. Jaka jest różnica między metodą start() i run() klasy wątków?

Metoda start() dodaje i tworzy nowy wątek. A kod w metodzie run() jest wykonywany tylko w nowym wątku. Podczas gdy metoda run() wykona kod tylko w bieżącym wątku.

112. Co to jest wielowątkowość?

W Javie możemy wykonywać wiele wątków jednocześnie, co jest znane jako wielowątkowość. Pomaga programowi wykonywać wiele zadań jednocześnie, zabierając mniej pamięci i zapewniając wyższą wydajność. W wielowątkowości wątki są lekkie, dzielą tę samą przestrzeń i są dość przystępne pod każdym względem.

113. Wyjaśnij różnicę między procesem a wątkami.

Oto główne różnice:

  • Wykonywany program Java jest określany jako proces, podczas gdy wątek reprezentuje tylko podzbiór procesu.
  • Procesy reprezentują różne przestrzenie w pamięci, podczas gdy wątki mają ten sam adres.
  • Procesy są całkowicie niezależne, podczas gdy wątki są tylko częścią procesu.
  • Powolna komunikacja między procesami, podczas gdy komunikacja między wątkami jest szybka.

114. Wyjaśnij znaczenie komunikacji międzywątkowej.

Komunikacja międzywątkowa jest zdefiniowana jako proces, który umożliwia komunikację między wieloma zsynchronizowanymi wątkami. Jego głównym celem jest uniknięcie łączenia wątków w Javie. Komunikacja odbywa się za pomocą metod wait(), notify() i notifyAll().

115. Wyjaśnij metodę wait().

Za pomocą metody wait() możesz zezwolić wątkowi na stan oczekiwania, podczas gdy inny wątek jest zablokowany na obiekcie. W ten sposób metoda wait() może wydłużyć czas oczekiwania na wątki.

Oto składnia, która to reprezentuje:

 1
2
3
4
5
6
 public static void main ( String [] args ){
Wątek t = nowy wątek ();
t . start ();
Zsynchronizowany ( t ) {
Czekaj ();
}

116. Jaka jest główna różnica między metodą notify() a notyfikacjąAll() w Javie?

Metoda notyfikacji() wysyła sygnał do obudzenia tylko określonego wątku w puli oczekujących, podczas gdy notyfikacjaAll() budzi wszystkie wątki w fazie oczekiwania w puli.

117. Zdefiniuj główne różnice między sleep() i wait().

Sleep() wstrzymuje lub zatrzymuje postęp bieżącego wątku, zawieszając wykonywanie na określony czas bez zwalniania blokady. Podczas gdy wait() powoduje czas oczekiwania na wątek po wywołaniu metody notyfikacji() w celu późniejszego wybudzenia.

118. Wyjaśnij metodę join() w odniesieniu do wątku w Javie.

Metoda join() umożliwia połączenie jednego wątku z jednym z ciągłych wątków. Oto składnia metody join():

 1
2
3
4
5
 public static void main ( String [] args ){
Wątek t = nowy wątek ();
t . start ();
t . dołącz ();
}

119. Wyjaśnij metodę Yield wątku.

Metoda zysku jest metodą statyczną i nie zwalnia żadnej blokady wątków. W tym przypadku metoda Yield() wzmacnia bieżący wątek w bardziej uruchamialny wątek, jednocześnie pozwalając innym wątkom na zachowanie wykonania. W ten sposób wątki o równym priorytecie wątków mogą działać regularnie.

120. Co to jest etap głodu?

Głód to faza, w której wątek nie uzyskuje dostępu do współdzielonych zasobów i nie jest w stanie poczynić żadnych postępów.

121. Co to jest impas dla wątku?

Zakleszczenie definiuje etap, w którym dwa lub wiele wątków zostaje zablokowanych na zawsze w oczekiwaniu na siebie.

122. Zdefiniować serializację i deserializację w Javie?

Serializacja to proces przekształcania stanu obiektu w konkretny strumień bajtów, który idealnie nadaje się do technologii JPA, JMS, RMI, JPA i Hibernate. Natomiast odwrotny proces zmiany strumienia bajtów na obiekt nazywa się deserializacją. Oba procesy są niezależne od platformy, więc umożliwiają serializację na jednej platformie i wydajną deserializację na zupełnie inną platformę.

123. Jakie znaczenie mają zmienne przejściowe?

Znaczenie zmiennych przejściowych polega na deserializacji, która jest ustawiona na zmienne domyślne i nie jest używana ze zmiennymi statycznymi.

124. Czym są zmienne zmienne?

Zmienne ulotne odgrywają kluczową rolę w synchronizacji i odczycie z pamięci głównej, unikając jednocześnie pamięci podręcznej wątków.

125. Co to jest SerialVersionUID?

W procesie serializacji obiekt jest stemplowany określonym numerem identyfikacyjnym wersji dla odpowiedniej klasy obiektu. Ten numer jest określany jako SerialVersionUID i odgrywa kluczową rolę w weryfikacji podczas procesu deserializacji w celu sprawdzenia zgodności odpowiednio nadawcy i odbiorcy.

126. Jak wygląda proces klonowania obiektu w Javie?

Dzięki klonowaniu obiektów możesz utworzyć dokładną kopię oryginalnego obiektu. Aby klonowanie było możliwe, klasa musi obsługiwać klonowanie za pomocą interfejsu java.lang.Cloneable i pozwalać na przesłonięcie metody clone() z oryginalnej klasy obiektu.

Oto prosta składnia metody clone():

protected Object clone() rzuca CloneNotSupportedException

W przypadku, gdy klon go nie zaimplementuje, zwykle zgłasza wyjątek z „CloneNotSupportedException”.

127. Zdefiniuj klasę, która pozostaje superklasą dla każdej klasy?

Klasa obiektu.

128. Zdefiniować, czy klasa ciągu jest zmienna czy niezmienna?

Klasa String reprezentuje niezmienny stan. Tak więc po utworzeniu obiektu nie może się to już zmienić.

129. Jak odróżnić klasę StringBuffer od StringBuilder?

  • StringBuilder jest szybszy niż StringBuffer.
  • StringBuffer jest synchronizowany, podczas gdy StringBuilder nie jest zsynchronizowany.
  • StringBuffer oferuje środowisko bezpieczne wątkowo, podczas gdy StringBuilder nie ma możliwości zabezpieczania wątków.

130. Do czego służy metoda toString() w Javie?

W Javie metoda toString() pobiera lub zwraca reprezentację ciągu z dowolnego obiektu.

131. Co to jest garbage collection w Javie?

Ponieważ obiekty są dynamicznie przydzielane za pośrednictwem operatora, system Java obsługuje również automatyczne cofanie alokacji pamięci używanej w przypadku braku odwołań do obiektu, który pozostaje przez dłuższy czas. Ten proces utrzymywania systemu wolnego od obiektów, które nie są używane, jest znany jako Garbage Collection w Javie. Głównym celem garbage collection jest usprawnienie zarządzania pamięcią.

132. Ile razy garbage collector wywołuje metodę finalize() dla określonego obiektu?

Możesz wywołać metodę finalize() w wyrzucaniu elementów bezużytecznych tylko raz.

133. Zdefiniuj sposoby wywoływania garbage collection.

Zbieranie śmieci można wywołać na dwa sposoby:

  • System.gc()
  • Runtime.getRuntime().gc()

134. Czy możemy wymusić wywóz śmieci?

Nie, to proces automatyczny. Możesz wywołać metodę garbage collection, ale nie możesz jej wymusić. Nie gwarantuje jednak, że będzie kompletny.

135. Jakie są różne typy danych w Javie? Wyjaśnić.

Oto krótka lista, która pomoże Ci z typami danych:

  • bajt – 8 bitów
  • krótki – 16 bit
  • znak – 16-bitowy Unicode
  • int – 32 bity (liczba całkowita)
  • float – 32 bity (liczba rzeczywista)
  • długi – 64 bit (pojedyncza precyzja)
  • double – 64 bity (podwójna precyzja)

136. Zdefiniuj Unicode.

Unicode to sposób definiowania znaków międzynarodowych w językach ludzkich, a Java używa tej struktury Unicode do symbolizowania znaków.

137. Zdefiniuj dosłowny.

Literał to stała wartość przypisana do określonej zmiennej

// Tutaj 105 jest dosłownym

liczba int = 105

138. Zdefiniuj rodzaj odlewania w Javie?

W przypadku przypisania wartości jednego typu danych do innego typu danych, te dwa mogą, ale nie muszą być kompatybilne i wymagać konwersji. Java dokona automatycznej konwersji w przypadku zgodnych typów danych. Jeśli typy danych nie są kompatybilne, należy je rzutować, aby konwersja zakończyła się pomyślnie. Rzutowanie ma dwa podstawowe typy: niejawne i jawne.

139. Wyjaśnij dwa różne typy rzutowania?

  • Niejawny: definiuje przechowywanie wartości z mniejszych typów danych w większych typach danych, wykonywane tylko przez kompilator.
  • Jawne: definiuje przechowywanie wartości z większych typów danych w mniejszych typach danych, które mogą spowodować utratę informacji.

Wniosek

Powyższe pytania do rozmowy kwalifikacyjnej w języku Java zapewnią dobry początek przygotowań do rozmowy kwalifikacyjnej. Ćwicz także swoje umiejętności kodowania i upewnij się, że jesteś dokładny w tych pytaniach i związanych z nimi koncepcjach, tak abyś gdy osoba przeprowadzająca rozmowę kwalifikacyjna rzuciła Q, był gotowy do wygrania rundy ze swoim A. Och, i nie zapomnij o 3 (niepozorne) oddechy, gdy stajesz przed ankieterem.

Jeśli chcesz dowiedzieć się więcej o Java, tworzeniu oprogramowania typu full-stack, sprawdź program Executive PG UpGrad i IIIT-B w tworzeniu oprogramowania – specjalizacja w tworzeniu pełnego stosu, który jest przeznaczony dla pracujących profesjonalistów i oferuje ponad 500 godzin rygorystycznego szkolenia , 9+ projektów i zadań, status absolwentów IIIT-B, praktyczne praktyczne projekty zwieńczenia i pomoc w pracy z najlepszymi firmami.

Wszystkiego najlepszego! Mam nadzieję, że pękniesz wywiady !!

Wyląduj na swojej wymarzonej pracy

Złóż wniosek o certyfikację PG związaną z pracą w inżynierii oprogramowania