
Java müsahibələrinə hazırlaşmaq üçün ən mükəmməl bələdçiyə xoş gəlmisiniz! İstər təcrübəli bir inkişaf etdirici olun, istərsə də yenicə başlayın, bu sual və cavab toplusu Java-nı, əsas anlayışlarını və iş müsahibələrində tez-tez verilən sualları daha yaxşı başa düşməyinizə kömək edəcək.
Gəlin Java dünyasına baş vuraq və biliyinizi hər dəfə bir sual ilə gücləndirək! 🖥️💡
📌 Java nədir?
Java, yüksək səviyyəli, obyekt yönümlü proqramlaşdırma dilidir və veb, masaüstü və mobil tətbiqlərin hazırlanmasında geniş istifadə olunur. Sadəliyi, dayanıqlılığı və platformalar arasında işləmə qabiliyyəti ilə tanınır.
📌 Java və JavaScript arasındakı fərq nədir?
Adlarının oxşarlığına baxmayaraq, Java və JavaScript fərqli məqsədlər üçün hazırlanmış iki fərqli proqramlaşdırma dilidir:
- Java: Masaüstü və ya mobil tətbiqlər kimi müstəqil proqramlar yaratmaq üçün istifadə olunur.
- JavaScript: Əsasən veb saytlarına və veb tətbiqlərinə interaktivlik əlavə etmək üçün istifadə olunur.
📌 Java proqramlaşdırmasının əsas prinsipi nədir?
Java, "bir dəfə yaz, hər yerdə işlə" (WORA) prinsipinə riayət edir. Bu, Java kodu bir dəfə bayt koda tərcümə edildikdən sonra, Java Virtual Maşını (JVM) quraşdırılmış istənilən platformada işləyə biləcəyi deməkdir.
📌 Java-nın əsas xüsusiyyətləri nələrdir?
Java bir neçə vacib xüsusiyyətə malikdir:
- Platformadan Asılılıq: JVM sayəsində Java kodu müxtəlif platformalarda dəyişiklik edilmədən işləyə bilər.
- Obyekt Yönümlü: Java proqramları strukturlandırmaq üçün obyektlərə və siniflərə diqqət yetirir.
- Avtomatik Yaddaş İdarəetməsi: Java, Garbage Collection ilə yaddaş ayırma və sərbəst buraxmanı avtomatik şəkildə idarə edir.
- Güclü Tip Yoxlanışı: Java, işləmə zamanı səhvlərin qarşısını almaq üçün sərt məlumat növü qaydalarını tətbiq edir.
📌 Java-da sinif nədir?
Java-da sinif, obyektlər yaratmaq üçün istifadə olunan bir şablondur. Sinif, o sinfə aid obyektlərin sahib ola biləcəyi xüsusiyyətləri (atributlar) və davranışları (metodlar) təyin edir.
📌 Java-da obyekt nədir?
Java-da obyekt, sinifin nümunəsidir. Bir sinif tərəfindən təyin edilən xüsusiyyətlərə və davranışlara malik olan müəyyən bir varlığı və ya elementi təmsil edir.
📌 Java-da metod nədir?
Java-da metod, müəyyən bir tapşırığı yerinə yetirmək üçün nəzərdə tutulmuş bir kod blokudur. Metodlar çağırıla və müəyyən edilmiş funksiyanı yerinə yetirmək üçün istifadə edilə bilər.
📌 Sinif və obyekt arasındakı fərq nədir?
Sinif və obyekt arasındakı fərq:
- Sinif, obyektlərin strukturunu və davranışını müəyyən edən bir şablondur.
- Obyekt, sinifin müəyyən bir nümunəsidir və öz məlumatlarına və davranışlarına malik olan real bir varlığı təmsil edir.
📌 Java-da irsiyyət nədir?
İrsiyyət, bir sinifin başqa bir sinifdən xüsusiyyətləri və davranışları miras ala bilməsi mexanizmidir. Kodun təkrar istifadəsinə və siniflər arasında iyerarxik bir əlaqə qurmağa imkan verir.
📌 Java-da irsiyyət növləri hansılardır?
Java təkli irsiyyəti dəstəkləyir, yəni bir sinif yalnız bir üst sinifdən miras ala bilər. Həmçinin, bir sinifin bir neçə interfeysi tətbiq edə bilməsinə imkan verən interfeyslər vasitəsilə çoxlu irsiyyət dəstəklənir.
📌 Java-da çoxformluluq (polymorphism) nədir?
Çoxformluluq, bir obyektin bir çox formaya sahib ola bilmə qabiliyyətidir. Java-da, fərqli siniflərə aid obyektlərin ümumi bir üst sinifin obyektləri kimi qəbul edilməsinə imkan verir, beləliklə, kodun çevikliyi və təkrar istifadəsi təmin edilir.
📌 Java-da giriş modifikatorları hansılardır?
Java, dörd giriş modifikatoru təqdim edir: public, private, protected və standart (modifikator təyin edilməmiş). Bunlar siniflərin, metodların və dəyişənlərin görünürlüğünü və giriş imkanlarını idarə edir.
📌 Java-da kapsulasiya (encapsulation) nədir?
Kapsulasiya, daxili detalları gizlətmək və bir obyektlə qarşılıqlı əlaqə qurmaq üçün ictimai bir interfeys təmin etmək prosesidir. Bu, məlumat soyutmasını əldə etməyə kömək edir və məlumatları icazəsiz girişdən qoruyur. Kapsulasiya, aşağıdakı üstünlükləri təmin edir:
-
Məlumatların qorunması: Kapsulasiya, obyektin daxili vəziyyətini qorumaqla, istifadəçilərin yalnız müəyyən metodlar vasitəsilə məlumatlara girişini təmin edir. Bu, məlumatların icazəsiz dəyişdirilməsinin qarşısını alır.
-
Modifikasiyaların asanlaşdırılması: Daxili tətbiqetmə detallarını gizlədərək, sinifin interfeysini dəyişdirmədən kodu asanlıqla dəyişdirmək mümkündür. Beləliklə, sistemin digər hissələrinə təsir etmədən yeniliklər tətbiq edə bilərsiniz.
-
Kodun oxunaqlılığının artırılması: Kapsulasiya, kodun daha oxunaqlı olmasına kömək edir. Obyektlərin necə işlədiyini və hansı məlumatlara malik olduğunu anlamaq daha asan olur.
-
Xətaların azaldılması: Kapsulasiya, istifadəçilərin yalnız müvafiq metodlar vasitəsilə verilənlərlə işləməsini təmin edərək, səhv girişləri azaldır və proqramın etibarlılığını artırır.
📌 Java-da yapıcı (constructor) nədir?
Java-da yapıcı, bir sinifin obyektlərini başlatmaq üçün istifadə olunan xüsusi bir metodur. Bir obyekt yaradıldığında avtomatik olaraq çağırılır və siniflə eyni adına malikdir.
📌 Yapıcı ilə metod arasındakı fərq nədir?
Yapıcı, obyekt başlatma üçün istifadə olunan xüsusi bir metoddur və obyekt yaradıldığında avtomatik olaraq çağırılır. Digər tərəfdən, bir metod, müəyyən bir vəzifəni yerinə yetirən bir kod blokudur və açıq şəkildə çağırılması tələb olunur.
📌 Java Virtual Maşını (JVM) nədir?
JVM, Java platformasının kritik bir hissəsidir. Java bytecode'unu icra etməkdən məsuldur və Java proqramlarının hər hansı bir avadanlıq və ya əməliyyat sistemində çalışa bilməsi üçün bir icra mühiti təmin edir.
📌 Java İnkişaf Kitini (JDK) nədir?
JDK, Oracle tərəfindən təmin olunan bir proqram təminatı inkişaf kitidir və Java proqramlarını inkişaf etdirmək, tərtib etmək və işlətmək üçün lazım olan alətləri və kitabxanaları ehtiva edir. JVM, tərtibçi və digər köməkçi proqramlardan ibarətdir.
📌 JDK ilə JRE arasındakı fərq nədir?
JDK (Java İnkişaf Kiti), Java tətbiqlərini inkişaf etdirmək üçün lazım olan alətləri ehtiva edən bir proqram təminatı inkişaf kitidir; JRE (Java İcra Mühiti) isə Java tətbiqlərini işlətmək üçün tələb olunan bir icra mühitidir.
📌 Java-da paket (package) nədir?
Java-da paket, əlaqəli sinifləri və interfeysləri təşkil etmənin bir yoludur. Bir ad sahəsi təqdim edir və ad toqquşmalarını qarşısını almağa kömək edir.
📌 Soyut sinif (abstract class) ilə interfeys (interface) arasındakı fərq nədir?
Soyut sinif, həm soyut, həm də soyut olmayan metodlara sahib ola bilər və digər siniflər tərəfindən genişləndirilə bilər; interfeys isə yalnız soyut metod bildirişlərini ehtiva edir və siniflər tərəfindən tətbiq oluna bilər.
📌 Java-da statik metod (static method) nədir?
Java-da statik metod, sinifə aid olan bir metoddur, yəni sinifin bir nüsxəsinə aid deyil. Sinifin bir obyekti yaradılmadan çağırıla bilər.
📌 Java-da "final" açar sözü nə üçün istifadə olunur?
Java-da "final" açar sözü, bir dəyişkən, bir metod və ya bir sinifi bildirmək üçün istifadə oluna bilər. Final bir dəyişkən dəyişdirilə bilməz, final bir metod yenidən yazıla bilməz və final bir sinif irs alınamaz.
📌 Java-da metod aşırı yüklənməsi (method overloading) nədir?
Metod aşırı yüklənməsi, eyni adla, lakin fərqli parametrlərlə bir neçə metodu eyni sinifdə tanımlama qabiliyyətidir. Uyğun metod, keçən arqumentlərə əsasən çağırılır.
📌 Java-da metodun üstündən yazılması (method overriding) nədir?
Metodun üstündən yazılması, bir alt sinifdə artıq üst sinifdə təyin edilmiş bir metodun fərqli bir tətbiqini təmin etmə qabili
📌 Java-da metodun üstünlüyü nədir? Metodun üstünlüyü alt sinifdə artıq ana sinifdə müəyyən edilmiş metodun fərqli həyata keçirilməsini təmin etmək bacarığıdır. Bu, superclass metodu əvəzinə ləğv edilmiş metodu işə salmağa imkan verir.
📌 Metodun həddən artıq yüklənməsi ilə metodun üstünlüyü arasında fərq nədir? Metodun həddən artıq yüklənməsi eyni sinifdə eyni ada malik, lakin fərqli parametrlərə malik birdən çox metodu müəyyən etməkdən ibarətdir, halbuki metodu ləğv etmək alt sinifdə artıq ana sinifdə müəyyən edilmiş metodun fərqli tətbiqini təmin etməyi nəzərdə tutur.
📌 Java-da "bu" açar sözü nədir? Java-dakı "bu" açar sözü sinfin cari nümunəsinə aiddir. O, nümunə dəyişənlərinə, zəng nümunəsi metodlarına və ya zəng konstruktorlarına daxil olmaq üçün istifadə edilə bilər.
📌 Java-da statik dəyişən nədir? Java-da statik dəyişən sinifə aid olan, yəni sinfin nümunəsinə aid olmayan dəyişəndir. O, sinfin bütün nümunələri arasında paylaşılır.
📌 Metod parametrlərindəki "son" açar sözünün məqsədi nədir? Metod daxilində parametr dəyərinin dəyişməz olmasını təmin etmək üçün metod parametrlərində "son" açar sözü istifadə olunur. Bu, parametrin yenidən təyin edilə və ya dəyişdirilə bilməyəcəyini təmin edir.
📌 Java-da "statik" açar sözünün məqsədi nədir? Java-da "statik" açar sözü sinifin özünə aid olan dəyişənləri, metodları və daxili sinifləri elan etmək üçün istifadə olunur. Sinfin obyektini yaratmadan bunlara girişi təmin edir.
📌 Java-da "==" və ".equals()" arasında fərq nədir? Java-da "==" operatoru obyekt istinadlarının bərabərliyini müqayisə etmək üçün, ".equals()" metodu isə obyekt qiymətlərinin bərabərliyini müqayisə etmək üçün istifadə olunur. Fərdi bərabərlik müqayisəsini təmin etmək üçün ".equals()" metodu ləğv edilə bilər.
📌 Java-da "super" açar sözünün məqsədi nədir? Java-da "super" açar sözü sinifin super sinfinə istinad etmək üçün istifadə olunur. O, supersinif üzvlərinə daxil olmaq, supersinif konstruktorlarını çağırmaq və ya eyni adlı supersinif və alt sinif üzvlərini ayırd etmək üçün istifadə edilə bilər.
📌 Java-da mövzu nədir? Java-da mövzu proqram daxilində yüngül icra vahididir. Bu, birdən çox tapşırıq və ya fəaliyyətin eyni vaxtda yerinə yetirilməsinə imkan verir və sistem resurslarından daha yaxşı istifadə edir.
📌 Java-da başlığı necə yaratmaq və başlamaq olar? Java-da mövzu yaratmaq və başlamaq üçün siz ya "Thread" sinfini genişləndirə və "run()" metodunu ləğv edə, ya da "Runnable" interfeysini tətbiq etməklə onu yeni "Thread" obyektinə ötürə bilərsiniz. Sonra mövzu obyektində icraya başlamaq üçün "start()" metodunu çağırmalısınız.
📌 Java-da sinxronizasiya nədir? Java-da sinxronizasiya çoxlu mövzuların girişinə və icrasına nəzarət etmək üçün istifadə edilən bir texnikadır. Bu yolla, paylaşılan resursa və ya kod blokuna eyni anda yalnız bir başlıq daxil ola bilər.
📌 Java-da "uçucu" açar sözünün məqsədi nədir? Java-da "uçucu" açar sözü dəyişənin dəyərinin birdən çox mövzu ilə dəyişdirilə biləcəyini göstərmək üçün istifadə olunur. Bu, dəyişənin hər oxunmasının və ya yazılmasının birbaşa əsas yaddaşda yerinə yetirilməsini və CPU keşlərinə etibar etməməsini təmin edir.
📌 Java-da istisna nədir? Java-da istisna proqramın icrası zamanı təlimatların normal axınını kəsən hadisədir. Bu, bir səhv vəziyyəti və ya qeyri-adi bir vəziyyəti təmsil edir.
📌 Yoxlanmış və yoxlanılmamış istisnalar arasında fərq nədir? Yoxlanılan istisnalar kompilyasiya mərhələsində yoxlanılır və proqramçı tərəfindən "atılır" açar sözü ilə işlənilməli və ya elan edilməlidir. Yoxlanılmamış istisnalar isə kompilyasiya mərhələsində yoxlanılmır və proqramçı tərəfindən idarə edilməli və ya hesabat verilməli deyil.
📌 Java-da istisnaları necə idarə etmək olar? Java-da istisnalar try-catch bloklarından istifadə etməklə idarə oluna bilər. İstisna qoya bilən kod try blokuna yerləşdirilir və istisna baş verərsə, tutma blokunda tutulur və idarə olunur.
📌 İstisnaların idarə edilməsi zamanı "nəhayət" blokunun məqsədi nədir? Java-da "nəhayət" bloku istisnanın baş verib-verməməsindən asılı olmayaraq icra ediləcək kod blokunu müəyyən etmək üçün istifadə olunur. O, tez-tez resursları buraxmaq və ya təmizləmə əməliyyatlarını yerinə yetirmək üçün istifadə olunur.
📌 Java-da "throw" və "throws" açar sözləri arasında fərq nədir? Java-da "atmaq" açar sözü istisna atmaq üçün istifadə olunur, "atır" açar sözü isə metod bəyanında istifadə olunur ki, bu metod müəyyən növ istisnalar ata bilər.
📌 Yoxlanmış istisnalar və icra müddəti istisnaları arasında fərq nədir? Yoxlanılan istisnalar tərtib mərhələsində yoxlanılır və onlara baxılmalı və ya bildirilməlidir; İcra zamanı istisnaları (yoxlanılmamış istisnalar) idarə edilməli və ya bildirilməlidir.
📌 Java API nədir? Java API (Application Programming Interface) Java Development Kit (JDK) tərəfindən təmin edilən siniflər, interfeyslər və digər resurslar toplusudur. O, Java proqramlarının qurulması üçün əvvəlcədən təyin edilmiş siniflər və metodlar toplusunu təmin edir.
📌 ArrayList və LinkedList arasındakı fərq nədir? ArrayList sürətli təsadüfi girişi təmin edən, lakin elementləri əlavə etmək və çıxarmaqda daha yavaş ola bilən, ölçüsü dəyişdirilə bilən massiv kimi həyata keçirilir. LinkedList sürətli daxiletmə və silməni təmin edən ikiqat əlaqəli siyahı kimi həyata keçirilir, lakin təsadüfi giriş daha yavaş ola bilər.
📌 HashSet və TreeSet arasındakı fərq nədir? Java-da HashSet elementləri heç bir xüsusi qaydada saxlamır, tez daxil olmaq üçün hash cədvəlindən istifadə edir; lakin müəyyən bir nizam-intizam saxlamır. TreeSet elementləri nizamlı şəkildə saxlayır, onların təbii sırasına və ya fərdi müqayisəçiyə əsaslanan elementlərin səmərəli axtarışına imkan verir.
📌 "equals()" metodu ilə "hashCode()" metodu arasında fərq nədir? "equals()" metodu obyektlərin dəyərlərinə əsaslanaraq bərabərliyini müqayisə etmək üçün, "hashCode()" metodu isə obyekt üçün unikal hash kodu dəyərini hesablamaq üçün istifadə olunur; Tez-tez HashMap kimi hash-əsaslı məlumat strukturlarına səmərəli daxil olmaq üçün istifadə olunur.
📌 Dayan surətlə dərin surət arasında fərq nədir? Səthi surət yeni obyekt yaradır və orijinal obyektlə eyni istinadları paylaşır; Dərin surət yeni obyekt yaradır və ayrıca nüsxələr yaratmaq üçün bütün istinad edilən obyektləri kopyalayır.
📌 Java-da lambda ifadəsi nədir? Java-da lambda ifadəsi funksional interfeyslərin sintaksisini sadələşdirmək üçün istifadə edilən anonim funksiyadır. Xüsusilə funksional proqramlaşdırma strukturları ilə işləyərkən daha qısa və daha oxunaqlı kod yazmağa imkan verir.
📌 Java-da funksional proqramlaşdırma nədir? Java-da funksional proqramlaşdırma, təmiz funksiyalardan və dəyişməz verilənlərdən istifadə edərək proqramların yazılmasına yönəlmiş proqramlaşdırma paradiqmasıdır. Bu, funksiyaları birinci dərəcəli vətəndaşlar kimi qəbul etməyi və daha yüksək səviyyəli funksiyalardan və lambda ifadələrindən istifadə etməyi əhatə edir.
📌 Java 8-də funksional proqramlaşdırma üçün hansı funksiyalar mövcuddur? Java 8 funksional proqramlaşdırmanı dəstəkləmək üçün lambda ifadələri, funksional interfeyslər, kolleksiyalarla işləmək üçün Stream API və interfeyslərdə standart metodlar kimi bir neçə funksiya təqdim etdi.
📌 İnterfeys ilə abstrakt sinif arasında fərq nədir? Java-da interfeys yalnız metod imzalarını və sabitləri elan edə bilər, lakin həyata keçirilməsini təmin edə bilməz; Mücərrəd sinif həm metod bəyannamələrinə, həm də konkret tətbiqlərə malik ola bilər. Bir sinif birdən çox interfeys həyata keçirə bilər, lakin yalnız bir abstrakt sinifdən miras ala bilər.
📌 İnterfeys metodlarında "defolt" açar sözünün məqsədiniyə? Java interfeyslərində “defolt” açar sözü metod üçün standart tətbiqi müəyyən etmək üçün istifadə olunur. Bu, mövcud interfeyslərə yeni metodlar əlavə etməyə imkan verir və həmin interfeysləri həyata keçirən siniflərin tətbiqlərini pozmur.
📌 BufferedReader və Scanner arasındakı fərq nədir? Java-da BufferedReader simvol axınından mətni oxumaq üçün səmərəli buferləmə ilə işləyir; Skaner fayllar, sətirlər və ya standart giriş kimi müxtəlif mənbələrdən müxtəlif növ məlumatları təhlil edə bilər.
📌 Java-da "StringBuilder" sinifinin məqsədi nədir? Java-da "StringBuilder" sinfi dəyişən simvol sətirlərini yaratmaq və manipulyasiya etmək üçün istifadə olunur. Bu, "+" operatorundan istifadə edərək sətir birləşməsindən daha səmərəlidir, çünki lazımsız obyekt yaratmağın qarşısını alır.
📌 "Müqayisəli" və "Müqayisəli" interfeysləri arasında nə fərq var? "Müqayisəli" interfeysi "compareTo()" metodunu tətbiq etməklə sinif üçün təbii sifarişi müəyyən etmək üçün istifadə olunur. "Müqayisəli" interfeysi "müqayisə ()" metodunu tətbiq etməklə fərdi çeşidi müəyyən etmək üçün bir yol təqdim edir və müqayisə olunan sinifdən müstəqildir.
📌 Java-da "assert" açar sözünün məqsədi nədir? Java-da "assert" açar sözü müəyyən şərtləri yoxlamaq üçün kodda yerləşdirilmiş yoxlamalar olan təsdiqləmələri yerinə yetirmək üçün istifadə olunur. Tez-tez inkişaf və sınaq mərhələlərində potensial səhvləri və ya etibarsız fərziyyələri tutmaq üçün istifadə olunur.
📌 Lokal dəyişən ilə nümunə dəyişəni arasında fərq nədir? Java-da lokal dəyişən metod və ya blok daxilində müəyyən edilir və həmin metod və ya blok daxilində məhdud əhatə dairəsinə malikdir. Nümunə dəyişəni sinif daxilində müəyyən edilmiş və bütün sinif metodları ilə əlçatan olan üzv dəyişəndir.
📌 Java-da "keçici" açar sözünün məqsədi nədir? Java-da "keçici" açar sözü obyektin seriallaşdırılması zamanı dəyişənin seriallaşdırılmaması lazım olduğunu göstərmək üçün istifadə olunur. Obyekt seriallaşdırıldıqda, müvəqqəti dəyişənlər öz standart dəyərlərinə təyin edilir.
📌 Java-da "statik" blokun məqsədi nədir? Java-da "statik" blok statik dəyişənləri işə salmaq və ya sinif üçün birdəfəlik işə salma tapşırıqlarını yerinə yetirmək üçün istifadə olunur. Bir sinif yaddaşa yükləndikdə, o sinfin hər hansı obyekti yaradılmazdan əvvəl yerinə yetirilir.
📌 Java-da "strictfp" açar sözünün məqsədi nədir? Java-da "strictfp" açar sözü üzən nöqtə hesablamaları üçün IEEE 754 standartına ciddi uyğunluğu təmin etmək üçün istifadə olunur. O, müxtəlif platformalarda ardıcıl nəticələr təmin edir və dəqiqliyə təsir edə biləcək bəzi optimallaşdırmaları söndürür.
📌 Java-da ictimai siniflə standart (paket-özəl) sinif arasında fərq nədir? Java-da ictimai sinfə paketdən asılı olmayaraq istənilən digər sinifdən daxil olmaq olar. Standart sinif paketə xas sinifdir və paketdən kənardan deyil, yalnız eyni paket daxilində əldə edilə bilər.
📌 Java-da "enum" açar sözünün məqsədi nədir? Java-da "enum" açar sözü sabit dəyərlər dəstini təmsil edən xüsusi bir növ olan nömrəni təyin etmək üçün istifadə olunur. O, əvvəlcədən təyin edilmiş dəyərlərin daha strukturlaşdırılmış və tip baxımından təhlükəsiz təqdimatını təmin edir.
📌 Java-da "break" və "davam" ifadələrinin məqsədi nədir? Java-da "break" ifadəsi dövrə və ya keçid ifadəsinin icrasını bitirmək və dövrə və ya keçid blokundan sonra icranı davam etdirmək üçün istifadə olunur. "Davam et" ifadəsi dövrənin cari iterasiyasını atlamaq və növbəti iterasiyaya keçmək üçün istifadə olunur.
📌 Java-da "resurslarla cəhd et" ifadəsinin məqsədi nədir? Java-da "resurslarla cəhd et" ifadəsi "AutoCloseable" interfeysini həyata keçirən resursları avtomatik bağlamaq üçün istifadə olunur. İstisna baş versə belə, fayl axınları və ya verilənlər bazası əlaqələri kimi resursların düzgün bağlanmasını təmin edir.
📌 Java-da "instanceof" operatorunun məqsədi nədir? Java-da "instanceof" operatoru obyektin müəyyən bir sinfin nümunəsi olub-olmadığını yoxlamaq üçün istifadə olunur və ya xüsusi interfeysi həyata keçirir. Yoxlamanın nəticəsini göstərən boolean dəyəri qaytarır.
📌 Ön artım və artımdan sonrakı operatorlar arasında fərq nədir? Java-da əvvəlcədən artım operatoru (++i) dəyişənin dəyərini artırır və artan dəyəri qaytarır; Son artım operatoru (i++) dəyişənin dəyərini artırır, lakin artırılmadan əvvəl orijinal dəyəri qaytarır.
📌 İnkişafdan əvvəl və sonra azalma operatorları arasında fərq nədir? Java-da azalma öncəsi operator (--i) dəyişənin qiymətini azaldır və azalmış dəyəri qaytarır; Son azalma operatoru (i--) dəyişənin dəyərini azaldır, lakin azalmadan əvvəl orijinal dəyəri qaytarır.
📌 Java dilində "Riyaziyyat" dərsinin məqsədi nədir? Java-dakı "Riyaziyyat" sinfi kvadrat köklər, triqonometrik funksiyalar, eksponensial hesablamalar, yuvarlaqlaşdırma və s. kimi ümumi riyazi əməliyyatları yerinə yetirmək üçün müxtəlif üsulları təmin edir.
📌 Java-da "StringBuffer" sinfinin məqsədi nədir? Java-da "StringBuffer" sinfi "StringBuilder" sinfinə bənzər dəyişən simvol sətirlərini yaratmaq və manipulyasiya etmək üçün istifadə olunur. Lakin "StringBuffer" sinxron və çox yivli mühitlərdə istifadə üçün təhlükəsizdir.
📌 Java-da "Math.random()" metodunun məqsədi nədir? Java-da "Math.random()" metodu 0.0 (daxil olmaqla) və 1.0 (xaric) arasında təsadüfi ikiqat dəyər qaytarır. Tez-tez təsadüfi ədədlər yaratmaq və ya təsadüfi davranışı simulyasiya etmək üçün istifadə olunur.
📌 Java dilində "Xarakter" sinifinin məqsədi nədir? Java-dakı "Xarakter" sinfi fərdi simvollarla işləmək üçün metodlar təqdim edir, o cümlədən simvol növlərinin (hərflər, rəqəmlər, boşluqlar) yoxlanılması, hərflərin konvertasiyası və simvol əsaslı əməliyyatların yerinə yetirilməsi.
📌 Java-da "Integer" sinfinin məqsədi nədir? Java-da "Integer" sinfi tam ədədlərlə işləmək üsullarını təmin edən sarğı sinifidir. O, sətri tam ədədə çevirmək, arifmetik əməliyyatları yerinə yetirmək və tam ədədləri müxtəlif təsvirlərə (ikilik, onaltılıq) çevirmək kimi funksiyaları təklif edir.
📌 Java dilində "Double" sinifinin məqsədi nədir? Java-da "Double" sinfi ikiqat dəqiqlikli üzən nöqtə dəyərləri ilə işləmə üsullarını təmin edən sarğı sinifidir. O, sətirləri təhlil etmək, arifmetik əməliyyatları yerinə yetirmək və cütləri müxtəlif təsvirlərə (ikilik, onaltılıq) çevirmək üçün funksionallıq təklif edir.
📌 Java dilində "Sistem" sinifinin məqsədi nədir? Java-da "Sistem" sinfi sistem resurslarına çıxışı təmin edir və sistem mühiti ilə qarşılıqlı əlaqə yaratmağa imkan verir. Buraya standart giriş/çıxış, səhv çıxışı, cari vaxt, massivlərin surətinin çıxarılması və s. kimi üsullar daxildir.
📌 Java-da "Fayl" sinifinin məqsədi nədir? Java-da "Fayl" sinfi fayl və kataloq yollarını təmsil etmək və manipulyasiya etmək üçün istifadə olunur. O, faylların yaradılması, silinməsi, adının dəyişdirilməsi və fayl xassələrinin sorğulanması (ölçü, son dəyişdirilmə tarixi, icazələr) kimi üsulları təmin edir.
📌 Java-da "FileNotFoundException"ın məqsədi nədir? Java-da "FileNotFoundException" mövcud olmayan və ya tapıla bilməyən fayla daxil olmaq istəyərkən atılan bir istisnadır. O, adətən faylla əlaqəli səhvləri idarə etmək üçün tutulur və işlənir.
📌 Java-da "NullPointerException"ın məqsədi nədir? Java-da "NullPointerException" null istinada daxil olduqda və obyekt istinadı gözlənilən zaman istifadə edildikdə atılan bir istisnadır. Bu, proqramlaşdırma xətasını göstərir və gözlənilməz qəzaların qarşısını almaq üçün həll edilməli və ya bloklanmalıdır.
📌 Java-da "ArrayIndexOutOfBoundsException"ın məqsədi nədir? Java-da "ArrayIndexOutOfBoundsException" seriala daxil olmaq üçün etibarsız indeksdən istifadə edildikdə atılan bir istisnadır. Bu, indeksin mənfi olduğunu və ya massivin sərhədlərini aşdığını göstərir.
📌 Java-da "Arifmetik İstisna"nın məqsədi nədir? Java-da "ArithmeticException" arifmetik əməliyyat qeyri-qanuni və ya qeyri-müəyyən nəticə çıxardıqda atılan bir istisnadır. Bu, adətən sıfıra bölmə və ya dəstəklənməyən riyazi əməliyyatlar zamanı baş verir.
📌 Java-da "NumberFormatException"ın məqsədi nədir? Java-da "NumberFormatException" sətri gözlənilən formatda rəqəmsal dəyərə təhlil etmək mümkün olmadıqda atılan bir istisnadır. Bu, sətri tam, float və ya cütə çevirməyə çalışarkən baş verir, lakin sətir etibarlı rəqəmi təmsil etmir.
📌 Java-da "StringBuilder" sinifinin məqsədi nədir? Java-da "StringBuilder" sinfi dəyişən simvol sətirlərini yaratmaq və manipulyasiya etmək üçün istifadə olunur. O, simvol sətirlərini səmərəli şəkildə əlavə etmək, əlavə etmək, silmək və dəyişdirmək üsullarını təmin edir.
📌 Java-da "HashSet" sinifinin məqsədi nədir? Java-da "HashSet" sinfi heç bir xüsusi ardıcıllıqla unikal elementləri saxlayan Set interfeysinin tətbiqidir. Elementlərin əlavə edilməsi, çıxarılması və mövcudluğunun yoxlanılması kimi əsas əməliyyatlar üçün daimi vaxt performansını təmin edir.
📌 Java-da "HashMap" sinifinin məqsədi nədir? Java-da "HashMap" sinfi açar-dəyər cütlərini saxlayan Xəritə interfeysinin tətbiqidir. O, açarları əsasında elementlərin tez axtarışına və daxil edilməsinə imkan verir və səmərəli xəritələşdirmə və axtarış əməliyyatlarına imkan verir.
📌 Java-da "LinkedList" sinifinin məqsədi nədir? Java-dakı "LinkedList" sinfi ikiqat əlaqəli siyahıdan istifadə edərək elementləri saxlayan List interfeysinin tətbiqidir. Siyahının sonundakı elementləri əlavə etmək və silmək üçün səmərəliliyi təmin etsə də, təsadüfi giriş daha yavaş ola bilər.
📌 Java-da "Müqayisəli" interfeysinin məqsədi nədir? Java-da "Müqayisəli" interfeysi obyektlərin xüsusi sıralanmasını müəyyən etmək üçün istifadə olunur. O, obyektləri "Müqayisəli" interfeysi ilə müəyyən edilmiş təbii sıralamadan başqa müəyyən meyarlara görə müqayisə etmək imkanı verir.
📌 Java-da "Müqayisəli" interfeysin məqsədi nədir? Java-da "Müqayisəli" interfeysi sinif obyektlərinin təbii sıralanmasını müəyyən etmək üçün istifadə olunur. O, obyektləri təbii qaydada müqayisə etməyə və çeşidləməyə imkan verən "compareTo()" metodunu təmin edir.
📌 Java-da "super" açar sözünün məqsədi nədir? Java-da "super" açar sözü bir sinfin super sinifinə istinad etmək və ya super sinfin konstruktorunu, metodlarını və ya dəyişənlərini çağırmaq üçün istifadə olunur. Eyni adlı super və alt sinif üzvlərini ayırd etmək üçün istifadə olunur.
📌 Java-da "bu" açar sözünün məqsədi nədir? Java-da "this" açar sözü sinifin cari nümunəsinə istinad etmək üçün istifadə olunur. O, tez-tez nümunə dəyişənlərini və parametrlərini ayırd etmək və ya sinif daxilində digər konstruktorları çağırmaq üçün istifadə olunur.
📌 Java-da "son" açar sözünün məqsədi nədir? Java-da "son" açar sözü sabitləri təyin etmək, dəyişənləri dəyişməz etmək və ya metodun üstünlüyü və ya sinif varisliyinin qarşısını almaq üçün istifadə olunur. Dəyişənin dəyəri və ya metod və ya sinfin həyata keçirilməsi dəyişdirilə bilməz.
📌 Java-da "statik" açar sözünün məqsədi nədir? Java-da "statik" açar sözü sinif səviyyəli dəyişənləri və sinifin bütün nümunələri arasında paylaşılan metodları müəyyən etmək üçün istifadə olunur. Sinif nümunəsini yaratmadan dəyişənlərə və ya metodlara girişi təmin edir.
📌 Java-da "abstrakt" açar sözünün məqsədi nədir? Java-da "abstrakt" açar sözü abstrakt sinifləri və ya metodları müəyyən etmək üçün istifadə olunur. Mücərrəd sinif yaradıla bilməz və alt siniflər üçün əsas sinif kimi xidmət edir. Mücərrəd metodun icrası yoxdur və alt sinifdə ləğv edilməlidir.
📌 Java-da "interfeys" açar sözünün məqsədi nədir? Java-da "interfeys" açar sözü siniflərin təmin etməli olduğu metodları təyin edən interfeysləri müəyyən etmək üçün istifadə olunur. O, çoxsaylı interfeysləri həyata keçirməklə çoxlu varisliyə imkan verir və polimorfizm anlayışını təmin edir.
📌 Java-da "paket" açar sözünün məqsədi nədir? java"paket" açar sözü paketi müəyyən etmək üçün istifadə olunur, bu, əlaqəli siniflərin və interfeyslərin təşkili üsuludur. O, iyerarxik struktur təmin edir və siniflər arasında ad konfliktlərinin qarşısını alır.
📌 Java-da "import" açar sözünün məqsədi nədir? Java-da "import" açar sözü sinifləri, interfeysləri və ya paketləri mənbə faylına idxal etmək üçün istifadə olunur. Bu, tam uyğun adlarını qeyd etmədən digər paketlərin siniflərindən istifadə etməyə imkan verir.
📌 Java-da "atmaq" açar sözünün məqsədi nədir? Java-da "atmaq" açar sözü istisnanı əl ilə atmaq üçün istifadə olunur. Tez-tez proqram bir səhv və ya fövqəladə vəziyyətlə qarşılaşdıqda istifadə olunur və idarəetmənin istisna işləyicisinə ötürülməsinə imkan verir.
📌 "atır" açar sözünün məqsədi nədir? “Trows” açar sözü Java-da metodun müəyyən növ istisnalar ata biləcəyini göstərmək üçün istifadə olunur. Bu, metodun çağırıcısına istisnanı idarə etməyə və ya onu daha da ötürməyə imkan verir.
📌 "Təhqiqat-tutmaq-nəhayət" blokunun məqsədi nədir? Java-da istisnaları idarə etmək üçün "try-catch-finally" blokundan istifadə olunur. "Tədqiqat" bloku istisna ata bilən kodu, "tutmaq" bloku istisnanı tutur və idarə edir və "nəhayət" bloku istisnanın atılıb-düşməməsindən asılı olmayaraq yerinə yetirilən təmizləmə kodunu ehtiva edir.
📌 "instanceof" operatorunun məqsədi nədir? Java-da "instanceof" operatoru iş zamanı obyektin növünü yoxlamaq üçün istifadə olunur. Obyektin xüsusi sinfin nümunəsi olub-olmadığını və ya xüsusi interfeysi həyata keçirdiyini göstərən boolean dəyəri qaytarır.
📌 “Qırmaq” ifadəsinin məqsədi nədir? "break" ifadəsi Java-da loop və ya keçid ifadəsinin icrasını bitirmək üçün istifadə olunur. Döngədən erkən çıxmağa və ya keçid bəyanatında qalan vəziyyətləri atlamağa imkan verir.
📌 "Davam et" ifadəsinin məqsədi nədir? "Davam et" ifadəsi Java-da dövrənin cari iterasiyasını atlamaq və növbəti iterasiyaya davam etmək üçün istifadə olunur. Bu, müəyyən şərtlərdən asılı olaraq müəyyən iterasiyaları atlamağa imkan verir, lakin döngədən tamamilə çıxmır.
📌 Mavenin məqsədi: Quraşdırma, Qablaşdırma, Kompilyasiya, Sınaq.
📌 xarakter diapazonu nədir? 0-dan 65,535-ə qədər.
📌 Hansı paket Java-da JDBC dərslərini ehtiva edir? java.sql, javax.sql.
📌 Funksional interfeys nədir? Bu, yalnız bir mücərrəd metodu olan bir interfeysdir. Onun istənilən sayda standart metodu ola bilər. Nümunələr:
- Runnable → Bu interfeys yalnız run() metodunu ehtiva edir.
- Müqayisə edilə bilən → Bu interfeys yalnız compareTo() metodunu ehtiva edir.
- ActionListener → Bu interfeys yalnız actionPerformed() metodunu ehtiva edir.
- Zəng edilə bilən → Bu interfeys yalnız call() metodunu ehtiva edir.
📌 @FunctionalInterface annotasiyası nədir? java.util.function paketində Java 8-də çoxlu daxili funksional interfeyslər var. Java SE 8 müxtəlif vəziyyətlərdə aşağıdakı kimi tətbiq oluna bilən dörd əsas funksional interfeysdən ibarətdir:
- İstehlakçı - İstehlakçı istehlakçı = (dəyər) -> System.out.println(dəyər).
- Predikat – boolean testi (T t).
- Funksiya – ictimai interfeys BiFunction<T, U, R> { R tətbiq (T t, U u); ....}.
- Təchizatçı.
📌 Marker interfeysi nədir? Marker interfeysləri sahələri, metodları və ya sabitləri olmayan interfeyslərdir. Başqa sözlə, marker interfeysi və ya etiket interfeysi boş interfeysdir. Nümunələr: Seriallaşdırıla bilən, Klonlana bilən və Uzaqdan interfeys.
📌 Java veb proqramlarını inkişaf etdirmək üçün istifadə olunan əsas texnologiyalar hansılardır (məsələn, servletlər, JSP-lər, çərçivələr)? Java veb proqramlarını inkişaf etdirmək üçün istifadə olunan əsas texnologiyalara Servlets, JavaServer Pages (JSP) və Spring, Struts və JavaServer Faces (JSF) kimi müxtəlif çərçivələr daxildir.
📌 Sorğu-cavab döngəsi Java veb proqramında necə işləyir? Java veb proqramında sorğu-cavab dövrü müştəri serverə HTTP sorğusu göndərəndə başlayır. Server Servletlər və ya nəzarətçilər vasitəsilə sorğuları emal edir, cavab yaradır (adətən HTML və ya JSON formatında) və onu geri müştəriyə göndərir.
📌 Java veb proqramlarında istifadəçi girişi və sessiyanın idarə edilməsi üçün ən yaxşı təcrübələr hansılardır? Ən yaxşı təcrübələrə hücumların qarşısını almaq üçün istifadəçi daxiletmələrinin təsdiqlənməsi, verilənlər bazası ilə qarşılıqlı əlaqə üçün hazırlanmış bəyanatlardan istifadə, fasilələrin tətbiqi və sessiyaları təhlükəsiz idarə etmək üçün HTTPS-dən istifadə və həssas məlumatların sessiya obyektlərində saxlanmasından qaçınmaq daxildir.
📌 Java veb proqramınızı ümumi zəifliklərdən necə qoruya bilərsiniz? Tətbiqinizi qorumaq üçün girişin doğruluğunu həyata keçirmək, güclü autentifikasiya və avtorizasiya mexanizmlərindən istifadə etmək, istifadəçi girişlərini təmizləmək, təhlükəsizlik başlıqlarından istifadə etmək və kitabxanalarınızı və çərçivələrinizi yeni saxlamaq vacibdir.
📌 Spring MVC, Struts və JSF kimi məşhur Java veb çərçivələrini müqayisə edinn.
- Spring MVC: Çevik arxitektura təklif edir, asılılıq inyeksiyasını və müxtəlif görünüş texnologiyaları ilə inteqrasiyanı təmin edir. Bu, narahatlıqların aydın şəkildə ayrılmasını təşviq edir.
- Struts: MVC nümunəsinə əsaslanaraq, daha sərt struktura malikdir və onu fərdiləşdirmək daha çətin ola bilər. Son illərdə Baharın yüksəlməsi ilə əlaqədar onun populyarlığı azalıb.
- JSF: UI zəngin istifadəçi interfeysləri yaratmağı asanlaşdıraraq komponent əsaslı inkişafa diqqət yetirir, lakin öyrənmə əyrisi daha dik ola bilər.
📌 Layihəniz üçün Java veb çərçivəsindən istifadə etməyin üstünlükləri və çatışmazlıqları hansılardır? Üstünlüklərə daha sürətli inkişaf, daxili funksiyalar (təhlükəsizlik və verilənlər bazasına giriş kimi) və icma dəstəyi daxildir. Dezavantajlara əlavə mürəkkəblik, öyrənmə əyrisi və potensial performans yükü daxil ola bilər.
📌 Bir çərçivədən istifadə edərək Java veb tətbiqinizdə asılılıq inyeksiyasını necə həyata keçirə bilərsiniz?
Siz @Autowired
kimi annotasiyalardan istifadə etməklə və ya lobya və onların asılılıqlarını müəyyən etmək üçün XML konfiqurasiya fayllarından istifadə etməklə, Baharda asılılıq inyeksiyasını həyata keçirə bilərsiniz.
📌 Hibernate kimi bir çərçivədən istifadə edərək Java veb tətbiqinizdə verilənlər bazası qarşılıqlı əlaqəsini necə idarə edirsiniz? Hibernate rejimindən istifadə edərək, siz Java obyektlərini verilənlər bazası cədvəlləri ilə əlaqələndirə, sessiya obyekti vasitəsilə CRUD əməliyyatlarını yerinə yetirə və sorğular üçün HQL və ya Criteria API istifadə edə bilərsiniz.
📌 Java veb proqramınızın performansını optimallaşdırmaq üçün bəzi üsullar hansılardır? Texnikalara verilənlər bazası sorğularını optimallaşdırmaq, tənbəl yükləmədən istifadə etmək, sessiya istifadəsini minimuma endirmək, keşləşdirməni həyata keçirmək və uzunmüddətli tapşırıqlar üçün asinxron emaldan istifadə etmək daxildir.
📌 İstehsalda Java veb proqramında problemləri necə nəzarət edir və problemləri həll edirsiniz? Monitorinq APM (Tətbiq Performans İdarəetmə) həlləri, giriş çərçivələri (məsələn, Log4j, SLF4J) və istisnaları və performans göstəricilərini tutmaq üçün səhv izləmə sistemlərindən istifadə etməklə həyata keçirilə bilər.
📌 Java veb proqramlarını sınaqdan keçirmək və yerləşdirmək üçün ən yaxşı təcrübələr hansılardır? Ən yaxşı təcrübələrə bölmə və inteqrasiya testlərinin yazılması, avtomatlaşdırılmış sınaq və yerləşdirmə üçün CI/CD boru kəmərlərindən istifadə və istehsal yerləşdirmədən əvvəl yük testinin aparılması daxildir.
📌 Java veb tətbiqinizdə keşləmə və yük balansını necə həyata keçirə bilərsiniz? Keşləmə Ehcache və ya Redis kimi çərçivələrdən istifadə etməklə həyata keçirilə bilər, yük balansına isə çoxlu server instansiyalarında daxil olan trafiki yaymaq üçün hardware yük balanslaşdırıcıları və ya Nginx və ya HAProxy kimi proqram həllərindən istifadə etməklə nail olmaq olar.
📌 Mikroservislər nədir və onlardan Java veb inkişafında necə istifadə etmək olar? Mikroservislər proqramların kiçik, müstəqil paylana bilən xidmətlərdən ibarət olduğu bir memarlıq üslubudur. Java veb inkişafında, Spring Boot kimi çərçivələr HTTP/REST üzərindən əlaqə saxlayan mikroservislər yaratmaq üçün istifadə edilə bilər.
📌 Java və veb çərçivədən istifadə edərək RESTful API-ləri necə yarada bilərsiniz? Spring MVC və ya JAX-RS kimi çərçivələrdən istifadə edərək RESTful API yarada bilərsiniz; son nöqtələrin müəyyən edilməsi, HTTP metodlarının (GET, POST, PUT, DELETE) işlənməsi və cavabın JSON və ya XML formatında qaytarılması ilə.
📌 Java və Spring Security ilə veb proqramlar yaradarkən hansı təhlükəsizlik mülahizələri var? Təhlükəsizlik mülahizələrinə autentifikasiya və avtorizasiyanın həyata keçirilməsi, həssas son nöqtələrin təhlükəsizliyinin təmin edilməsi, CSRF və XSS hücumlarından qorunma və həssas məlumatlar üçün şifrələmədən istifadə daxildir.
📌 Java veb proqramlarınız üçün CI/CD boru kəmərlərini necə tətbiq edə bilərsiniz? CI/CD boru kəmərləri sürətli və etibarlı buraxılışları təmin edərək, qurma, sınaq və yerləşdirmə proseslərini avtomatlaşdırmaq üçün Jenkins, GitLab CI və ya GitHub Actions kimi alətlərdən istifadə etməklə həyata keçirilə bilər.