JavaRush /Blog Java /Random-VI /Cấp 36. Câu trả lời cho các câu hỏi phỏng vấn về một chủ ...
lichMax
Mức độ
Санкт-Петербург

Cấp 36. Câu trả lời cho các câu hỏi phỏng vấn về một chủ đề cấp độ

Xuất bản trong nhóm
Một lần nữa, tôi xem xét mọi thứ và không thể tìm thấy câu trả lời nào. Tốt. Tôi sẽ đăng bài của mình, mặc dù tôi viết chúng hoàn toàn cho riêng mình và nếu có thể thì viết ngắn gọn. Nhưng bất cứ điều gì tốt hơn là không có gì. Vì vậy, có những câu hỏi sau: Cấp 36.  Trả lời các câu hỏi phỏng vấn ở cấp độ - 1 chủ đềCâu hỏi cho cuộc phỏng vấn:
  1. MVC là gì ?
  2. DAODTO là gì ?
  3. POJO là gì ?
  4. Thực thể là gì ?
  5. Bạn biết những bộ sưu tập danh sách nào ?
  6. Bạn biết những bộ sưu tập nào ?
  7. Bản đồ là gì , nó khác với “ từ điển ” như thế nào?
  8. Hàng đợiDequeue là gì ?
  9. Bạn biết những lớp nào thực hiện giao diện Queuee ?
  10. Cây là gì ?
Và bây giờ câu trả lời của tôi:
  1. MVC là một mẫu thiết kế ứng dụng trong đó ứng dụng được chia thành ba phần riêng biệt: mô hình, khung nhìn và bộ điều khiển. Mô hình cung cấp dữ liệu và phản hồi các lệnh của bộ điều khiển bằng cách thay đổi trạng thái của nó. View có nhiệm vụ hiển thị dữ liệu model cho người dùng, phản hồi những thay đổi trong model. Và bộ điều khiển diễn giải hành động của người dùng, thông báo cho mô hình về nhu cầu thay đổi. Do đó, mỗi thành phần của mạch này được kết nối lỏng lẻo với các thành phần khác, từ đó đạt được tính linh hoạt của chương trình. Thông thường, tất cả logic nghiệp vụ đều được chứa trong mô hình, mặc dù đôi khi nó cũng được chứa trong bộ điều khiển. Trong trường hợp đầu tiên, mô hình được gọi là mỏng, trong trường hợp sau - dày.

  2. DAO (Đối tượng truy cập dữ liệu) là một đối tượng có nhiệm vụ chính là lưu dữ liệu vào cơ sở dữ liệu, cũng như truy xuất dữ liệu từ đó. DTO (Đối tượng truyền dữ liệu) là một đối tượng được thiết kế để vận chuyển dữ liệu. Vì vậy, nhiệm vụ chính của nó là lưu trữ dữ liệu này. Nó không chứa bất kỳ logic nào. Ngoài ra, nó phải có khả năng tuần tự hóa, vì việc vận chuyển các đối tượng thường xảy ra thông qua quá trình tuần tự hóa-giải tuần tự hóa.

  3. POJO là viết tắt của "Đối tượng Java kiểu cũ". Chúng tương phản với các đối tượng EJB. Cái sau tuân theo một quy ước đặc biệt và thường được gắn chặt với một khung doanh nghiệp cụ thể (ví dụ: chúng phải có một hàm tạo công khai không có tham số, chúng phải có getters và setters cho các trường, chúng phải có khả năng tuần tự hóa, v.v.). Theo đó, POJO là một lớp thông thường không kế thừa từ bất kỳ lớp đặc biệt nào và không triển khai bất kỳ thư viện đặc biệt nào. Thông thường, POJO không làm gì đặc biệt và chỉ chứa trạng thái.

  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. Hàng đợi là một cấu trúc dữ liệu hoạt động theo nguyên tắc nhập trước xuất trước. Nghĩa là, các phần tử được thêm vào hàng đợi từ một đầu và bị xóa khỏi đầu kia. Deque là hàng đợi hai chiều. Trong hàng đợi này, các phần tử có thể được thêm vào cả phần đầu và phần cuối, đồng thời bạn cũng có thể lấy các phần tử từ cả phần đầu và phần cuối của hàng đợi. Theo đó, có những phương thức cho phép bạn thêm một phần tử (đó là các phương thức add(e) và Offer(e)) và có những phương thức cho phép bạn xóa phần tử khỏi hàng đợi (đó là các phương thức như Remove( ) và thăm dò ý kiến()). Ngoài ra, có những phương thức cho phép bạn chỉ cần lấy một phần tử từ hàng đợi mà không xóa nó khỏi đó (đó là các phương thức element() và look()). Giao diện Deque cũng có các phương thức để thêm các phần tử vào đầu và cuối hàng đợi, truy xuất các phần tử từ đầu hoặc cuối và lấy các phần tử từ đầu hoặc cuối hàng đợi (mà không xóa chúng khỏi hàng đợi).

  9. Việc triển khai đơn giản bao gồm ArrayDeque , LinkedListPriorityQueue . Ngoài ra còn có nhiều lớp trong Bộ sưu tập đồng thời triển khai hai giao diện này (cả hai cùng một lúc hoặc chỉ một trong số chúng).

  10. Cây là một đồ thị được kết nối không có vòng lặp hoặc nhiều cạnh. Thông thường, nếu có N đỉnh trong cây thì số cạnh ít nhất là N-1. Ngoài ra, một đỉnh trong cây được chọn làm gốc. Các đỉnh còn lại được khai báo là nhánh. Những cành không có cành riêng được gọi là lá của cây.
    Cây được sử dụng khá rộng rãi trong lập trình và nhiều loại cây này đã được phát minh ra. Một trong những cây được sử dụng rộng rãi nhất là cây nhị phân. Trong cây này, mỗi phần tử có tối đa hai phần tử con (nghĩa là có thể có từ 0 đến 2). Một loại cây nhị phân là BST - cây tìm kiếm nhị phân. Trong cây này, một quy tắc được áp đặt cho các phần tử: phần tử con bên trái của phần tử phải nhỏ hơn giá trị của phần tử đó và phần tử con bên phải phải lớn hơn hoặc bằng giá trị của phần tử đó.
    Ngoài ra còn có cây đỏ đen. Đây là một loại cây tìm kiếm nhị phân. Trong cây đỏ đen, một thuộc tính khác của phần tử được giới thiệu - màu sắc. Màu sắc có thể là đen hoặc đỏ. Ngoài ra, mỗi cây đỏ đen phải thỏa mãn các yêu cầu sau:

    1. rễ cây có màu đen;
    2. nút có màu đỏ hoặc đen;
    3. tất cả lá của cây đều có màu đen;
    4. cả hai hậu duệ của nút đỏ đều có màu đen;
    5. Mọi đường dẫn từ một nút nhất định đến bất kỳ nút lá nào là hậu duệ của nó đều chứa cùng số lượng nút đen.
Những quy tắc này cho phép bạn đạt được một cây cân bằng. Một cây được cân bằng khi độ dài của đường đi từ gốc đến bất kỳ nút lá nào khác nhau không quá 1. (Nghĩa là, nói một cách đơn giản, không có sự biến dạng hoặc nhánh dài nào trong cây.)
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION