Java back-end proqramçıları üçün müsahibə sualları
Salam əziz oxucular, bu gün sizə Java back-end proqramçıları üçün müsahibə sualları və cavabları haqqında ətraflı bir məqalə paylaşacam.
Bu məqalə əsasən back-end proqramlaşdırmada istifadə olunan mühüm Java konseptlərini, çərçivələri və dizayn prinsiplərini əhatə edəcək. Həmçinin suallar və onların cavab nümunələri vasitəsilə sizə müsahibəyə hazırlaşmaqda kömək edəcəkdir.
1. Java Proqramlaşdırma və Sintaksis
Java-da final ilə finally arasındakı fərqi izah edin.
Cavab: final açar sözü dəyişənlərin, metodların və klassların dəyişdirilməsini qadağan edir, finally isə try-catch blokunda mütləq icra olunan blokdur.
Java-da String, StringBuilder və StringBuffer arasındakı fərqləri izah edin.
Cavab: String dəyişməzdir (immutable), StringBuilder və StringBuffer isə dəyişdirilə biləndir (mutable). StringBuffer sinxronlaşdırılıb, StringBuilder isə sinxronlaşdırılmayıb və daha sürətlidir.
Java-da HashMap və Hashtable arasındakı fərqi izah edin.
Cavab: HashMap sinxronlaşdırılmayıb və null açarları qəbul edir, Hashtable isə sinxronlaşdırılıb və null açarları qəbul etmir.
Java-da polymorphism nədir?
Cavab: Polymorphism bir interfeysin müxtəlif reallaşma yollarını təklif edir. Java-da bu, metodların overriding və overloading ilə əldə edilir.
Java-da super və this açar sözləri nə üçün istifadə olunur?
Cavab: this hazırkı obyektə istinad edir, super isə üst (parent) klassa istinad edir.
2. Java Obyekt-Orientasiyalı Proqramlaşdırma
Encapsulation nədir və Java-da necə tətbiq olunur?
Cavab: Encapsulation, məlumatları təhlükəsiz saxlamaq üçün onları klass daxilində gizlətmə texnikasıdır. Bu, private dəyişənlər və public getter/setter metodları ilə tətbiq olunur.
Inheritance nə üçün istifadə olunur?
Cavab: Inheritance, bir klassa başqa bir klassın xüsusiyyətlərini və metodlarını yenidən istifadə etmək üçün imkan verir.
Abstraction və onun Java-da necə tətbiq olunmasını izah edin.
Cavab: Abstraction obyektlərin daxili işlərindən gizlənməsini təmin edir. Java-da abstract klasslar və interfeyslər vasitəsilə tətbiq olunur.
Constructor nədir və default constructor nədir?
Cavab: Constructor klassın obyektini yaratmaq üçün istifadə olunan xüsusi metoddur. Default constructor isə parametr qəbul etməyən və avtomatik yaradılan konstruktordur.
Method Overloading ilə Method Overriding arasındakı fərqi izah edin.
Cavab: Overloading eyni adda, lakin fərqli parametr dəsti olan metodlar yaratmağa imkan verir, Overriding isə superclass metodunun subclass-da yenidən yazılmasıdır.
3. Verilənlər Strukturları və Algoritmalar
Binary Search Tree (BST) nədir?
Cavab: BST, hər bir düyünün sol tərəfdə daha kiçik və sağ tərəfdə daha böyük düyünləri saxlayan iyerarxik məlumat strukturudur.
Java-da LinkedList ilə ArrayList arasındakı fərqləri izah edin.
Cavab: ArrayList ardıcıl yaddaş bölmələrində yerləşir və tez-tez məlumat oxuma üçün uyğundur. LinkedList isə hər elementi digərinə göstərən göstərici ilə bağlıdır və məlumat əlavə etmə/silmə üçün daha uyğundur.
HashSet və TreeSet arasındakı fərqi izah edin.
Cavab: HashSet elementləri təsadüfi sırada saxlayır, TreeSet isə elementləri sıralı saxlayır.
Stack ilə Queue arasındakı fərqləri izah edin.
Cavab: Stack LIFO (Son Gələn İlk Çıxır) prinsipi ilə işləyir, Queue isə FIFO (İlk Gələn İlk Çıxır) prinsipi ilə işləyir.
Bubble Sort və Quick Sort algoritmlərini müqayisə edin.
Cavab: Bubble Sort sadə, lakin yavaş algoritmdir və hər təkrarda ən böyük elementi sona göndərir. Quick Sort isə daha sürətlidir və təkrarlanan hissələrlə işləyir.
4. Çoxaxınlılıq (Multithreading) və Sinxronizasiya
Thread ilə Process arasındakı fərqi izah edin.
Cavab: Process öz yaddaş sahəsinə malik müstəqil proqramdır, thread isə prosesin daha yüngül iş axınıdır.
Java-da synchronized açar sözünü izah edin.
Cavab: synchronized açar sözü bir metod və ya blokun yalnız bir thread tərəfindən istifadə olunmasını təmin edir.
Deadlock nədir və necə qarşısını almaq olar?
Cavab: Deadlock, iki və ya daha çox thread-in bir-birini gözləməsi nəticəsində baş verən qarşılıqlı kilidlənmədir. Kodun dizaynında kilidlərin sırasını diqqətlə idarə edərək qarşısını almaq olar.
Java-da volatile açar sözünün funksiyası nədir?
Cavab: volatile dəyişənin bir neçə thread tərəfindən görülməsini təmin edir və onun yaddaşda saxlanılmasını məcbur edir.
Executor Framework nə üçün istifadə olunur?
Cavab: Executor Framework çoxsaylı işləri asanlıqla idarə etmək üçün istifadə olunur və mövcud olan thread-ləri daha effektiv şəkildə idarə edir.
5. Verilənlər Bazası və Hibernate
Hibernate ORM nədir?
Cavab: Hibernate, Java obyektlərini SQL verilənlər bazasında saxlamaq və idarə etmək üçün ORM vasitəsidir.
Session və SessionFactory arasındakı fərqi izah edin.
Cavab: Session verilənlər bazasında əməliyyatlar həyata keçirmək üçün istifadə olunur, SessionFactory isə session yaratmaq üçün lazım olan fabriki təmsil edir.
Lazy loading nədir və Hibernate-də necə istifadə olunur?
Cavab: Lazy loading, yalnız lazım olduqda əlaqəli obyektlərin yüklənməsini təmin edir və yaddaşa qənaət edir.
JPA nədir və Hibernate ilə əlaqəsi nədir?
Cavab: JPA Java Persistence API-dir və ORM üçün standartdır. Hibernate isə JPA-nı implementasiya edən bir çərçivədir.
One-to-Many əlaqəsi Hibernate-də necə təyin olunur?
Cavab: @OneToMany annotasiyası ilə List kimi obyektlərdə müəyyən edilir.
6. Spring Framework
Spring Framework nədir və nə üçün istifadə olunur?
Cavab: Spring, Java üçün modul sistemlər və asan inkişaf üçün nəzərdə tutulmuş framework-dür.
Dependency Injection nədir və Spring-də necə tətbiq olunur?
Cavab: Dependency Injection, obyektin asılılığını başqa bir obyekt vasitəsilə təmin etmək metodudur. Spring-də @Autowired və XML konfiqurasiya ilə tətbiq olunur.
Spring Boot nədir?
Cavab: Spring Boot, Spring proqramlarını daha asanlıqla yazmaq və yerləşdirmək üçün inkişaf etdirilən çərçivədir.
Bean Lifecycle nədir və Spring-də necə idarə olunur?
Cavab: Bean Lifecycle, bean-in yaradılmasından məhv edilməsinə qədər olan mərhələləri əhatə edir və Spring bunu avtomatik idarə edir.
Spring AOP (Aspect-Oriented Programming) nədir?
Cavab: AOP məntiqin əsas funksiyadan ayrılmasını təmin edir. Məsələn, loglama, təhlükəsizlik aspektləri ilə təmin olunur.
Exception Handling
Checked və Unchecked Exception-ların fərqlərini izah edin.
Cavab: Checked exception-lar kompilyasiya zamanı yoxlanılır, unchecked exception-lar isə runtime zamanı baş verir.
try-catch-finally blokunun strukturu nədir?
Cavab: try blokda riskli kod yerləşir, catch blokda exception-lar tutularaq işlənir, finally blok isə mütləq icra olunur.
Microservices nədir?
Cavab: Microservices, sistemləri daha kiçik, müstəqil servis bölmələrinə ayıraraq işləməyə imkan verən arxitektura modelidir.
API Gateway nə üçün istifadə olunur?
Cavab: API Gateway, microservices üçün bir giriş nöqtəsi kimi xidmət edir və təhlükəsizlik, loglama və şəbəkə idarəetməsini asanlaşdırır.
Array ilə Linked List arasındakı fərqlər nələrdir?
Cavab: Array ardıcıl yaddaş bölmələrində yerləşir, Linked List isə hər elementdəki göstərici ilə növbəti elementə keçid edir.
Bubble Sort necə işləyir?
Cavab: Bubble Sort elementləri bir-birinə nisbətən dəyişərək düzənlər.
Verilənlər bazasında NORMALIZATION nə üçün istifadə olunur?
Cavab: Normalization, təkrar məlumatları azaltmaq üçün verilənlər bazasını optimallaşdırma prosesidir.
Microservices nədir?
Cavab: Microservices, sistemləri daha kiçik, müstəqil servis bölmələrinə ayıraraq işləməyə imkan verən arxitektura modelidir.
API Gateway nə üçün istifadə olunur?
Cavab: API Gateway, microservices üçün bir giriş nöqtəsi kimi xidmət edir və təhlükəsizlik, loglama və şəbəkə idarəetməsini asanlaşdırır.
SQL və NoSQL arasındakı əsas fərqləri izah edin.
Cavab: SQL strukturlaşdırılmış və əlaqəli məlumatlar üçün istifadə olunur, NoSQL isə qeyri-əlaqəli məlumatların sürətli saxlanması üçün daha uyğundur.
RESTful API ilə SOAP API arasındakı fərqləri izah edin.
Cavab: REST JSON formatında məlumatları göndərmək və HTTP metodlarından istifadə etmək imkanı verir. SOAP isə XML istifadə edir və məlumat ötürmək üçün müəyyən standartlara malikdir.
API Gateway nə üçün istifadə olunur?
Cavab: API Gateway, microservices üçün bir giriş nöqtəsi kimi xidmət edir və təhlükəsizlik, loglama və şəbəkə idarəetməsini asanlaşdırır.
Kubernetes-də Pod nədir?
Cavab: Kubernetes-də Pod, bir və ya bir neçə konteyneri bir yerdə işlətmək üçün istifadə olunan ən kiçik vahiddir.
HTTP ilə HTTPS arasındakı fərqi izah edin.
Cavab: HTTPS, məlumatların şifrələnməsi üçün SSL/TLS protokollarından istifadə edərək təhlükəsiz HTTP versiyasıdır.
Array ilə Linked List arasındakı fərqlər nələrdir?
Cavab: Array ardıcıl yaddaş bölmələrində yerləşir, Linked List isə hər elementdəki göstərici ilə növbəti elementə keçid edir.