JavaRush /Java Blog /Random-JA /レベル36。レベルのトピックに関するインタビューの質問への回答
lichMax
レベル 40
Санкт-Петербург

レベル36。レベルのトピックに関するインタビューの質問への回答

Random-JA グループに公開済み
もう一度、すべてを検索しましたが、答えが見つかりませんでした。良い。純粋に自分自身のために書いたものですが、可能であれば簡単に投稿します。しかし、何もないよりは何でも良いです。そこで、次のような質問がありました。 レベル36。 レベル 1 のトピックに関するインタビューの質問への回答面接の質問:
  1. MVCとは何ですか?
  2. DAODTOとは何ですか?
  3. ポジョとは何ですか?
  4. エンティティとは何ですか?
  5. あなたはどのようなリストコレクションを知っていますか?
  6. どのようなコレクション セットを知っていますか?
  7. 地図とは何ですか?「辞書」とどう違うのですか?
  8. キューデキューとは何ですか?
  9. Queeue インターフェースを実装するクラスは何ですか?
  10. 木とは何ですか?
そして今の私の答えは次のとおりです。
  1. MVCは、アプリケーションが 3 つの個別の部分 (モデル、ビュー、コントローラー) に分割されるアプリケーション設計パターンです。モデルはデータを提供し、状態を変更することでコントローラー コマンドに応答します。ビューは、モデルの変更に応答して、モデル データをユーザーに表示する役割を果たします。そしてコントローラーはユーザーのアクションを解釈し、変更の必要性をモデルに通知します。したがって、この回路の各コンポーネントは他のコンポーネントと疎結合されており、それによってプログラムの柔軟性が実現されます。ほとんどの場合、すべてのビジネス ロジックはモデルに含まれていますが、場合によってはコントローラーに含まれることもあります。前者の場合、モデルは薄いと呼ばれ、後者の場合は厚いと呼ばれます。

  2. DAO (データ アクセス オブジェクト) は、データベースへのデータの保存とデータベースからのデータの取得を主なタスクとするオブジェクトです。DTO (Data Transfer Object) は、データを転送するために設計されたオブジェクトです。したがって、その主なタスクはこのデータを保存することです。ロジックは何も含まれていません。さらに、オブジェクトの転送は通常シリアル化と逆シリアル化を通じて行われるため、シリアル化可能である必要があります。

  3. POJO は「Old Style Java Object」の略です。これらは EJB オブジェクトと対比されます。後者は特別な規則に従っており、通常は特定のエンタープライズ フレームワークに厳密に関連付けられています (たとえば、パラメーターのないパブリック コンストラクターが必要、フィールドのゲッターとセッターが必要、シリアル化可能である必要があるなど)。したがって、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) メソッドです) と、キューから要素を削除できるメソッド (remove( などのメソッド) があります。 )とpoll())。さらに、要素をキューから削除せずに単純にキューから取得できるメソッドもあります (element() メソッドと Peak() メソッドです)。Deque インターフェイスには、キューの先頭と末尾に要素を追加するメソッド、先頭または末尾から要素を取得するメソッド、およびキューの先頭または末尾から要素を (キューから削除せずに) 取得するためのメソッドもあります。

  9. 単純な実装には、ArrayDequeLinkedList、およびPriorityQueueが含まれます。同時コレクションには、これら 2 つのインターフェイス (両方を同時に、またはいずれか 1 つだけ) を実装するクラスも多数あります。

  10. ツリーは、ループや複数のエッジのない接続されたグラフです。通常、ツリーに N 個の頂点がある場合、エッジの数は少なくとも N-1 になります。また、ツリー内の 1 つの頂点がルートとして選択されます。残りの頂点は分岐として宣言されます。独自の枝を持たない枝は木の葉と呼ばれます。
    ツリーはプログラミングで非常に広く使用されており、このツリーの多くのタイプがすでに発明されています。最も広く使用されているツリーの 1 つはバイナリ ツリーです。このツリーでは、各要素には最大 2 つの子があります (つまり、0 から 2 までの子が存在する可能性があります)。バイナリ ツリーの 1 つのタイプは BST (バイナリ サーチ ツリー) です。このツリーでは、要素にルールが適用されます。つまり、要素の左側の子の値はその値より小さくなければならず、右側の子の値はそれ以上である必要があります。
    赤黒の木もあります。これは二分探索木の一種です。赤黒木では、要素の別のプロパティである色が導入されます。色は黒または赤にすることができます。また、各赤黒木は次の要件を満たしている必要があります。

    1. 木の根元は黒いです。
    2. ノードは赤または黒のいずれかです。
    3. 木の葉はすべて黒いです。
    4. 赤いノードの子孫は両方とも黒です。
    5. 特定のノードからその子孫であるリーフ ノードまでのすべてのパスには、同じ数の黒いノードが含まれます。
これらのルールにより、バランスの取れたツリーを実現できます。ルートからいずれかのリーフ ノードまでのパスの長さの差が 1 以内の場合、ツリーのバランスは取れています。(つまり、簡単に言うと、ツリーに歪みや長い枝が存在しないということです)。
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION