JavaRush /Блоги Java /Random-TG /Таҳлили саволҳо ва ҷавобҳо аз мусоҳибаҳо барои таҳиягари ...

Таҳлили саволҳо ва ҷавобҳо аз мусоҳибаҳо барои таҳиягари Java. Қисми 2

Дар гурӯҳ нашр шудааст
Боз салом ба ҳама! Мо ҷустуҷӯи ҷавобҳоро ба зиёда аз 250 саволҳо барои таҳиягарони хурд, миёна ва калон идома медиҳем. Саволҳо хеле ҷолибанд ва ман худам онҳоро таҳлил карданро дӯст медорам: дар чунин лаҳзаҳо шумо метавонед дар донишҳои назариявӣ ва дар ҷойҳои ғайричашмдошт камбудиҳоро ошкор кунед. Таҳлor саволу ҷавобҳои мусоҳиба.  Қисми 2 - 1Қисми қаблиро дар ин мақола пайдо кардан мумкин аст . Аммо пеш аз он ки мо оғоз кунем, ман мехоҳам ба шумо хотиррасон кунам, ки:
  1. Ман саволҳоеро, ки бо ин силсила мақолаҳо мепайвандад, мегузарам , то бори дигар маълумот такрор нашавад. Ман тавсия медиҳам, ки ин маводҳоро хонед, зеро онҳо дорои саволҳои маъмултарин (маъруф) Java Core мусоҳиба мебошанд.
  2. Саволҳо дар бораи DOU бо забони украинӣ пешниҳод карда мешаванд, аммо ман ҳама чизро дар ин ҷо бо забони русӣ хоҳам дошт.
  3. Ҷавобҳоро метавон ба таври муфассал тавсиф кард, аммо ман намехоҳам, зеро ҷавоб ба ҳар як савол метавонад як мақолаи пурраро дар бар гирад. Ва онҳо дар ягон мусоҳиба аз шумо ин қадар муфассал намепурсанд.
Агар лозим бошад, ман истинодҳоро барои омӯзиши амиқтар мегузорам. Биёед парвоз кунем!

11. Хамаи методхои класси Objectро номбар кунед

Синфи Object дорои 11 усул аст:
  • Class<?> getClass() — гирифтани синфи an objectи ҷорӣ;
  • int hashCode() — гирифтани codeи хэши an objectи ҷорӣ;
  • boolean equals​(Object obj) - муқоисаи an objectи ҷорӣ бо an objectи дигар;
  • Object clone() - эҷод ва баргардонидани нусхаи an objectи ҷорӣ;
  • String toString() — гирифтани тасвири сатри an object;
  • void notify() - бедор кардани як ришта, ки дар монитори ин an object интизор аст (интихоби ришта тасодуфӣ аст);
  • void notifyAll() - ҳамаи риштаҳоеро, ки дар монитори ин an object интизоранд, бедор мекунад;
  • void wait() - риштаи ҷориро дар монитори ҷорӣ ба ҳолати интизорӣ мегузарад (ях мекунад), танҳо дар блоки ҳамоҳангшуда кор мекунад, то он даме ки баъзеҳо огоҳ ё notifyAll риштаро бедор накунанд;
  • интизории беэътибор(таъмини тӯлонӣ) - инчунин риштаи ҷориро дар монитори ҷорӣ (дар синхронизатсияи ҷорӣ) ях мекунад, аммо бо таймер барои баромадан аз ин ҳолат (ё боз: то бедор шудани огоҳ ё notifyAll);
  • интизории беэътибор(таърихи тӯлонӣ, int nanos) - усули шабеҳ ба усули дар боло тавсифшуда, аммо бо таймерҳои дақиқтар барои баромадан аз яхкунӣ;
  • void finalize () - пеш аз нест кардани ин an object, коллектори ахлот ин усулро даъват мекунад (ниҳоят). Он барои тоза кардани захираҳои ишғолшуда истифода мешавад.
Барои дуруст истифода бурдани усулҳои hashCode , equals​ , clone , toString ва finalize, онҳо бояд бо дарназардошти вазифа ва шароити ҷорӣ аз нав муайян карда шаванд.

12. Фарқи байни кӯшиши бо захираҳо ва кӯшиши сайди ниҳоят ҳангоми кор бо захираҳо чӣ гуна аст?

Одатан, ҳангоми истифодаи try-catch-finally, блоки ниҳоӣ барои пӯшидани захираҳо истифода мешуд. Java 7 як навъи нави оператори try-with-resources , аналоги try-catch-nihoyat барои озод кардани захираҳо, вале бештар паймон ва хонданро муаррифӣ кард. Биёед дар хотир дорем, ки try-catch-nihoyat чӣ гуна аст :
String text = "some text......";
BufferedWriter bufferedWriter = null;
try {
   bufferedWriter = new BufferedWriter(new FileWriter("someFileName"));
   bufferedWriter.write(text);
} catch (IOException e) {
   e.printStackTrace();
} finally {
   try {
       bufferedWriter.close();
   } catch (IOException e) {
       e.printStackTrace();
   }
}
Акнун биёед ин codeро аз нав нависед, аммо бо истифода аз try-with-resources :
String text = "some text......";
try(BufferedWriter bufferedWriter =new BufferedWriter(new FileWriter("someFileName"))) {
   bufferedWriter.write(text);
} catch (IOException e) {
   e.printStackTrace();
}
Ин як навъ осонтар шуд, ҳамин тавр не? Илова ба соддагардонӣ, якчанд нукта вуҷуд дорад:
  1. Дар try-with-resources , захираҳои дар қавс эълоншуда (ки баста мешаванд) бояд интерфейси AutoCloseable ва усули ягонаи он, close() -ро амалӣ кунанд .

    Усули пӯшида дар блоки ниҳоии пинҳон иҷро карда мешавад , вагарна чӣ гуна барнома маҳз чӣ гуна бастани манбаи додашударо мефаҳмад?

    Аммо, эҳтимоли зиёд, шумо хеле кам татбиқи захираҳои худ ва усули пӯшидани онҳоро нависед.

  2. пайдарпайии иҷрои блок:

    1. блокро кӯшиш кунед .
    2. Дар охир .
    3. Блоки сайд , ки истисноҳоро дар қадамҳои қаблӣ нигоҳ медорад.
    4. Ниҳоят равшан .

    Чун қоида, истисноҳое, ки дар рӯйхат поёнтаранд, онҳоеро, ки болотаранд, қатъ мекунанд.

Вазъиятеро тасаввур кунед, ки ҳангоми истифодаи try-catch-nihayet дар кӯшиши шумо истисно ба амал меояд . Мутаносибан, блоки мушаххаси сайд фавран ба иҷроиш оғоз мекунад , ки дар он шумо истиснои дигарро менависед (масалан, бо паёме, ки хаторо муфассалтар тавсиф мекунад) ва шумо мехоҳед, ки усул минбаъд ин истисноро партофт. Баъдан иҷрои блоки finally меояд ва дар он истисно низ гузошта мешавад. Аммо ин дигар аст. Кадоме аз ин ду истисно ин усул дар ниҳояти кор хоҳад партофт? Истисное, ки аз ҷониби блоки ниҳоӣ партофта шудааст ! Аммо як нукта бо кӯшиши бо захираҳо низ вуҷуд дорад . Акнун биёед ба рафтори кӯшишҳои захираҳо дар ҳамон вазъият назар андозем. Мо дар блоки try , вақте ки мо кӯшиш мекунем, ки захираҳоро дар усули close() пӯшем , яъне дар ниҳоят ниҳоят , истисно ба даст меорем . Кадоме аз ин истисноҳо ба даст меоянд ? Оне, ки аз ҷониби блоки try партофта шудааст ! Истиснои ниҳоии номуайян (аз усули close() ) сарфи назар карда мешавад. Ин беэътиноӣ инчунин фишори истисно номида мешавад.

13. Амалиёти битӣ чист?

Амалиёти битӣ амалиётҳо дар сатрҳои бит мебошанд, ки амалиёти мантиқӣ ва гузаришҳои битаро дар бар мегиранд. Амалҳои мантиқӣ:
  • VA - қимматҳои битро муқоиса мекунад ва дар ҷараёни ҳар бит, ки ба 0 (дурӯғ) гузошта шудааст, бити мувофиқро дар натиҷа 0 муқаррар мекунад. Яъне, агар дар ҳарду қимат муқоисашаванда бит 1 (ҳақиқӣ) бошад, натиҷа низ 1 хоҳад буд.

    Нишон дода мешавад - ВА , &

    Мисол: 10111101 & 01100111 = 00100101

  • Bitwise OR амали баръакси пештара аст. Ҳар як бит, ки ба 1 гузошта шудааст, битҳои шабеҳро дар натиҷа ҳамчун 1 муқаррар мекунад. Ва мувофиқан, агар бит дар ҳарду қимати муқоисавӣ 0 бошад, бити натиҷавӣ низ 0 хоҳад буд.

    Нишон дода мешавад - Ё , |

    Мисол: 10100101 | 01100011 = 11100111

  • НЕСТ - ба як арзиш татбиқ карда мешавад, битҳоро тағир медиҳад (инверт мекунад). Яъне он битҳое, ки 1 буданд, 0 мешаванд; ва онҳое, ки 0 буданд, 1 мешаванд.

    Нишон дода мешавад - НЕ , ~

    Мисол: ~10100101 = 01011010

  • Истисноии битӣ Ё - қимматҳои битро муқоиса мекунад ва агар дар ҳарду қимат бит ба 1 баробар бошад, натиҷа 0 хоҳад буд ва агар дар ҳарду қимат бит 0 бошад, натиҷа 0 хоҳад буд. Яъне, барои он ки натиҷа ба 1 баробар бошад, танҳо яке аз битҳо бояд ба 1 ва дуюмаш ба 0 баробар бошад.

    Нишон дода мешавад - XOR , ^

    Мисол: 10100101 ^ 01100011 = 11000110

Гузаришҳо ба тариқи битӣ - >> ё << битҳои арзишро ба самти муайяншуда бо рақами муайян иваз мекунанд. Ҷойҳои холӣ бо сифрҳо пур карда мешаванд. Барои намуна:
  1. 01100011 >> 4 = 00000110
  2. 01100011 << 3 = 00011000
Ҳангоми ба рост иваз кардани рақами манфӣ истисно низ вуҷуд дорад. Тавре ки шумо дар хотир доред, бит барои аломат масъул аст ва агар ин бит ба 1 баробар бошад, рақам манфӣ аст. Агар шумо рақами манфиро кӯчонед, мавқеъҳои холӣ дигар на бо сифрҳо, балки бо якҳо пур карда мешаванд, зеро барои нигоҳ доштани бит аломат зарур аст. Масалан: 10100010 >> 2 = 11101000 Дар баробари ин, дар Java як оператори иловагии ивазкунии рости беимзо мавҷуд аст >>> Ин оператор аналоги >> аст, ҳангоми гузариш мавқеъҳои холӣ новобаста аз он ки оё 0 пур карда мешаванд. рақам манфӣ ё мусбат аст. Масалан: 10100010 >>> 2 = 00101000 Муфассалтар дар бораи амалиёти битвӣ дар ин ҷо бихонед . Таҳлor саволу ҷавобҳои мусоҳиба.  Қисми 2 - 2Ҳамчун мисолҳои истифодаи тағиротҳои битӣ дар Java, шумо метавонед усули hash()- и HashMap-ро мисол оред, ки он барои муайян кардани codeи махсуси дохorи калид истифода мешавад: Таҳлor саволу ҷавобҳои мусоҳиба.  Қисми 2 - 3Ин усул ба шумо имкон медиҳад, ки маълумотро дар HashMap ба таври баробар тақсим кунед, то ҳадди ақалл шумораи бархӯрдҳо.

14. Объектњо дар Java кадом синфњои стандартии ивазнашаванда мебошанд?

Тағирнопазир an objectест, ки имкон намедиҳад, ки параметрҳои аслии он тағир дода шаванд. Он метавонад усулҳое дошта бошад, ки an objectҳои нави навъи додашударо бо параметрҳое, ки шумо мехоҳед тағир диҳед, бармегардонанд. Баъзе an objectҳои тағирнопазири стандартӣ:
  • То ба ҳол машҳуртарин an objectи тағирнопазир дар Java String аст;
  • мисолҳои синфҳои бастабандӣ, ки намудҳои стандартиро мепӯшанд: Лоиқӣ, Характер, Байт, Кӯтоҳ, Бутун, Long, Double, Float;
  • an objectҳое, ки одатан барои рақамҳои махсусан КАЛОН истифода мешаванд - BigInteger ва BigDecimal;
  • an objectе, ки воҳид дар stacktraces аст (масалан, дар stacktrace истисноӣ) StackTraceElement;
  • an objectи синфи File - метавонад файлҳоро тағир диҳад, аммо дар айни замон худаш бетағйир мемонад;
  • UUID - ки аксар вақт ҳамчун ID ягона барои унсурҳо истифода мешавад;
  • ҳама an objectҳои синфии бастаи java.time;
  • Маҳаллӣ - барои муайян кардани минтақаи ҷуғрофӣ, сиёсӣ ё фарҳангӣ истифода мешавад.

15. Бартарии an objectи таѓйирнаёбанда аз an objectњои муќаррарї чист?

  1. Чунин an objectҳо ҳангоми истифода дар муҳити бисёрсоҳавӣ бехатаранд . Бо истифода аз онҳо, ба шумо лозим нест, ки дар бораи аз даст додани маълумот аз сабаби шароити нажод хавотир шавед. Баръакси кор бо ашёи оддӣ: дар ин ҳолат шумо бояд хеле бодиққат фикр кунед ва механизмҳои истифодаи an objectро дар муҳити параллелӣ кор кунед.
  2. Объектҳои тағирнаёбанда калидҳои хуб дар харита мебошанд, зеро агар шумо an objectи тағирёбандаро истифода баред ва он гоҳ an object ҳолати худро тағир диҳад, он метавонад ҳангоми истифодаи HashMap печида шавад: an object то ҳол мавҷуд хоҳад буд ва агар шумо containKey() -ро истифода баред, он метавонад набошад. пайдо шавад.
  3. Объектҳои тағирнашаванда барои нигоҳ доштани додаҳои тағирнашаванда (довимӣ), ки ҳангоми иҷрои барнома ҳеҷ гоҳ набояд тағир дода шаванд, хубанд.
  4. "Атомӣ ба нокомӣ" - агар an objectи тағирнашаванда истисно гузорад, он ҳанӯз дар ҳолати номатлуб (шикаста) намемонад.
  5. Ин синфҳоро санҷидан осон аст.
  6. Механизмҳои иловагӣ ба монанди созандаи нусхабардорӣ ва татбиқи клон лозим нестанд.

Саволҳо дар бораи OOP

Таҳлor саволу ҷавобҳои мусоҳиба.  Қисми 2 - 4

16. Афзалиятҳои OOP дар маҷмӯъ ва дар муқоиса бо барномасозии мурофиавӣ чист?

Ҳамин тариқ, бартариҳои OOP:
  1. Навиштани замимаҳои мураккаб нисбат ба барномасозии мурофиавӣ осонтар аст, зеро ҳама чиз ба модулҳои хурд тақсим мешавад - an objectҳое, ки бо ҳамдигар ҳамкорӣ мекунанд - ва дар натиҷа, барномасозӣ ба муносибатҳои байни an objectҳо рост меояд.
  2. Барномаҳое, ки бо истифода аз OOP навишта шудаанд, тағир додан хеле осонтаранд (то даме ки консепсияҳои тарроҳӣ риоя карда мешаванд).
  3. Азбаски маълумот ва амалиётҳо дар он як воҳиди ягонаро ташкил медиҳанд, онҳо дар тамоми барнома пошида намешаванд (ки ин аксар вақт бо барномасозии мурофиавӣ рӯй медиҳад).
  4. Инкапсуляцияи иттилоот маълумоти муҳимтаринро аз корбар муҳофизат мекунад.
  5. Як codeро бо додаҳои гуногун дубора истифода бурдан мумкин аст, зеро синфҳо ба шумо имкон медиҳанд an objectҳои зиёде эҷод кунед, ки ҳар яки онҳо дорои арзишҳои атрибутии худро доранд.
  6. Мерос ва полиморфизм инчунин ба шумо имкон медиҳанд, ки рамзи мавҷударо дубора истифода баред ва васеъ кунед (ба ҷои такрор кардани функсияҳои шабеҳ).
  7. Васеъияти барнома нисбат ба равиши мурофиавӣ осонтар аст.
  8. Равиши OOP имкон медиҳад, ки аз тафсилоти татбиқ абзор гирифта шавад.

17. Ба мо бигӯед, ки дар ООП чӣ камбудиҳо мавҷуданд

Мутаассифона, онҳо низ мавҷуданд:
  1. OOP дониши зиёди назариявиро талаб мекунад, ки бояд пеш аз навиштани чизе аз худ карда шаванд.Таҳлor саволу ҷавобҳои мусоҳиба.  Кисми 2 — 5
  2. Идеяҳои OOP дарк кардан ва дар амал татбиқ кардан он қадар осон нестанд (шумо бояд каме fileсуф бошед).
  3. Ҳангоми истифодаи OOP, иҷрои нармафзор аз сабаби мураккабтар ташкил кардани система каме коҳиш меёбад.
  4. Равиши OOP хотираи бештарро талаб мекунад, зеро ҳама чиз аз синфҳо, интерфейсҳо ва усулҳо иборат аст, ки нисбат ба тағирёбандаҳои оддӣ хотираи бештарро ишғол мекунанд.
  5. Вақт барои таҳлor ибтидоӣ нисбат ба таҳлor мурофиавӣ зиёдтар аст.

18. Полиморфизми статикӣ ва динамикӣ чист

Полиморфизм имкон медиҳад, ки an objectҳо барои як синф ё интерфейс ба таври гуногун рафтор кунанд. Ду намуди полиморфизм вуҷуд доранд, ки онҳоро ҳамчун ҳатмии барвақт ва дер маълуманд . Полиморфизми статикӣ ё ҳатмии қаблӣ:
  • дар вақти тартибдиҳӣ (дар аввали давраи ҳаёти барнома) рух медиҳад;
  • муайян мекунад, ки кадом усул дар вақти тартибдиҳӣ иҷро карда шавад;
  • Усули изофабори як мисоли полиморфизми статикӣ мебошад;
  • ҳатмии барвақт усулҳои хусусӣ, статикӣ ва терминалиро дар бар мегирад;
  • мерос дар бастани барвақт иштирок намекунад;
  • Полиморфизми статикӣ an objectҳои мушаххасро дар бар намегирад, балки маълумот дар бораи синф, ки навъи он дар тарафи чапи номи тағирёбанда нишон дода мешавад.
Полиморфизми динамикӣ ё ҳатмии дер:
  • дар вақти кор рух медиҳад (ҳангоми иҷро шудани барнома);
  • полиморфизми динамикӣ муайян мекунад, ки чӣ гуна татбиқи мушаххаси метод дар вақти корӣ хоҳад буд;
  • бартарии усули намунаи полиморфизми динамикӣ мебошад;
  • дер ҳатмӣ гузоштани an objectи мушаххас, истинод ба навъи он ё суперкласси он;
  • мерос бо полиморфизми динамикӣ алоқаманд аст.
Шумо метавонед дар бораи фарқиятҳои байни ҳатмии барвақт ва дер дар ин мақола бештар хонед .

19. Принсипи абстраксияро дар ООП муайян кунед

Абстраксия дар OOP роҳи равшан кардани маҷмӯи хусусиятҳои муҳими an object, ба истиснои тафсилоти муҳим нест. Яъне, ҳангоми тарҳрезии барнома бо равиши OOP, шумо ба таври умум ба моделҳо тамаркуз мекунед, бидуни омӯхтани ҷузъиёти татбиқи онҳо. Дар Java интерфейсҳо барои абстраксия масъуланд . Масалан, шумо мошин доред ва ин интерфейс хоҳад буд. Ва амалҳои гуногун бо он - масалан, ба кор андохтани муҳаррик, бо истифода аз қуттии редуктор - ин функсияҳое мебошанд, ки мо бидуни ворид кардани ҷузъиёти татбиқ истифода мебарем. Охир, дар лахзае, ки шумо мошин меронед, шумо фикр намекунед, ки редуктор чй тавр максади худро ичро мекунад ё калид двигательро чй тавр ба кор меандозад, руль чарххоро махз чй тавр мегардонад. Ва ҳатто агар татбиқи яке аз ин функсия иваз карда шавад (масалан, муҳаррик), шумо онро пайхас карда наметавонед. Ин барои шумо муҳим нест: шумо ба тафсилоти татбиқ намеравед. Барои шумо муҳим аст, ки амал иҷро карда шавад. Дар асл, ин абстрактӣ аз ҷузъиёти татбиқ аст. Дар ин ҷо мо имрӯз қатъ хоҳем кард: идома дорад!Таҳлor саволу ҷавобҳои мусоҳиба.  Қисми 2 - 6
Дигар маводҳо дар силсила:
Шарҳҳо
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION