- Ман саволҳоеро, ки бо ин силсила мақолаҳо мепайвандад, мегузарам , то бори дигар маълумот такрор нашавад. Ман тавсия медиҳам, ки ин маводҳоро хонед, зеро онҳо дорои саволҳои маъмултарин (маъруф) Java Core мусоҳиба мебошанд.
- Саволҳо дар бораи DOU бо забони украинӣ пешниҳод карда мешаванд, аммо ман ҳама чизро дар ин ҷо бо забони русӣ хоҳам дошт.
- Ҷавобҳоро метавон ба таври муфассал тавсиф кард, аммо ман намехоҳам, зеро ҷавоб ба ҳар як савол метавонад як мақолаи пурраро дар бар гирад. Ва онҳо дар ягон мусоҳиба аз шумо ин қадар муфассал намепурсанд.
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, коллектори ахлот ин усулро даъват мекунад (ниҳоят). Он барои тоза кардани захираҳои ишғолшуда истифода мешавад.
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();
}
Ин як навъ осонтар шуд, ҳамин тавр не? Илова ба соддагардонӣ, якчанд нукта вуҷуд дорад:
-
Дар try-with-resources , захираҳои дар қавс эълоншуда (ки баста мешаванд) бояд интерфейси AutoCloseable ва усули ягонаи он, 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
- 01100011 >> 4 = 00000110
- 01100011 << 3 = 00011000
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њои муќаррарї чист?
- Чунин an objectҳо ҳангоми истифода дар муҳити бисёрсоҳавӣ бехатаранд . Бо истифода аз онҳо, ба шумо лозим нест, ки дар бораи аз даст додани маълумот аз сабаби шароити нажод хавотир шавед. Баръакси кор бо ашёи оддӣ: дар ин ҳолат шумо бояд хеле бодиққат фикр кунед ва механизмҳои истифодаи an objectро дар муҳити параллелӣ кор кунед.
- Объектҳои тағирнаёбанда калидҳои хуб дар харита мебошанд, зеро агар шумо an objectи тағирёбандаро истифода баред ва он гоҳ an object ҳолати худро тағир диҳад, он метавонад ҳангоми истифодаи HashMap печида шавад: an object то ҳол мавҷуд хоҳад буд ва агар шумо containKey() -ро истифода баред, он метавонад набошад. пайдо шавад.
- Объектҳои тағирнашаванда барои нигоҳ доштани додаҳои тағирнашаванда (довимӣ), ки ҳангоми иҷрои барнома ҳеҷ гоҳ набояд тағир дода шаванд, хубанд.
- "Атомӣ ба нокомӣ" - агар an objectи тағирнашаванда истисно гузорад, он ҳанӯз дар ҳолати номатлуб (шикаста) намемонад.
- Ин синфҳоро санҷидан осон аст.
- Механизмҳои иловагӣ ба монанди созандаи нусхабардорӣ ва татбиқи клон лозим нестанд.
Саволҳо дар бораи OOP
16. Афзалиятҳои OOP дар маҷмӯъ ва дар муқоиса бо барномасозии мурофиавӣ чист?
Ҳамин тариқ, бартариҳои OOP:- Навиштани замимаҳои мураккаб нисбат ба барномасозии мурофиавӣ осонтар аст, зеро ҳама чиз ба модулҳои хурд тақсим мешавад - an objectҳое, ки бо ҳамдигар ҳамкорӣ мекунанд - ва дар натиҷа, барномасозӣ ба муносибатҳои байни an objectҳо рост меояд.
- Барномаҳое, ки бо истифода аз OOP навишта шудаанд, тағир додан хеле осонтаранд (то даме ки консепсияҳои тарроҳӣ риоя карда мешаванд).
- Азбаски маълумот ва амалиётҳо дар он як воҳиди ягонаро ташкил медиҳанд, онҳо дар тамоми барнома пошида намешаванд (ки ин аксар вақт бо барномасозии мурофиавӣ рӯй медиҳад).
- Инкапсуляцияи иттилоот маълумоти муҳимтаринро аз корбар муҳофизат мекунад.
- Як codeро бо додаҳои гуногун дубора истифода бурдан мумкин аст, зеро синфҳо ба шумо имкон медиҳанд an objectҳои зиёде эҷод кунед, ки ҳар яки онҳо дорои арзишҳои атрибутии худро доранд.
- Мерос ва полиморфизм инчунин ба шумо имкон медиҳанд, ки рамзи мавҷударо дубора истифода баред ва васеъ кунед (ба ҷои такрор кардани функсияҳои шабеҳ).
- Васеъияти барнома нисбат ба равиши мурофиавӣ осонтар аст.
- Равиши OOP имкон медиҳад, ки аз тафсилоти татбиқ абзор гирифта шавад.
17. Ба мо бигӯед, ки дар ООП чӣ камбудиҳо мавҷуданд
Мутаассифона, онҳо низ мавҷуданд:- OOP дониши зиёди назариявиро талаб мекунад, ки бояд пеш аз навиштани чизе аз худ карда шаванд.
- Идеяҳои OOP дарк кардан ва дар амал татбиқ кардан он қадар осон нестанд (шумо бояд каме fileсуф бошед).
- Ҳангоми истифодаи OOP, иҷрои нармафзор аз сабаби мураккабтар ташкил кардани система каме коҳиш меёбад.
- Равиши OOP хотираи бештарро талаб мекунад, зеро ҳама чиз аз синфҳо, интерфейсҳо ва усулҳо иборат аст, ки нисбат ба тағирёбандаҳои оддӣ хотираи бештарро ишғол мекунанд.
- Вақт барои таҳлor ибтидоӣ нисбат ба таҳлor мурофиавӣ зиёдтар аст.
18. Полиморфизми статикӣ ва динамикӣ чист
Полиморфизм имкон медиҳад, ки an objectҳо барои як синф ё интерфейс ба таври гуногун рафтор кунанд. Ду намуди полиморфизм вуҷуд доранд, ки онҳоро ҳамчун ҳатмии барвақт ва дер маълуманд . Полиморфизми статикӣ ё ҳатмии қаблӣ:- дар вақти тартибдиҳӣ (дар аввали давраи ҳаёти барнома) рух медиҳад;
- муайян мекунад, ки кадом усул дар вақти тартибдиҳӣ иҷро карда шавад;
- Усули изофабори як мисоли полиморфизми статикӣ мебошад;
- ҳатмии барвақт усулҳои хусусӣ, статикӣ ва терминалиро дар бар мегирад;
- мерос дар бастани барвақт иштирок намекунад;
- Полиморфизми статикӣ an objectҳои мушаххасро дар бар намегирад, балки маълумот дар бораи синф, ки навъи он дар тарафи чапи номи тағирёбанда нишон дода мешавад.
- дар вақти кор рух медиҳад (ҳангоми иҷро шудани барнома);
- полиморфизми динамикӣ муайян мекунад, ки чӣ гуна татбиқи мушаххаси метод дар вақти корӣ хоҳад буд;
- бартарии усули намунаи полиморфизми динамикӣ мебошад;
- дер ҳатмӣ гузоштани an objectи мушаххас, истинод ба навъи он ё суперкласси он;
- мерос бо полиморфизми динамикӣ алоқаманд аст.
GO TO FULL VERSION