Эгер сиз Java программисти кызматына интервьюга даярданган болсоңуз же сертификат алуу үчүн кандайдыр бир экзаменди тапшырган болсоңуз (сөзсүз эле программалоо боюнча эмес), анда алар берген суроолор абдан так экенин байкаган чыгарсыз. Алардын көбү тилдин архитектурасы жөнүндө ойлондурса, кээ бирлери терең бorмге арналган. Көбүрөөк баш катырмаларга окшош же нюанстарга тиешелүү болгондор да бар, аларды практикасыз сезүү өтө кыйын. Бул макалада иштеп чыгуучу Сараанс Сингх бир нече Java суроолорун берет. Жооптор менен, албетте. 1. try/catch блогуна return же System.exit() операторун койсоңуз эмне болот? Бул Java-да абдан популярдуу "кутуучу" суроо. Куулук көп программисттер блок
finally
кандай болгон күндө да аткарылат деп ишенишет. Бул суроо билдирүүнү return
блокко жайгаштыруу try/catch
же try/catch
билдирүү блогунан чакыруу аркылуу бул түшүнүккө каршы чыгат System.exit ()
. Бул татаал суроонун жообу: блок оператор блокко finally
жайгаштырылганда аткарылат жана оператор блогунан чакырылганда аткарылbyte . 2. Java бир нече мурасты колдойбу? Бул абдан татаал суроо. Интервьючулар көп айтышат: эгерде C++ түз бир нече мурасты колдосо, эмне үчүн Java мүмкүн эмес? Жооп көрүнгөндөн бир аз татаалыраак, анткени Java бир нече түрдөгү мурасты колдойт, анткени андагы интерфейс башка интерфейстерди кеңейте алат. Бирок Java тor ишке ашыруунун бир нече мурасын колдобойт. 3. Метод ата-эне класста өзгөчө учурду таштаган учурда , аны таштаган ыкма жокко чыгара алабы ? Дагы бир татаал суроо ашыкча жүктөө жана жокко чыгаруу түшүнүктөрүнө байланыштуу. Жооп: Сиз ата-эне классынын өзгөчөлүгүн жокко чыгарылган методдо аман-эсен ыргыта аласыз , бирок түрүн текшерилген өзгөчөлүгү менен ушундай кыла албайсыз . 4. Жиптер ресурстарга туюктан чыкпай кире аларына кантип кепилдик берүүгө болот? Эгер сиз көп жиптүү codeду жазууда жакшы болбосоңуз, бул суроо сиз үчүн чындап эле татаал болот. Бул туюк жана жарыш шарттары менен күрөшө элек тажрыйбалуу программист үчүн да кыйын болушу мүмкүн. Бул жердеги куулук иреттүүлүктө: ресурстарды алар алынган тескери тартипте бошотуу менен туюктан сактанса болот. 5. Класстардын Java тorндеги айырмасы эмнеде ?return
try/catch
try/catch
System.exit ()
NullPointerException
RuntimeException
NullPointerException – RuntimeException
Exception
N
N
StringBuffer
StringBuilder
Java тor тууралуу классикалык суроо, кээ бир иштеп чыгуучулар татаал жана башкалары өтө жөнөкөй деп эсептешет. Класс StringBuilder
JDK 1.5ке киргизилген жана алардын ортосундагы бир гана айырмачылык класстын методдору StringBuffer
, мисалы, length()
же capacity()
, append()
синхрондоштурууда, ал эми класстын тиешелүү методдору синхрондоштурууда StringBuilder
эмес. Бул негизги айырмачылыктан улам, сапты бириктирүү StringBuilder
менен ылдамыраак болот StringBuffer
. Чынында, StringBuffer
аны колдонуу сунушталbyte, анткени 99% колдонуу учурларында сапты бириктирүү бир эле жипте жүргүзүлөт. 6. 1.0/0.0 туюнтмасы эмнени кайтарат? Ал өзгөчө учурду жаратабы же компиляция катасын жаратабы? Класс тууралуу дагы бир татаал суроо Double
. Java иштеп чыгуучулары эки жөнөкөй маалымат түрүн жана классын бorшсе да , калкыма чекиттик операцияларды аткарууда , ге жана алар менен байланышкан арифметикалык эсептөөлөрдү жөнгө салуучу эрежелерге Double
жетиштүү көңүл бурушпайт . Бул суроонун жообу жөнөкөй: эч кандай өзгөчөлүктөр ыргытылbyte, маани кайтарылат . 7. Негизги an objectти андагы бар болгон негизги an objectке киргизүүгө аракет кылсаңыз эмне болот ? Бул татаал суроо дагы бир көп берилүүчү суроонун бир бөлүгү болуп саналат: алар Java менен кантип иштешет ? Java тor жөнүндө баш аламан жана татаал суроолор үчүн популярдуу тема. Жооп мындай: эгер сиз ачкычты кайра киргизүүгө аракет кылсаңыз , ал эскисин алмаштырат, анткени класс кайталанма баскычтарга жол бербейт. Жана ошол эле ачкыч ошол эле хэш-codeду билдирет, ошондуктан ал хэш сегментинде ошол эле жерде аяктайт. Quora материалдарынын негизиндеDouble.INFINITY
NaN
-0.0
ArithmeticException
Double.INFINITY
HashMap
HashMap
HashMap
HashMap
HashMap
GO TO FULL VERSION