JavaRush /Java блогу /Random-KY /Java тапшырмаларынын кандай түрлөрү бар?

Java тапшырмаларынын кандай түрлөрү бар?

Группада жарыяланган
Качан адам программалоону өз алдынча же онлайн курстарда үйрөнө баштаганда , "иш чөйрөсүн" аныктоо жана бардыгын системалаштыруу абдан маанилүү. Бул макалада биз ушундай системалаштырууну сунуштайбыз - JavaRush программалоону үйрөнүү үчүн онлайн курста белгилүү бир тип канчалык толук берилгенин жана пайдалуу шилтемелерди көрсөтүү менен, башталгычтар үчүн Java тапшырмалары. Java тапшырмаларынын кандай түрлөрү бар - 1

Тилдин синтаксисинин көйгөйлөрү

Негиздер, башталгычтар үчүн эң биринчи Java программалоо тапшырмалары - "Hello World"ден циклдерге жана массивдерге чейин. JavaRushте алардын көбү бар: алар биринчи алты деңгээлдеги Java синтаксисинин квестинде өзгөчө жыш топтолгон. Аларды өздөштүрүү үчүн кандайдыр бир кошумча булактарды издөө керек болушу күмөн - бул жерде алардын саны жетиштүү. Мындан тышкары, кандайдыр бир татаал маселелерди чечүүдө сиз автоматтык түрдө синтаксисти кайталайсыз. Бирок сизге күтүлбөгөн жерден керек болсо, башталгычтар үчүн Java көйгөйлүү китеби ушул сыяктуу көнүгүүлөрдү камтыйт. Бул көйгөй китептеринде JavaRush сыяктуу тез текшерүү болбойт.

Чогултуу тапшырмалары

Коллекциялар - жаңыдан келген программист окуу учурунда жолуккан биринчи "олуттуу" тема. Коллекцияларга арналган жаңы башталгычтар үчүн Java көйгөйлөрү JavaRush да кеңири чагылдырылган - Java Syntax квестинин жетинчи жана сегизинчи деңгээлдеринде. Бул жерде студент Java Collections Framework жөнүндө биринчи жолу угат, Set, List жана Map интерфейстери жана алардын айрым ишке ашырылышы менен иштей алат. Бирок, бул этапта сиз бул пайдалуу курал жана жөнөкөй Java тапшырмалары менен гана тааныша аласыз. Коллекцияларды кылдат изилдөө Java Collections квестинин жүрүшүндө ишке ашат . Сиз бул an objectтин канчалык маанилүү экенин көрүп жатасыз, анткени бүт квест анын атынан аталган!

Өзгөчө көйгөйлөр

Javaдагы анормалдуу кырдаалдар менен иштөө үчүн атайын механизм жооп берет, бул программалардагы каталарды "кармоону" бир топ жеңилдетет. Бирок аны толугу менен колдонуу үчүн, сиз Java'да өзгөчө кырдаалды иштетүү кантип иштээрин түшүнүшүңүз керек. JavaRushто мындай тапшырмалар көп жана алар Java синтаксисинин биринчи квестинде да кездешет.
Java тапшырмаларынын кандай түрлөрү бар - 2

Типти которуу көйгөйлөрү

Албетте, бул топту негизги синтаксис милдеттери катары классификациялоого болот. Бирок, биздин момун пикирибиз боюнча, мындай милдеттер көп учурда бааланбай, башталгычтар аларды аткарышат. Ошондуктан, келгиле, шаблондордон алыстайлы: биз башталгычтар үчүн Java тапшырмаларын «Примитивдүү типтерди конвертациялоо» темасында, көбүнчө жасалгандай эң башында эмес, бир аз кийинчерээк - Java синтаксисинин биринчи квестинин аягында изилдейбиз. Анан биз Java Core квестинде OOP үйрөнүү менен примитивдүү эмес типтерди (an objectтерди) кантип чыгарууну үйрөнөбүз . JavaRushто мындай тапшырмалар көп, кошумча эч нерсе издөөнүн кажети жок.

OOP түшүнүү үчүн тапшырмалар

OOP эң татаал тема эмес, бирок бул өтө маанилүү. Мындан тышкары, анда интервью алуучулар келечектеги "жаш балдарды" кармоо үчүн колдонгон көптөгөн сырларды камтыйт. JavaRush курсу жаңы баштагандар үчүн an objectиге багытталган мамилени түшүнүүгө жардам бере турган практикалык программалоо маселелерин камтыйт. Бирок, OOP чындап түшүнүү үчүн, биз тема боюнча адабияттарды окууну сунуштайбыз (мисалы, Кей Хорстманн, Гари Корнелдин Профессионалдык китепканасы, МакЛофлиндин Объектке багытталган анализ жана дизайн же башка китептер ).

Киргизүү/чыгаруу жиптери боюнча тапшырмалар

Биз I/O агымдарын аларды түшүнө электе эле колдоно баштайбыз - бул Java, балам, жана System.outти түшүндүрүү, анын үстүнө System.inди жашыл башталгычка түшүндүрүү кыйын жана биринчи этапта зарыл эмес. Бирок Java Core квестинин жүрүшүндө бул бир аз чаташкан теманы түшүнүү үчүн бorм жетиштүү жана биз консолдук киргизүү/чыгарма жөнүндө гана эмес, ошондой эле файл системасы менен иштөө жөнүндө да айтып жатабыз. Эң негизгиси, бул тапшырмаларды өткөрүп жибербөө (JavaRushта алар абдан көп) жана теорияны ырааттуу түшүнүү.

Пазлдар

"Батырмалар" деп биз көп бorмди эмес, аны стандарттуу эмес түрдө колдонуу жөндөмүн талап кылган татаалдыгы жогорулаган тапшырмаларды түшүнөбүз. Бул Java Junior үчүн типтүү тапшырмалар - алар интервьюларда абдан популярдуу, бирок чыныгы жумушта бул маанидеги пазлдар көп кездешпейт. Ошондуктан JavaRushта алар бар, бирок өтө көп эмес (көбүнчө капитан Бобровдун класстарында).
Java тапшырмаларынын кандай түрлөрү бар - 3
Пазлдарды кайдан тапса болот:

Алгоритмдер жана маалымат структуралары

Алгоритмдер жана маалымат структуралары жөнүндө келечектеги программист аларга канчалык керек экендиги жөнүндө тынымсыз талаш-тартыштар бар. Дагы бир жолу жооп беребиз: ой жүгүртүүнү өнүктүрүү үчүн - алар керек, түздөн-түз жумуш үчүн - сейрек. Анткени Java жана башка тилдер үчүн китепканалар бардык белгилүү сорттоо, издөө жана башка алгоритмдердин ишке ашырылышы менен жазылган. Бирок, алгоритмдердин өзүңүздүн ишке ашырууларын түзүү, алардын татаалдыгын түшүнүү сыяктуу абдан пайдалуу. Айрыкча мектепте математиканы гана окугандар үчүн. Негизи, бул тапшырмалар пазлдар менен кесorшкен, бир гана айырмасы, алардын бардыгы сүрөттөлүп, онлайн режиминде көп жолу чечилет. Текшерүү үчүн валидатордун да кереги жок. Каалаган курсту тандаңыз, мисалы, Принстон университетинен , алардын Калифорниядагы кесиптештеринен же Степиктен . Айтмакчы, курста CS50 , анын котормосу JavaRushке жайгаштырылды, бир нече маанилүү алгоритмдер жана маалымат структуралары талкууланат. Биз 2-5-деңгээлдеги видеолорду көрүп, Java'да тапшырмаларды аткарууну сунуштайбыз. Графикалык көйгөйлөр: Берorштер структурасы милдеттери:

Multithreading

Ар бир адам "Hello World" басып чыгаруучу программаны жаза алат... Атактуу фразаны кошумча жиптен басып чыгаруу үчүн Java Thread API колдонуу жөнүндө эмне айтууга болот? Жана беш түрдүү жиптен “Салам дүйнөнү” беш жолу басып чыгарышы үчүн жана сызыктар алмашып калбашы үчүн?.. Multithreading Java Core-ну үйрөнүүдө чыныгы “күч сынагы” болуп саналат. JavaRush боюнча бүтүндөй квест Java Multithreading деп аталган бул абдан татаал темага арналган жана анда студент параллелдүү процесстердин “оорусун жана сулуулугун” сезе алышы үчүн көптөгөн тапшырмаларды камтыйт. Көбүнчө студенттердин биринчи "чыныгы" долбоорлору аздыр-көптүр көп темаларды камтыйт. Мисалы, жөнөкөй оюндар.
Java тапшырмаларынын кандай түрлөрү бар - 4

Көп агым маселеси

Беш унчукпаган философ тегерек столдо отурушат. Алардын ар биринин алдында бир табак спагетти турат. Айрылар столдун үстүндө ар бир философтун оң жана сол жагында (алардын ортосунда) жатат. Философ же жесе, же ойлоно алат. Анын үстүнө, ал эки айрыны кармаса гана жей алат - бири оң жана сол жагына. «Айырды ал» жана «айрыны коюу» ырааттуу түрдө аткарылуучу өзүнчө аракеттер.

Generics боюнча тапшырмалар

Жалпылоо – бул автоматташтыруунун, башкача айтканда, кандайдыр бир мааниде программалоонун маңызы. Ошентип, Javaдагы жалпылоо же генерик темасын да этибарга албай коюуга болбойт. JavaRush жалпы программалоо тапшырмаларына ээ (негизинен Java Collections квестинде, 5-деңгээлден баштап). Генерик боюнча пайдалуу көнүгүүлөрдү жана материалдарды кайдан тапса болот:

Дизайн үлгүлөрүнүн тапшырмалары

Кээ бир этапта (JavaRush курсунун болжол менен 2/3 бөлүгү) башталгыч программист программалоодо жакшы жүрүм-турум эрежелерин кылдат карап башташы керек. Биз codeду туура форматтоо (бул оңой) жана дизайн үлгүлөрү (бул кыйыныраак) жөнүндө болуп жатат. JavaRush мындай тапшырмаларды камтыйт. Кошумчалары керек - аларды, мисалы, китептен тапса болот (4-бөлүк) “ Java. Программалоо методдору » Блинов жана Романчик. Же буга чейин чечилген көйгөйлөрдү шаблонго кантип батыра аларыңызды ойлонуп көрүңүз.

Бирдикти сыноо

Ар бир программисттин маанилүү жөндөмү, көбүнчө жаңылыш түрдө тестерлерге гана таандык, бул сиздин жеке codeуңуз үчүн бирдик (же бирдик) тесттерин жазуу. JavaRush бир нече Unit Test тапшырмалары бар, бирок сиз чындап эле жаңыларын издеп убара болбошуңуз керек. Тесттерди кантип жазууну билгенден кийин, codeуңузду (өзүңүздүн долбоорлоруңузда, бorм берүү тапшырмаларыңызда) Unit тесттери менен жабууну адат кылып алыңыз. Бул студент программисттер жапа чеккен консолдук натыйжаларды колдонуу менен текшерүү жүргүзүүгө караганда алда канча пайдалуу. Кошумчалай кетсек, көбүнчө компаниялар "жаш балдарга" ишенип тапшырган биринчи нерсе - бул башка бирөөнүн codeу үчүн Unit тесттерин жазуу.

Регулярдуу туюнтма көйгөйлөрү

Бул адаттан тыш жана жалкоолук болгондуктан, дээрлик эч кандай башталгыч түшүнө албаган жөнөкөй тема. Чындыгында, бул теманы изилдөөгө бир нече күн сарптап, "регулярларды" түшүнүп, анте электерге караганда артыкчылыкка ээ болуу керек. Бул дагы пайдалуу, анткени алар программалоо тorнен дээрлик көз карандысыз: аны бир жолу үйрөнүңүз, сиз аны бардык жерде колдоно аласыз. JavaRushта кадимки туюнтмаларга көңүл бурган көйгөйлөр жок, бирок айрымдарын аларды колдонуу менен чечсе болот. Ошентип, бул жерде теманы түшүнүү үчүн кээ бир кошумча ресурстар бар:
Java тапшырмаларынын кандай түрлөрү бар - 5

Java көйгөйлөрү трюк менен

Бул категорияга көбүнчө программисттин чыныгы ишине түздөн-түз тиешеси жок татаал тапшырмалар кирет. Алар негизинен интервью учурунда табылат; алар талапкердин белгилүү бир технологияны түшүнүү/бorм тереңдигин түшүнүү же анын кунт коюулугун текшерүү үчүн колдонулат. Эгер сизге ушул сыяктуу көйгөйлөр керек болсо, Google "Java Interview Problems" же ушул сыяктуу нерселер. Кыязы, сиз ар кандай форумдардан көптөгөн жыйнактарды, ошондой эле суроолорду жана жоопторду таба аласыз. Аларды түшүнүү пайдалуу, бирок аларга өтө көп убакыт коротуунун кереги барбы? Кай Хорстманн бир жолу ушундай көйгөйлөр тууралуу InformIT үчүн макаласында жакшы айткан, анын котормосу биз январь айында жарыяланган. Анын оюн кыскача жыйынтыктай турган болсок, реалдуу милдеттер бар жана параллелдүү аалам бар - "Интервью көйгөйлөрү".

Lambda экспрессия көйгөйлөрү

Lambda туюнтмаларын колдоо Java 8де пайда болгон, бирок дагы эле бардык программисттер аларды колдонууга даяр эмес. Бирок, бүгүнкү күндө "Java Junior үчүн тапшырмалар" түшүнүгү лямбда туюнтмалары менен манипуляцияларды камтыйт, ошондуктан биз алар менен таанышууну сунуштайбыз, мисалы, абдан жеткorктүү макаладан " Javaдагы ламбда туюнтмалары жөнүндө популярдуу. Мисалдар жана тапшырмалар менен ."

Тармактык милдеттер

JSON, RMI, HttpUrlConnection, розеткада сериялаштыруу... булар башталгыч программалоо тапшырмалары эмес. Алар бекем бorмди талап кылат жана өздөрүнүн долбоорлоруна, стажировкаларына жана иштерине кандайдыр бир көпүрө болуп саналат. JavaRush (Java Collections quest) жогорку деңгээлдеринде бул технологияларды жана ыкмаларды өздөштүрүү үчүн көптөгөн көнүгүүлөр бар, бирок онлайн стажировка учурунда баары айкыныраак болот.
Комментарийлер
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION