JavaRush /Java блогу /Random-KY /36-деңгээл. Деңгээлдеги темадагы интервью суроолоруна жоо...
lichMax
Деңгээл
Санкт-Петербург

36-деңгээл. Деңгээлдеги темадагы интервью суроолоруна жооптор

Группада жарыяланган
Дагы, мен баарын издеп, эч кандай жооп таба алган жокмун. жакшы. Мен аларды өзүм үчүн гана жазсам да, мүмкүн болсо, кыскача жазам. Бирок эч нерседен жакшы. Ошентип, төмөнкү суроолор бар эле: 36-деңгээл.  Деңгээлдеги интервью үчүн суроолорго жооптор - 1 темаМаектешүү үчүн суроолор:
  1. MVC деген эмне ?
  2. DAO жана DTO деген эмне ?
  3. POJO деген эмне ?
  4. Entity деген эмне ?
  5. Сиз кандай тизме жыйнактарын билесиз?
  6. Сиз кандай коллекцияларды билесиз?
  7. Карта деген эмне , ал “ сөздүктөн ” эмнеси менен айырмаланат ?
  8. Кезек жана кезек деген эмне ?
  9. Queeue интерфейсин ишке ашыруучу кандай класстарды билесиз?
  10. дарак деген эмне ?
Эми менин жоопторум:
  1. MVC тиркеме дизайн үлгүсү, анда тиркеме үч өзүнчө бөлүккө бөлүнөт: модель, көрүнүш жана контроллер. Модель маалыматтарды берет жана анын абалын өзгөртүү менен контроллердин буйруктарына жооп берет. Көрүнүш колдонуучуга моделдин маалыматтарын көрсөтүү, моделдеги өзгөрүүлөргө жооп берүү үчүн жооптуу. Ал эми контролер колдонуучунун аракеттерин чечмелеп, моделге өзгөртүүлөрдү киргизүү зарылдыгы жөнүндө кабарлайт. Ошентип, бул схеманын ар бир компоненти башка компоненттер менен эркин бириктирorп, программанын ийкемдүүлүгүнө жетишет. Көбүнчө, бардык бизнес логикасы моделде камтылган, бирок кээде ал контроллерде да камтылган. Биринчи учурда, модель жука деп аталат, экинчисинде - жоон.

  2. DAO (Data Access Object) – бул an object, анын негизги милдети маалыматтарды маалымат базасына сактоо, ошондой эле андан кайра алуу. DTO (Data Transfer Object) – маалыматтарды ташууга арналган an object. Ошондуктан, анын негизги милдети бул маалыматтарды сактоо болуп саналат. Анда эч кандай логика жок. Мындан тышкары, ал сериялаштырылышы керек, анткени an objectтерди ташуу адатта сериялаштыруу-десериялаштыруу аркылуу ишке ашат.

  3. POJO "Old Style Java Object" дегенди билдирет. Алар EJB an objectтери менен карама-каршы келет. Акыркылары атайын конвенцияны карманышат жана адатта белгилүү бир ишкананын негизине катуу байланышкан (мисалы, аларда параметри жок коомдук конструктор болушу керек, аларда талаалар үчүн алгычтар жана орнотуучулар болушу керек, алар сериялаштырылуучу болушу керек ж.б.). POJO, демек, эч кандай атайын класстардан мурас албаган жана эч кандай атайын китепканаларды ишке ашырбаган кадимки класс. Адатта POJO өзгөчө эч нерсе жасаbyte жана абалды гана камтыйт.

  4. Entity Bean — это бин, цель которого хранить некоторые данные. В логику такого бина встроен механизм сохранения себя и своих полей в базу данных. Такой an object может быть уничтожен, а потом воссоздан из базы заново. Но кроме хранения данных у него нет ниHowой логики. А бин в свою очередь — это особый класс, которые должен выполнять следующие правила:

    • Класс должен иметь конструктор без параметров, с модификатором доступа public. Такой конструктор позволяет инструментам создать an object без дополнительных сложностей с параметрами.
    • Свойства класса должны быть доступны через get, set и другие методы (так называемые методы доступа), которые должны подчиняться стандартному соглашению об именах. Это легко позволяет инструментам автоматически определять и обновлять содержание bean’ов. Многие инструменты даже имеют специализированные редакторы для различных типов свойств.
    • Класс должен быть сериализуем. Это даёт возможность надёжно сохранять, хранить и восстанавливать состояние bean независимым от платформы и виртуальной машины способом.
    • Класс должен иметь переопределенные методы equals(), hashCode() и toString().
  5. Все коллекции-списки реализуют интерфейс List<E> и наследуются от абстрактного класса AbstractList<E>. Среди них можно выделить ArrayList<E> и LinkedList<E7gt;. ArrayList7lt;E> — это список, основаный на массиве, а LinkedList<E> — это классический двусвязный список.

  6. Коллекции-множества в Java реализуют интерфейс Set<E> и наследуются от AbstractSet<E>. Множества — это такие наборы данных, в которых все элементы уникальны. Среди них в Java есть HashSet, LinkedHashSet и TreeSet. Первая коллекция хранит свои an objectы на основе хеш-codeов. Вторая — это модифицированная первая, в ней элементы ещё к тому же располагаются в связном списке, поэтому они все расположены в порядке добавления. Третья коллекция обеспечивает сортировку своих элементов.

  7. Map — это вид коллекций, хранящих свои элементы в виде пар "ключ-значения". Причём все ключи должны быть уникальными. Среди реализаций есть HashMap и TreeMap. Первая реализация хранит элементы с использованием хэш-codeов. Вторая - хранит элементы в отсортированном по ключу порядке.

  8. Кезек биринчи кирген, биринчи чыккан негизинде иштеген маалымат структурасы. Башкача айтканда, элементтер кезекке бир четинен кошулуп, экинчи жагынан алынып салынат. Deque эки тараптуу кезек болуп саналат. Бул кезекте элементтерди башына да, аягына да кошууга болот, ошондой эле элементтерди кезектин башынан да, аягынан да ала аласыз. Демек, элементти кошууга мүмкүндүк берүүчү методдор бар (бул add(e) жана offer(e) методдору) жана элементти кезектен алып салууга мүмкүндүк берүүчү методдор бар (бул жок кылуу( сыяктуу ыкмалар) ) жана сурамжылоо ()). Кошумчалай кетсек, жөн гана кезекте турган элементти алып салбастан эле алууга мүмкүндүк берген ыкмалар бар (бул element() жана peek() ыкмалары). Deque интерфейсинде кошумча элементтерди кезектин башына жана аягына кошуу, элементтерди башынан же аягынан алуу жана кезектин башынан же аягында элементтерди алуу (аларды кезектен чыгарбастан) ыкмалары бар.

  9. Жөнөкөй ишке ашырууга ArrayDeque , LinkedList жана PriorityQueue кирет . Кошумча жыйнактарда бул эки интерфейсти ишке ашырган көптөгөн класстар бар (экөө тең же алардын бирөө эле).

  10. Дарак - илмексиз же бир нече чети жок туташкан график. Адатта, дарактын N чокусу болсо, анда четтеринин саны жок дегенде N-1 болот. Ошондой эле, дарактын бир чокусу тамыр катары тандалат. Калган чокулар бутактар ​​деп жарыяланды. Өзүнүн бутактары жок бутактар ​​дарактын жалбырактары деп аталат.
    Дарактар ​​программалоодо кеңири колдонулат жана бул дарактын көптөгөн түрлөрү буга чейин эле ойлоп табылган. Эң көп колдонулган дарактардын бири экorк дарак. Бул даракта ар бир элементтин эң көп дегенде эки баласы бар (башкача айтканда, 0дөн 2ге чейин болушу мүмкүн). Бинардык дарактын бир түрү BST - бинардык издөө дарагы. Бул даракта элементтерге эреже орнотулган: элементтин сол баласынын мааниси андан аз болушу керек, ал эми оң тараптын мааниси андан чоң же ага барабар болушу керек.
    Кызыл-кара дарактар ​​да бар. Бул экorк издөө дарагынын бир түрү. Кызыл-кара дарактарда элементтин дагы бир касиети киргизилет - түс. Түсү кара же кызыл болушу мүмкүн. Ошондой эле, ар бир кызыл-кара дарак төмөнкү талаптарга жооп бериши керек:

    1. дарактын тамыры кара;
    2. түйүн же кызыл же кара;
    3. дарактын бардык жалбырактары кара;
    4. кызыл түйүндүн эки тукуму тең кара;
    5. Берилген түйүндөн анын тукуму болгон жалбырак түйүнүнө чейинки ар бир жол бирдей сандагы кара түйүндөрдү камтыйт.
Бул эрежелер салмактуу дарак жетишүүгө мүмкүндүк берет. Тамырдан жалбырак түйүнүнө чейинки жолдун узундугу 1ден көп эмес айырмаланганда дарак тең салмактуу болот. (Б.а. жөнөкөй тил менен айтканда, даракта эч кандай бурмалоолор жана узун бутактар ​​жок.)
Комментарийлер
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION