JavaRush /Java Blogu /Random-AZ /Müsahibələrdə tez-tez verilən çətin Java sualları

Müsahibələrdə tez-tez verilən çətin Java sualları

Qrupda dərc edilmişdir
Əgər siz nə vaxtsa Java proqramçısı vəzifəsi üçün müsahibəyə hazırlaşmısınızsa və ya sertifikat əldə etmək üçün hər hansı imtahandan (mütləq proqramlaşdırma üzrə deyil) keçmisinizsə, çox güman ki, onların verdiyi sualların çox konkret olduğunu artıq görmüsünüz. Onların bir çoxu dilin arxitekturası haqqında düşünməyə vadar edir, bəziləri dərin biliklər üçün nəzərdə tutulub. Daha çox tapmacalara bənzəyən və ya təcrübə olmadan hiss etmək çox çətin olan nüanslara aid olanlar da var. Bu məqalədə tərtibatçı Saraans Singh bir neçə belə Java sualını təqdim edir. Cavablarla, əlbəttə. Müsahibələrdə tez-tez verilən çətin Java sualları - 11. Try/catch blokuna return və ya System.exit() ifadəsini qoysanız nə baş verir? Bu Java-da çox məşhur "tutmaq" sualıdır. Onun hiyləsi ondadır ki, bir çox proqramçı blokun finallyistənilən halda icra olunacağına inanır. returnBu sual blokda bəyanat yerləşdirməklə try/catchvə ya try/catchbəyanat blokundan zəng etməklə bu konsepsiyaya meydan oxuyur System.exit (). Bu çətin sualın cavabı: blok bəyanat bloka finallyyerləşdirildikdə yerinə yetiriləcək və bəyanat blokundan çağırıldıqda yerinə yetirilməyəcək . 2. Java çoxlu varisliyi dəstəkləyirmi? Bu çox çətin sualdır. Müsahiblər tez-tez deyirlər: əgər C++ birbaşa çoxsaylı irsiyyəti dəstəkləyə bilirsə, niyə Java bunu edə bilmir? Cavab göründüyündən bir az daha mürəkkəbdir, çünki Java çox tipli varisliyi dəstəkləyir, çünki içindəki interfeys digər interfeysləri genişləndirə bilər. Lakin Java dili tətbiqlərin çoxsaylı miras qalmasını dəstəkləmir. 3. Metodun ana sinifdə istisna atması halında , onu atan metodla ləğv etmək olarmı ? Həddindən artıq yükləmə və aşmaq anlayışları ilə əlaqəli başqa bir çətin sual. Cavab: Siz əsas sinif istisnasını ləğv edilmiş metodda təhlükəsiz şəkildə ata bilərsiniz , lakin növün yoxlanılmış istisnası ilə eyni şeyi edə bilməzsiniz . 4. Mövzuların bloklanmadan resurslara daxil olmasına necə təminat vermək olar? Çox yivli kod yazmaqda çox yaxşı deyilsinizsə, bu sual sizin üçün həqiqətən çətin olacaq. Çətinliklər və yarış şərtləri ilə məşğul olmayan təcrübəli proqramçı üçün belə çətin ola bilər. Buradakı hiylə nizamdadır: resursları əldə etdikləri tərs qaydada azad etməklə dalana dirənmənin qarşısını almaq olar. 5. Java dilində siniflərin fərqi nədir ?returntry/catchtry/catchSystem.exit ()NullPointerExceptionRuntimeExceptionNullPointerException – RuntimeExceptionExceptionNNStringBufferStringBuilder Java dili ilə bağlı klassik sual, bəzi tərtibatçılar tərəfindən çətin, digərləri tərəfindən isə çox sadə hesab olunur. Sinif JDK 1.5-də təqdim edilmişdir və onların arasındakı yeganə fərq odur ki , məsələn, və ya StringBuildersinifinin metodları sinxronlaşdırılır , sinfin müvafiq metodları isə sinxronlaşdırılmır. Bu əsas fərqə görə sətir birləşməsi ilə daha sürətli olur . Əslində, istifadə etmək tövsiyə edilmir, çünki istifadə hallarının 99% -ində simli birləşmə eyni ipdə aparılır. 6. 1.0/0.0 ifadəsi nəyi qaytarır? İstisna atacaq və ya tərtib səhvinə səbəb olacaq? Siniflə bağlı daha bir çətin sual . Java tərtibatçıları sadə verilənlər tipi double və sinfindən xəbərdar olsalar da , üzən nöqtə əməliyyatlarını yerinə yetirərkən , -a və onlarla əlaqəli arifmetik hesablamaları tənzimləyən qaydalara kifayət qədər diqqət yetirmirlər . Bu sualın cavabı sadədir: heç bir istisna atılmayacaq, dəyər qaytarılacaq . 7. Əgər siz artıq mövcud olan əsas obyektə əsas obyekti daxil etməyə çalışsanız nə baş verir? Bu çətin sual digər tez-tez verilən sualın bir hissəsidir: Java-da necə işləyirlər ? Java dili ilə bağlı çaşdırıcı və çətin suallar üçün məşhur mövzudur. Cavab budur ki, açarı yenidən daxil etməyə çalışsanız , o, köhnəni əvəz edəcək, çünki sinif dublikat düymələrə icazə vermir. Və eyni açar eyni hash kodu deməkdir, ona görə də hash seqmentində eyni yerdə bitəcək. Quora materialları əsasındaStringBufferlength()capacity()append()StringBuilderStringBuilderStringBufferStringBufferDoubleDoubleDouble.INFINITYNaN-0.0ArithmeticExceptionDouble.INFINITYHashMapHashMapHashMapHashMapHashMap
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION