JavaRush /Blogue Java /Random-PT /Nível 36. Respostas às perguntas da entrevista sobre um t...
lichMax
Nível 40
Санкт-Петербург

Nível 36. Respostas às perguntas da entrevista sobre um tópico nivelado

Publicado no grupo Random-PT
Mais uma vez, examinei tudo e não consegui encontrar nenhuma resposta. Bem. Vou postar os meus, embora os tenha escrito exclusivamente para mim e, se possível, brevemente. Mas qualquer coisa é melhor que nada. Então ficaram as seguintes perguntas: Nível 36.  Respostas às perguntas para uma entrevista de nível - 1 tópicoPerguntas para a entrevista:
  1. O que é MVC ?
  2. O que são DAO e DTO ?
  3. O que é POJO ?
  4. O que é Entidade ?
  5. Quais coleções de listas você conhece?
  6. Que conjuntos de coleções você conhece?
  7. O que é um mapa , em que difere de um “ dicionário ”?
  8. O que são fila e desenfileiramento ?
  9. Quais classes que implementam a interface Queeue você conhece?
  10. O que é uma árvore ?
E agora minhas respostas:
  1. MVC é um padrão de design de aplicativo no qual o aplicativo é dividido em três partes distintas: modelo, visualização e controlador. O modelo fornece dados e responde aos comandos do controlador alterando seu estado. A visualização é responsável por exibir os dados do modelo ao usuário, respondendo às alterações no modelo. E o controlador interpreta as ações do usuário, notificando o modelo sobre a necessidade de alterações. Assim, cada um dos componentes deste circuito é fracamente acoplado a outros componentes, conseguindo assim flexibilidade do programa. Na maioria das vezes, toda a lógica de negócios está contida no modelo, embora às vezes também esteja contida no controlador. No primeiro caso, o modelo é denominado fino, no último - grosso.

  2. DAO (Data Access Object) é um objeto cuja principal tarefa é salvar dados em um banco de dados, bem como recuperá-los dele. DTO (Data Transfer Object) é um objeto projetado para transportar dados. Portanto, sua principal tarefa é armazenar esses dados. Não contém nenhuma lógica. Além disso, deve ser serializável, pois o transporte de objetos geralmente ocorre por meio de serialização-desserialização.

  3. POJO significa "Objeto Java de estilo antigo". Eles são contrastados com objetos EJB. Estes últimos seguem uma convenção especial e geralmente estão estritamente vinculados a uma estrutura empresarial específica (por exemplo, devem ter um construtor público sem parâmetros, devem ter getters e setters para campos, devem ser serializáveis, etc.). POJO é, portanto, uma classe regular que não herda nenhuma classe especial e não implementa nenhuma biblioteca especial. Normalmente um POJO não faz nada de especial e contém apenas estado.

  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. Uma fila é uma estrutura de dados que opera primeiro a entrar, primeiro a sair. Ou seja, os elementos são adicionados à fila de uma extremidade e removidos da outra. Deque é uma fila bidirecional. Nesta fila, os elementos podem ser adicionados tanto no início quanto no final, e você também pode pegar elementos do início e do final da fila. Conseqüentemente, existem métodos que permitem adicionar um elemento (estes são os métodos add(e) e offer(e)), e existem métodos que permitem remover o elemento da fila (estes são métodos como remove( ) e enquete()). Além disso, existem métodos que permitem simplesmente obter um elemento da fila sem removê-lo de lá (estes são os métodos element() e peek()). A interface Deque também possui métodos para adicionar elementos ao início e ao fim de uma fila, recuperar elementos do início ou do fim e obter elementos do início ou do fim de uma fila (sem removê-los da fila).

  9. Implementações simples incluem ArrayDeque , LinkedList e PriorityQueue . Existem também muitas classes em Coleções Simultâneas que implementam essas duas interfaces (ambas ao mesmo tempo ou apenas uma delas).

  10. Uma árvore é um gráfico conectado sem loops ou arestas múltiplas. Normalmente, se houver N vértices em uma árvore, o número de arestas será pelo menos N-1. Além disso, um vértice da árvore é escolhido como raiz. Os vértices restantes são ramificações declaradas. Os galhos que não possuem galhos próprios são chamados de folhas de uma árvore.
    As árvores são amplamente utilizadas na programação e muitos tipos dessa árvore já foram inventados. Uma das árvores mais utilizadas é a árvore binária. Nessa árvore, cada elemento possui no máximo dois filhos (ou seja, pode haver de 0 a 2). Um tipo de árvore binária é a BST - árvore de pesquisa binária. Nesta árvore, uma regra é imposta aos elementos: o filho esquerdo do elemento deve ser menor que ele em valor, e o filho direito deve ser maior ou igual a ele em valor.
    Existem também árvores rubro-negras. Este é um tipo de árvore de pesquisa binária. Nas árvores rubro-negras, outra propriedade do elemento é introduzida - a cor. A cor pode ser preta ou vermelha. Além disso, cada árvore rubro-negra deve atender aos seguintes requisitos:

    1. a raiz da árvore é preta;
    2. o nó é vermelho ou preto;
    3. todas as folhas da árvore são pretas;
    4. ambos os descendentes do nó vermelho são pretos;
    5. Cada caminho de um determinado nó até qualquer nó folha que seja seu descendente contém o mesmo número de nós pretos.
Essas regras permitem que você obtenha uma árvore equilibrada. Uma árvore está balanceada quando o comprimento do caminho da raiz até qualquer nó folha difere em não mais que 1. (Ou seja, em termos simples, não há distorções ou galhos longos na árvore.)
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION