JavaRush /จาวาบล็อก /Random-TH /ระดับ 36. คำตอบสำหรับคำถามสัมภาษณ์ในหัวข้อระดับ
lichMax
ระดับ
Санкт-Петербург

ระดับ 36. คำตอบสำหรับคำถามสัมภาษณ์ในหัวข้อระดับ

เผยแพร่ในกลุ่ม
ฉันตรวจสอบทุกอย่างอีกครั้งและไม่พบคำตอบใด ๆ ดี. ฉันจะโพสต์ของฉัน แม้ว่าฉันจะเขียนมันเพื่อตัวเองเท่านั้น และถ้าเป็นไปได้ก็สั้นๆ เลย แต่อะไรๆ ก็ดีกว่าไม่มีอะไรเลย จึงมีคำถามดังนี้ ระดับ 36.  ตอบคำถามสัมภาษณ์ในระดับ - 1 หัวข้อคำถามในการสัมภาษณ์:
  1. MVCคืออะไร?
  2. DAOและDTOคืออะไร
  3. POJOคืออะไร?
  4. เอนทิตีคืออะไร?
  5. คุณรู้จักคอลเลกชันรายการใด บ้าง
  6. คุณรู้จักคอลเลกชันชุดใด บ้าง
  7. แผนที่คืออะไรแตกต่างจาก “ พจนานุกรม ” อย่างไร
  8. QueueและDequeueคืออะไร
  9. คุณรู้จักคลาสใดบ้างที่ใช้อินเทอร์เฟซ Queeue
  10. ต้นไม้คืออะไร?
และตอนนี้คำตอบของฉัน:
  1. MVCเป็นรูปแบบการออกแบบแอปพลิเคชัน โดยแอปพลิเคชันจะแบ่งออกเป็นสามส่วนแยกกัน ได้แก่ โมเดล มุมมอง และตัวควบคุม โมเดลให้ข้อมูลและตอบสนองต่อคำสั่งของคอนโทรลเลอร์โดยการเปลี่ยนสถานะ มุมมองมีหน้าที่ในการแสดงข้อมูลโมเดลแก่ผู้ใช้ ตอบสนองต่อการเปลี่ยนแปลงในโมเดล และผู้ควบคุมจะตีความการกระทำของผู้ใช้โดยแจ้งโมเดลเกี่ยวกับความจำเป็นในการเปลี่ยนแปลง ดังนั้นแต่ละส่วนประกอบของวงจรนี้จึงเชื่อมต่ออย่างหลวมๆ กับส่วนประกอบอื่นๆ ดังนั้นจึงทำให้โปรแกรมมีความยืดหยุ่น ส่วนใหญ่แล้ว ตรรกะทางธุรกิจทั้งหมดจะมีอยู่ในโมเดล แม้ว่าบางครั้งจะมีอยู่ในตัวควบคุมด้วยก็ตาม ในกรณีแรกแบบจำลองเรียกว่าแบบบางส่วนแบบหลังมีความหนา

  2. DAO (Data Access Object) เป็นอ็อบเจ็กต์ที่มีหน้าที่หลักคือบันทึกข้อมูลลงในฐานข้อมูลและดึงข้อมูลออกมา DTO (Data Transfer Object) เป็นวัตถุที่ออกแบบมาเพื่อส่งข้อมูล ดังนั้นหน้าที่หลักคือการจัดเก็บข้อมูลนี้ มันไม่มีเหตุผลใดๆ นอกจากนี้ จะต้องเป็นแบบซีเรียลไลซ์ได้ เนื่องจากการขนส่งอ็อบเจ็กต์มักจะเกิดขึ้นผ่านการซีเรียลไลซ์เซชัน-การดีซีเรียลไลซ์

  3. POJOย่อมาจาก "วัตถุ Java แบบเก่า" พวกมันแตกต่างกับวัตถุ EJB อย่างหลังเป็นไปตามแบบแผนพิเศษและมักจะเชื่อมโยงอย่างเคร่งครัดกับเฟรมเวิร์กองค์กรเฉพาะ (เช่น ต้องมีตัวสร้างสาธารณะที่ไม่มีพารามิเตอร์ ต้องมี getters และ setters สำหรับฟิลด์ จะต้องทำให้เป็นอนุกรมได้ เป็นต้น) ดังนั้น POJO จึงเป็นคลาสปกติที่ไม่ได้รับสืบทอดจากคลาสพิเศษใดๆ และไม่ได้ใช้ไลบรารีพิเศษใดๆ โดยทั่วไปแล้ว POJO จะไม่ทำอะไรเป็นพิเศษและมีเพียงสถานะเท่านั้น

  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 นอกจากนี้ยังมีคลาสหลายคลาสใน Concurrent Collections ที่ใช้อินเทอร์เฟซทั้งสองนี้ (ทั้งในคราวเดียวหรือเพียงคลาสเดียว)

  10. ต้นไม้คือกราฟที่เชื่อมต่อกันโดยไม่มีการวนซ้ำหรือหลายขอบ โดยทั่วไป หากมีจุดยอด N จุดในต้นไม้ จำนวนขอบอย่างน้อย N-1 นอกจากนี้ จุดยอดหนึ่งจุดในต้นไม้ยังถูกเลือกเป็นรากอีกด้วย จุดยอดที่เหลือจะถูกประกาศเป็นกิ่งก้าน กิ่งที่ไม่มีกิ่งก้านเป็นของตัวเองเรียกว่าใบของต้นไม้
    ต้นไม้ถูกนำมาใช้กันอย่างแพร่หลายในการเขียนโปรแกรม และต้นไม้ชนิดนี้หลายชนิดได้ถูกประดิษฐ์ขึ้นแล้ว ต้นไม้ชนิดหนึ่งที่ใช้กันอย่างแพร่หลายคือต้นไม้ไบนารี ในแผนผังนี้ แต่ละองค์ประกอบมีลูกได้มากที่สุดสองคน (นั่นคือ สามารถมีได้ตั้งแต่ 0 ถึง 2) แผนผังไบนารีประเภทหนึ่งคือ BST - แผนผังการค้นหาแบบไบนารี ในแผนผังนี้ มีการกำหนดกฎให้กับองค์ประกอบ: ลูกด้านซ้ายขององค์ประกอบจะต้องมีค่าน้อยกว่ามูลค่าของมัน และลูกด้านขวาจะต้องมีค่ามากกว่าหรือเท่ากับมูลค่าของมัน
    มีต้นแดงดำด้วย นี่คือแผนผังการค้นหาแบบไบนารีชนิดหนึ่ง ในต้นไม้สีแดงดำจะมีการแนะนำคุณสมบัติอื่นขององค์ประกอบนั่นคือสี สีอาจเป็นสีดำหรือสีแดง นอกจากนี้ต้นไม้สีแดงดำแต่ละต้นจะต้องเป็นไปตามข้อกำหนดดังต่อไปนี้:

    1. รากของต้นไม้เป็นสีดำ
    2. โหนดเป็นสีแดงหรือสีดำ
    3. ใบของต้นไม้ทั้งหมดเป็นสีดำ
    4. ทายาททั้งสองของโหนดสีแดงมีสีดำ
    5. ทุกเส้นทางจากโหนดที่กำหนดไปยังโหนดปลายสุดใดๆ ที่สืบทอดมาจะมีโหนดสีดำจำนวนเท่ากัน
กฎเหล่านี้ช่วยให้คุณได้รับต้นไม้ที่สมดุล ต้นไม้จะมีความสมดุลเมื่อความยาวของเส้นทางจากรากไปยังโหนดใบใดๆ ต่างกันไม่เกิน 1 (กล่าวคือ พูดง่ายๆ ก็คือ ต้นไม้ไม่มีการบิดเบี้ยวหรือกิ่งก้านยาว)
ความคิดเห็น
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION