JavaRush /Blog Java /Random-FR /Niveau 36. Réponses aux questions d'entretien sur un suje...
lichMax
Niveau 40
Санкт-Петербург

Niveau 36. Réponses aux questions d'entretien sur un sujet de niveau

Publié dans le groupe Random-FR
Encore une fois, j’ai tout cherché et je n’ai trouvé aucune réponse. Bien. Je posterai les miens, même si je les ai écrits uniquement pour moi, et si possible, brièvement. Mais tout vaut mieux que rien. Il y avait donc les questions suivantes : Niveau 36.  Réponses aux questions pour un entretien de niveau - 1 sujetQuestions pour l'entretien :
  1. Qu’est-ce que MVC ?
  2. Que sont DAO et DTO ?
  3. Qu’est-ce que POJO ?
  4. Qu'est-ce que l'entité ?
  5. Quelles collections de listes connaissez-vous ?
  6. Quelles collections-ensembles connaissez-vous ?
  7. Qu'est-ce qu'une carte , en quoi diffère-t-elle d'un « dictionnaire » ?
  8. Que sont la file d'attente et la suppression de la file d'attente ?
  9. Quelles classes implémentant l’interface Queueue connaissez-vous ?
  10. Qu'est-ce qu'un arbre ?
Et maintenant mes réponses :
  1. MVC est un modèle de conception d'application dans lequel l'application est divisée en trois parties distinctes : le modèle, la vue et le contrôleur. Le modèle fournit des données et répond aux commandes du contrôleur en modifiant son état. La vue est chargée d'afficher les données du modèle à l'utilisateur, en réponse aux modifications apportées au modèle. Et le contrôleur interprète les actions de l’utilisateur, informant le modèle de la nécessité de modifications. Ainsi, chacun des composants de ce circuit est faiblement couplé à d'autres composants, ce qui permet d'obtenir une flexibilité de programme. Le plus souvent, toute la logique métier est contenue dans le modèle, même si parfois elle est également contenue dans le contrôleur. Dans le premier cas, le modèle est dit fin, dans le second, épais.

  2. DAO (Data Access Object) est un objet dont la tâche principale est de sauvegarder des données dans une base de données, ainsi que de les récupérer. DTO (Data Transfer Object) est un objet conçu pour transporter des données. Sa tâche principale est donc de stocker ces données. Il ne contient aucune logique. De plus, il doit être sérialisable, car le transport d'objets s'effectue généralement par sérialisation-désérialisation.

  3. POJO signifie « Objet Java à l'ancienne ». Ils contrastent avec les objets EJB. Ces derniers suivent une convention spéciale et sont généralement strictement liés à un cadre d'entreprise spécifique (par exemple, ils doivent avoir un constructeur public sans paramètres, ils doivent avoir des getters et des setters pour les champs, ils doivent être sérialisables, etc.). POJO est donc une classe normale qui n’hérite d’aucune classe spéciale et n’implémente aucune bibliothèque spéciale. Généralement, un POJO ne fait rien de spécial et ne contient que l'état.

  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. Une file d'attente est une structure de données qui fonctionne selon le principe du premier entré, premier sorti. Autrement dit, les éléments sont ajoutés à la file d’attente d’un côté et supprimés de l’autre. Deque est une file d'attente à double sens. Dans cette file d'attente, des éléments peuvent être ajoutés au début et à la fin, et vous pouvez également prendre des éléments au début et à la fin de la file d'attente. En conséquence, il existe des méthodes qui vous permettent d'ajouter un élément (ce sont les méthodes add(e) et offer(e)), et il existe des méthodes qui vous permettent de supprimer l'élément de la file d'attente (ce sont des méthodes telles que remove( ) et sondage()). De plus, il existe des méthodes qui vous permettent d'extraire simplement un élément de la file d'attente sans l'en supprimer (ce sont les méthodes element() et peek()). L'interface Deque dispose en outre de méthodes pour ajouter des éléments au début et à la fin d'une file d'attente, récupérer des éléments du début ou de la fin et obtenir des éléments du début ou de la fin d'une file d'attente (sans les supprimer de la file d'attente).

  9. Les implémentations simples incluent ArrayDeque , LinkedList et PriorityQueue . Il existe également de nombreuses classes dans Concurrent Collections qui implémentent ces deux interfaces (les deux à la fois ou une seule d'entre elles).

  10. Un arbre est un graphe connecté sans boucles ni arêtes multiples. Généralement, s’il y a N sommets dans un arbre, alors le nombre d’arêtes est d’au moins N-1. De plus, un sommet de l’arbre est choisi comme racine. Les sommets restants sont déclarés branches. Les branches qui n'ont pas de branches propres sont appelées feuilles d'un arbre.
    Les arbres sont assez largement utilisés en programmation, et de nombreux types de ces arbres ont déjà été inventés. L’un des arbres les plus utilisés est l’arbre binaire. Dans cet arbre, chaque élément a au plus deux enfants (c'est-à-dire qu'il peut y en avoir de 0 à 2). Un type d'arbre binaire est le BST - arbre de recherche binaire. Dans cet arbre, une règle est imposée aux éléments : le fils gauche de l'élément doit être inférieur à lui en valeur, et le fils droit doit lui être supérieur ou égal en valeur.
    Il y a aussi des arbres rouge-noir. Il s'agit d'un type d'arbre de recherche binaire. Dans les arbres rouge-noir, une autre propriété de l'élément est introduite : la couleur. La couleur peut être noire ou rouge. De plus, chaque arbre rouge-noir doit satisfaire aux exigences suivantes :

    1. la racine de l'arbre est noire ;
    2. le nœud est soit rouge, soit noir ;
    3. toutes les feuilles de l'arbre sont noires ;
    4. les deux descendants du nœud rouge sont noirs ;
    5. Chaque chemin allant d'un nœud donné à n'importe quel nœud feuille qui est son descendant contient le même nombre de nœuds noirs.
Ces règles permettent d'obtenir un arbre équilibré. Un arbre est équilibré lorsque la longueur du chemin allant de la racine à n’importe quel nœud feuille ne diffère pas de plus de 1. (En termes simples, il n’y a pas de distorsions ni de longues branches dans l’arbre.)
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION