JavaRush /Java Blog /Random-KO /레벨 36. 레벨 주제에 대한 인터뷰 질문에 대한 답변
lichMax
레벨 40
Санкт-Петербург

레벨 36. 레벨 주제에 대한 인터뷰 질문에 대한 답변

Random-KO 그룹에 게시되었습니다
다시 한번 모든 것을 살펴보았지만 아무런 답도 찾을 수 없었습니다. 잘. 순전히 나 자신을 위해 썼지만 가능하다면 간략하게 게시하겠습니다. 그러나 아무것도 없는 것보다는 낫습니다. 그래서 다음과 같은 질문이 있었습니다. 레벨 36.  레벨 인터뷰 질문에 대한 답변-1 주제인터뷰에 대한 질문:
  1. MVC 란 무엇입니까 ?
  2. DAODTO 는 무엇입니까 ?
  3. POJO 란 무엇입니까 ?
  4. 엔터티 란 무엇입니까 ?
  5. 어떤 목록 모음을 알고 있나요?
  6. 어떤 컬렉션 세트를 알고 있나요?
  7. 지도 란 무엇이며 , " 사전 " 과 어떻게 다릅니까 ?
  8. 대기열대기열 제거 란 무엇입니까 ?
  9. Queeue 인터페이스를 구현하는 클래스를 알고 있습니까?
  10. 나무 란 무엇인가 ?
이제 내 대답은 다음과 같습니다.
  1. MVC 는 애플리케이션이 모델, 뷰, 컨트롤러의 세 가지 개별 부분으로 나누어지는 애플리케이션 디자인 패턴입니다. 모델은 상태를 변경하여 데이터를 제공하고 컨트롤러 명령에 응답합니다. 뷰는 사용자에게 모델 데이터를 표시하고 모델의 변경 사항에 응답하는 역할을 합니다. 그리고 컨트롤러는 사용자의 행동을 해석하여 모델에 변경이 필요함을 알립니다. 따라서 이 회로의 각 구성 요소는 다른 구성 요소와 느슨하게 결합되어 프로그램 유연성을 달성합니다. 대부분의 경우 모든 비즈니스 로직이 모델에 포함되어 있지만 때로는 컨트롤러에도 포함되어 있습니다. 첫 번째 경우 모델은 얇고 후자에서는 두꺼운 모델이라고 합니다.

  2. DAO (Data Access Object)는 데이터를 데이터베이스에 저장하고 데이터베이스에서 검색하는 것이 주요 작업인 개체입니다. DTO(Data Transfer Object)는 데이터를 전송하도록 설계된 개체입니다. 따라서 주요 임무는 이 데이터를 저장하는 것입니다. 어떤 논리도 포함되어 있지 않습니다. 또한 개체 전송은 일반적으로 직렬화-역직렬화를 통해 발생하므로 직렬화 가능해야 합니다.

  3. POJO는 "Old Style Java Object"를 의미합니다. 이는 EJB 객체와 대조됩니다. 후자는 특별한 규칙을 따르며 일반적으로 특정 엔터프라이즈 프레임워크에 엄격하게 연결됩니다(예를 들어 매개 변수가 없는 공개 생성자가 있어야 하고 필드에 대한 getter 및 setter가 있어야 하며 직렬화 가능해야 합니다 등). 따라서 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( ) 및 설문조사()). 또한 대기열에서 요소를 제거하지 않고 간단히 대기열에서 요소를 가져올 수 있는 메서드가 있습니다(element() 및 peek() 메서드). Deque 인터페이스에는 큐의 시작과 끝에 요소를 추가하고, 시작이나 끝에서 요소를 검색하고, 큐의 시작이나 끝에서 요소를 가져오는(큐에서 요소를 제거하지 않고) 추가로 메서드가 있습니다.

  9. 간단한 구현에는 ArrayDeque , LinkedListPriorityQueue 가 포함됩니다 . 동시 컬렉션에는 이 두 인터페이스(둘 다 동시에 또는 둘 중 하나만)를 구현하는 많은 클래스도 있습니다.

  10. 트리는 루프나 다중 간선이 없는 연결된 그래프입니다. 일반적으로 트리에 N개의 정점이 있는 경우 가장자리 수는 최소한 N-1입니다. 또한 트리의 한 정점이 루트로 선택됩니다. 나머지 정점은 분기로 선언됩니다. 스스로 가지가 없는 가지를 나뭇잎이라고 합니다.
    트리는 프로그래밍에서 매우 광범위하게 사용되며 이 트리의 많은 유형이 이미 발명되었습니다. 가장 널리 사용되는 트리 중 하나는 이진 트리입니다. 이 트리에서 각 요소에는 최대 2개의 하위 요소가 있습니다(즉, 0에서 2까지 있을 수 있음). 이진 트리의 한 유형은 BST(이진 검색 트리)입니다. 이 트리에서는 요소에 규칙이 적용됩니다. 즉, 요소의 왼쪽 자식은 값이 해당 요소보다 작아야 하고, 오른쪽 자식은 값이 그보다 크거나 같아야 합니다.
    레드-블랙 나무도 있습니다. 이것은 이진 검색 트리의 한 유형입니다. 레드-블랙 트리에는 요소의 또 다른 속성인 색상이 도입됩니다. 색상은 검정색 또는 빨간색일 수 있습니다. 또한 각 레드-블랙 트리는 다음 요구 사항을 충족해야 합니다.

    1. 나무의 뿌리는 검은색이다.
    2. 노드는 빨간색이거나 검은색입니다.
    3. 나무의 모든 잎은 검은색이다.
    4. 레드 노드의 두 자손은 모두 블랙이다;
    5. 주어진 노드에서 그 자손인 리프 노드까지의 모든 경로에는 동일한 수의 블랙 노드가 포함됩니다.
이러한 규칙을 사용하면 균형 잡힌 트리를 얻을 수 있습니다. 트리는 루트에서 리프 노드까지의 경로 길이가 1 이하일 때 균형을 이룹니다. (즉, 간단히 말해서 트리에 왜곡이나 긴 가지가 없습니다.)
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION