JavaRush /Java blogi /Random-UZ /Intervyularda tez-tez so'raladigan qiyin Java savollari

Intervyularda tez-tez so'raladigan qiyin Java savollari

Guruhda nashr etilgan
Agar siz Java dasturchisi lavozimi uchun intervyuga tayyorgarlik ko'rgan bo'lsangiz yoki sertifikat olish uchun biron bir imtihonni topshirgan bo'lsangiz (dasturlash bo'yicha shart emas), demak, ular bergan savollar juda aniq ekanligini allaqachon payqagansiz. Ularning ko'pchiligi sizni tilning arxitekturasi haqida o'ylashga majbur qiladi, ba'zilari chuqur bilim uchun mo'ljallangan. Bundan tashqari, jumboqlarga o'xshab ketadigan yoki amaliyotsiz his qilish juda qiyin bo'lgan nuanslarga o'xshash narsalar ham bor. Ushbu maqolada dasturchi Saraans Singx bir nechta Java savollarini taqdim etadi. Javoblar bilan, albatta. Intervyularda tez-tez so'raladigan qiyin Java savollari - 11. Agar try/catch blokiga return yoki System.exit() ko'rsatmalarini qo'ysangiz nima bo'ladi? Bu Java-da juda mashhur "qo'lga olish" savolidir. Ayyorlik shundaki, ko'plab dasturchilar blokning finallyhar qanday holatda ham bajarilishiga ishonishadi. Bu savol bayonotni returnblokga joylashtirish try/catchyoki try/catchbayonot blokidan qo'ng'iroq qilish orqali ushbu kontseptsiyani shubha ostiga qo'yadi System.exit (). Ushbu qiyin savolga javob: blok bayonot blokga finallyjoylashtirilganda bajariladi va blokdan chaqirilganda bajarilmaydi . 2. Java bir nechta merosni qo'llab-quvvatlaydimi? Bu juda qiyin savol. Suhbatdoshlar ko'pincha shunday deyishadi: agar C++ to'g'ridan-to'g'ri bir nechta merosni qo'llab-quvvatlasa, nega Java buni qo'llab-quvvatlamaydi? Javob ko'rinadiganidan biroz murakkabroq, chunki Java ko'p turdagi merosni qo'llab-quvvatlaydi, chunki undagi interfeys boshqa interfeyslarni kengaytirishi mumkin. Ammo Java tili ilovalarning bir nechta merosini qo'llab-quvvatlamaydi. 3. Agar usul ota-klassda istisno qilsa, uni tashlaydigan usul bilan bekor qilish mumkinmi ? Haddan tashqari yuklash va bekor qilish tushunchalari bilan bog'liq yana bir qiyin savol. Javob: Siz bekor qilingan usulda ota-klass istisnosini xavfsiz tarzda tashlashingiz mumkin , lekin turidagi tekshirilgan istisno bilan xuddi shunday qila olmaysiz . 4. Tarmoqlar manbalarga blokirovkasiz kirishiga qanday kafolat berish mumkin? Agar siz ko'p tarmoqli kod yozishni yaxshi bilmasangiz, bu savol siz uchun juda qiyin bo'ladi. Bu hatto boshi berk ko'chaga chiqish va poyga sharoitlari bilan shug'ullanmagan tajribali dasturchi uchun ham qiyin bo'lishi mumkin. Bu erda hiyla-nayrang tartibda: resurslarni sotib olingan teskari tartibda bo'shatish orqali boshi berk ko'chaga tushishning oldini olish mumkin. 5. Java tilidan sinflarning farqi nimada ?returntry/catchtry/catchSystem.exit ()NullPointerExceptionRuntimeExceptionNullPointerException – RuntimeExceptionExceptionNNStringBufferStringBuilder Java tili haqidagi klassik savol, ba'zi ishlab chiquvchilar tomonidan qiyin va boshqalar tomonidan juda oddiy deb hisoblanadi. Sinf StringBuilderJDK 1.5 da kiritilgan va ular orasidagi yagona farq shundaki, sinfning usullari StringBuffer, masalan, length()yoki capacity(), append()sinxronlashtiriladi, sinfning mos keladigan usullari esa StringBuildersinxronlashtirilmaydi. Ushbu asosiy farq tufayli satr StringBuilderbilan birlashtirish tezroq bo'ladi StringBuffer. Aslida, StringBufferfoydalanish tavsiya etilmaydi, chunki 99% foydalanish holatlarida satrlarni birlashtirish bir xil ipda amalga oshiriladi. 6. 1,0/0,0 ifodasi nimani qaytaradi? U istisno qiladimi yoki kompilyatsiya xatosiga olib keladimi? Sinf haqida yana bir qiyin savol Double. Java dasturchilari oddiy ma'lumotlar turi double va sinfini bilishlariga qaramay , suzuvchi nuqta amallarini bajarishda , ga va ular bilan bog'liq arifmetik hisoblarni tartibga soluvchi qoidalarga Doubleyetarlicha e'tibor bermaydilar . Bu savolga javob oddiy: hech qanday istisno tashlanmaydi, qiymat qaytariladi . 7. Agar asosiy ob'ektni unda mavjud bo'lgan asosiy ob'ektga kiritishga harakat qilsangiz nima bo'ladi ? Bu qiyin savol yana bir tez-tez beriladigan savolning bir qismidir: ular Java-da qanday ishlaydi? Java tili haqidagi chalkash va qiyin savollar uchun mashhur mavzu. Javob shuki, agar siz kalitni ga qayta kiritishga harakat qilsangiz , u eskisini almashtiradi, chunki sinf takroriy kalitlarga ruxsat bermaydi. Xuddi shu kalit bir xil xesh kodini anglatadi, shuning uchun u hash segmentida xuddi shu joyda tugaydi. Quora materiallari asosidaDouble.INFINITYNaN-0.0ArithmeticExceptionDouble.INFINITYHashMapHashMapHashMapHashMapHashMap
Izohlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION