JavaRush /Java blogi /Random-UZ /36-darajali. Darajali mavzudagi intervyu savollariga javo...
lichMax
Daraja
Санкт-Петербург

36-darajali. Darajali mavzudagi intervyu savollariga javoblar

Guruhda nashr etilgan
Yana hamma narsani qidirdim va hech qanday javob topa olmadim. Xo'sh. Men o'zimni yozaman, garchi men ularni faqat o'zim uchun yozgan bo'lsam ham, iloji bo'lsa, qisqacha. Ammo hamma narsa hech narsadan yaxshiroqdir. Shunday qilib, quyidagi savollar bor edi: 36-darajali.  Darajali suhbat uchun savollarga javoblar - 1 mavzuSuhbat uchun savollar:
  1. MVC nima ?
  2. DAO va DTO nima ?
  3. POJO nima ?
  4. Entity nima ?
  5. Qanday ro'yxat to'plamlarini bilasiz?
  6. Siz qanday to'plamlarni bilasiz?
  7. Xarita nima , u “ lug'at ” dan nimasi bilan farq qiladi ?
  8. Navbat va navbat nima ?
  9. Queeue interfeysini amalga oshiradigan qanday sinflarni bilasiz?
  10. Daraxt nima ?
Va endi mening javoblarim:
  1. MVC - bu dasturni loyihalash namunasi bo'lib, unda dastur uchta alohida qismga bo'lingan: model, ko'rinish va boshqaruvchi. Model ma'lumotlarni taqdim etadi va uning holatini o'zgartirib, boshqaruvchi buyruqlariga javob beradi. Ko'rinish foydalanuvchiga model ma'lumotlarini ko'rsatish, modeldagi o'zgarishlarga javob berish uchun javobgardir. Va boshqaruvchi foydalanuvchi harakatlarini sharhlaydi, modelni o'zgartirish zarurati haqida xabardor qiladi. Shunday qilib, ushbu sxemaning har bir komponenti boshqa komponentlar bilan erkin bog'langan va shu bilan dasturning moslashuvchanligiga erishiladi. Ko'pincha, barcha biznes mantig'i modelda mavjud, garchi ba'zida u boshqaruvchida ham mavjud. Birinchi holda, model nozik deb ataladi, ikkinchisida - qalin.

  2. DAO (Ma'lumotlarga kirish ob'ekti) - asosiy vazifasi ma'lumotlarni ma'lumotlar bazasiga saqlash, shuningdek uni undan olish bo'lgan ob'ekt. DTO (Data Transfer Object) - bu ma'lumotlarni tashish uchun mo'ljallangan ob'ekt. Shuning uchun uning asosiy vazifasi bu ma'lumotlarni saqlashdir. Unda hech qanday mantiq yo'q. Bunga qo'shimcha ravishda, u seriyali bo'lishi kerak, chunki ob'ektlarni tashish odatda ketma-ketlashtirish-deserializatsiya yordamida amalga oshiriladi.

  3. POJO "Old Style Java Object" degan ma'noni anglatadi. Ular EJB ob'ektlari bilan taqqoslanadi. Ikkinchisi maxsus konventsiyaga amal qiladi va odatda ma'lum bir korporativ tizimga qat'iy bog'langan (masalan, ular parametrlari bo'lmagan umumiy konstruktorga ega bo'lishi kerak, ularda maydonlar uchun qabul qiluvchilar va sozlagichlar bo'lishi kerak, ular seriyali bo'lishi kerak va hokazo). POJO, shunga ko'ra, hech qanday maxsus sinflardan meros bo'lmagan va hech qanday maxsus kutubxonalarni amalga oshirmaydigan oddiy sinfdir. Odatda POJO hech qanday maxsus ish qilmaydi va faqat holatni o'z ichiga oladi.

  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. Navbat - bu birinchi kiruvchi va birinchi chiqadigan asosda ishlaydigan ma'lumotlar tuzilmasi. Ya'ni, elementlar navbatga bir uchidan qo'shiladi va ikkinchisidan chiqariladi. Deque ikki tomonlama navbatdir. Bu navbatda elementlarni ham boshiga, ham oxiriga qo'shish mumkin, shuningdek, elementlarni navbatning boshidan ham, oxiridan ham olishingiz mumkin. Shunga ko‘ra, element qo‘shish imkonini beruvchi usullar mavjud (bular qo‘shish(e) va taklif(e) usullari) va elementni navbatdan olib tashlash imkonini beruvchi usullar mavjud (bular olib tashlash( kabi usullar). ) va so'rov ()). Bundan tashqari, navbatdan elementni olib tashlamasdan oddiygina olish imkonini beruvchi usullar mavjud (bu element() va peek() usullari). Deque interfeysida qo'shimcha ravishda navbatning boshi va oxiriga elementlar qo'shish, elementlarni boshidan yoki oxiridan olish va elementlarni navbatning boshidan yoki oxiridan olish (ularni navbatdan olib tashlamasdan) usullari mavjud.

  9. Oddiy dasturlarga ArrayDeque , LinkedList va PriorityQueue kiradi . Bir vaqtning o'zida to'plamlarda ushbu ikkita interfeysni amalga oshiradigan ko'plab sinflar mavjud (bir vaqtning o'zida yoki ulardan bittasi).

  10. Daraxt - bu halqasiz yoki bir nechta qirralari bo'lmagan bog'langan grafik. Odatda, agar daraxtda N cho'qqi mavjud bo'lsa, unda qirralarning soni kamida N-1 bo'ladi. Bundan tashqari, daraxtning bir tepasi ildiz sifatida tanlanadi. Qolgan cho'qqilar shoxlar deb e'lon qilinadi. O'z shoxlari bo'lmagan shoxlarga daraxt barglari deyiladi.
    Daraxtlar dasturlashda juda keng qo'llaniladi va bu daraxtning ko'plab turlari allaqachon ixtiro qilingan. Eng ko'p ishlatiladigan daraxtlardan biri ikkilik daraxtdir. Ushbu daraxtda har bir elementning ko'pi bilan ikkita bolasi bor (ya'ni, 0 dan 2 gacha bo'lishi mumkin). Ikkilik daraxtning bir turi BST - ikkilik qidiruv daraxti. Ushbu daraxtda elementlarga qoida qo'yilgan: elementning chap bolasi qiymati bo'yicha undan kichik bo'lishi kerak, o'ng qismi esa qiymat bo'yicha undan katta yoki teng bo'lishi kerak.
    Qizil-qora daraxtlar ham bor. Bu ikkilik qidiruv daraxtining bir turi. Qizil-qora daraxtlarda elementning yana bir xususiyati kiritiladi - rang. Rangi qora yoki qizil bo'lishi mumkin. Shuningdek, har bir qizil-qora daraxt quyidagi talablarga javob berishi kerak:

    1. daraxtning ildizi qora;
    2. tugun qizil yoki qora rangda;
    3. daraxtning barcha barglari qora;
    4. qizil tugunning ikkala avlodi ham qora;
    5. Berilgan tugundan uning avlodi bo'lgan har qanday barg tuguniga qadar har bir yo'lda bir xil miqdordagi qora tugunlar mavjud.
Ushbu qoidalar muvozanatli daraxtga erishishga imkon beradi. Ildizdan barg tuguniga qadar boʻlgan yoʻl uzunligi 1 dan koʻp boʻlmagan farqi boʻlsa, daraxt muvozanatlangan boʻladi. (Yaʼni, oddiy soʻz bilan aytganda, daraxtda buzilishlar yoki uzun shoxlar boʻlmasa).
Izohlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION