Отвратительная работа Meituan Architect: анализ основных моментов интервью Dachang

Java

Предисловие:

Я считаю, что в недавнем сезоне смены работы Jin Jiu Yin Shi многие студенты не смогли пройти собеседование или не смогли сменить работу. вся система знаний Java станет очень важной и может быть очень обременительной.Ответственно говоря, достаточность подготовки к обзору напрямую повлияет на ваш успех при поступлении.

Однако многие мелкие партнеры страдают от нехватки подходящих материалов для обзора всей системы знаний Java, а некоторые мелкие партнеры могут не знать, с чего начать обзор.

Я случайно нашел эту информацию, составленную группой пользователей сети.Будь то из всей системы знаний Java или с точки зрения интервью, это очень техническая информация. Следующая статья поможет вам осознать свои недостатки.

1.JVM

JVM — это гипотетический компьютер, который может запускать код Java, включая набор инструкций байт-кода, набор регистров, стек, сборщик мусора, кучу и домен метода хранения. JVM работает поверх операционной системы и не имеет прямого взаимодействия с оборудованием.


2. Коллекция JAVA

Классы-коллекции хранятся в пакете Java.util и бывают трех основных типов: set (набор), list (список содержит Queue) и map (карта).

  1. Коллекция: Коллекция — это самый простой интерфейс для коллекций List, Set и Queue.
  2. Итератор: Итератор, вы можете просматривать данные в коллекции через итератор
  3. Карта: это основной интерфейс таблицы сопоставления.


3. Многопоточный параллелизм JAVA



4. Основы JAVA

1JAVA Классификация исключений и обработка

2JAVA отражение

Аннотации 3JAVA

4JAVA внутренний класс

5JAVA-дженерики

6JAVA-сериализация (создание многократно используемых объектов Java)

7JAVA копия


5. Принцип пружины

Это комплексное универсальное решение для разработки корпоративных приложений, которое проходит через уровень представления, бизнес-уровень и уровень сохраняемости. Но Spring по-прежнему может легко интегрироваться с другими фреймворками.

1. Особенности пружины

2. Компоненты пружинного сердечника

3. Весенние общие модули

4. Весенний основной пакет

5. Весенние общие аннотации

6. Весенняя сторонняя комбинация

7. Принцип Spring IOC

8. Принцип Spring APO

9. Принцип Spring MVC

10. Принцип Spring Boot

11. Принцип JPA

12. Тайник Мибатиса

13. Архитектура Томкэт


6. Микросервисы

1. Обнаружение регистрации службы

2. Шлюз API

3. Центр конфигурации

4. Планирование событий (кафка)

5. Сервисное отслеживание (стартер-сыщик)

6. Сервисный предохранитель (Hystrix)

7. Управление API


7. Нетти и RPC

1. Принцип нетти

2. Высокая производительность Netty

3. Реализация Netty RPC

4. Как реализовано RMI

5.Protoclol Buffer

6.Thrift


8. Сеть

1. Сетевая 7-уровневая архитектура

2. Принцип TCP/IP

3.TCP трехстороннее рукопожатие/четырехсторонняя волна

4. Принцип HTTP

5. Принцип CDN


9. Журналы

1.Slf4j

2.Log4j

3.LogBack

4.ELK


10. Zookeeper

Zookeeper — это служба распределенной координации, которую можно использовать для обнаружения служб, распределенной блокировки, распределенных выборов лидера, управления конфигурацией и многого другого. Zookeeper предоставляет древовидную структуру, аналогичную файловой системе Linux (ее можно рассматривать как облегченную файловую систему в памяти, но она подходит только для хранения небольшого объема информации, не подходит для хранения большого количества файлов или больших файлов). вообще), и обеспечивает для каждого узла механизм мониторинга и уведомления.

1. Роль смотрителя зоопарка

2. Как работает Zookeeper (атомная трансляция)

3.Znode имеет четыре формы узлов каталогов


11. Kafka

Kafka — это высокопроизводительная распределенная система обмена сообщениями на основе публикации/подписки, первоначально разработанная LinkedIn, написанная на Scala и в настоящее время являющаяся проектом Apache с открытым исходным кодом.

1. Дизайн хранилища данных Kafka

2. Дизайн продюсера

3. Потребительский дизайн

12. RabbitMQ

RabbitMQ — это реализация AMQP с открытым исходным кодом, разработанная на языке Erlang.

1. Архитектура RabbitMQ

2. Тип обмена

13. Hbase

base — это распределенная база данных с открытым исходным кодом, ориентированная на столбцы (фактически, если быть точным, ориентированная на семейство столбцов). HDFS предоставляет HBase надежные базовые службы хранения данных, MapReduce предоставляет HBase высокопроизводительные вычислительные возможности, а Zookeeper предоставляет HBase стабильные службы и механизм аварийного переключения, поэтому мы говорим, что HBase — это высокоскоростное решение для хранения и чтения больших объемов данных через большое количество дешевых машин.Возьмите решение распределенной базы данных.

1. Столбчатое хранилище

2. Основные концепции Hbase

3. Архитектура ядра Hbase

4. Напишите логику Hbase

5. HBase vs Cassandra

14. MongoDB

MongoDB написана на языке C++ и представляет собой систему баз данных с открытым исходным кодом, основанную на распределенном хранилище файлов. В случае высокой нагрузки добавление дополнительных узлов может гарантировать производительность сервера. MongoDB стремится предоставить масштабируемое, высокопроизводительное решение для хранения данных для веб-приложений. MongoDB хранит данные в виде документа, а структура данных состоит из пар ключ-значение (ключ=>значение). Документы MongoDB аналогичны объектам JSON. Значения полей могут содержать другие документы, массивы и массивы документов.

15. Cassandra

Apache Cassandra — это хорошо масштабируемая, высокопроизводительная распределенная база данных NoSQL. Cassandra предназначена для обработки больших объемов данных на многих стандартных серверах, обеспечивая высокую доступность, не беспокоясь о единой точке отказа. Cassandra имеет распределенную архитектуру, способную обрабатывать большие объемы данных. Данные размещаются на разных машинах с несколькими факторами репликации для обеспечения высокой доступности, не беспокоясь о единой точке отказа.

1. Модель данных

2. Консистентный хеш Cassandra и виртуальные узлы

3. Протокол сплетен

4. Репликация данных

5. Запрос на запись данных и координатор

6. Запросы на чтение данных и фоновые исправления

7. Хранение данных (CommitLog, MemTable, SSTable)

8. Вторичный индекс (создайте RowKey для индексируемой сводки значений)

9. Чтение и запись данных

16. Шаблоны проектирования

1. Принципы проектирования

2. Шаблон фабричного метода

3. Абстрактная фабрика

4. Одноэлементный шаблон

5. Режим строителя

6. Режим прототипа

7. Режим адаптера

8. Шаблон декоратора

9. Прокси-режим

10. Режим внешнего вида

11. Режим моста

12. Комбинированный режим

13. Режим наилегчайшего веса

14. Режим стратегии

15. Шаблон шаблонного метода

16. Шаблон наблюдателя

17. Подшаблоны итерации

18. Модель цепочки ответственности

19. Командный режим

20. Режим заметок

21. Режим статуса

22. Шаблон посетителя

23. Паттерн посредника

24. Режим переводчика

17. Балансировка нагрузки

Балансировка нагрузки, основанная на существующей сетевой структуре, представляет собой недорогой, эффективный и прозрачный метод расширения полосы пропускания сетевых устройств и серверов, увеличения пропускной способности, улучшения возможностей обработки сетевых данных, а также повышения гибкости и доступности сети.

1. Балансировка нагрузки уровня 4 и балансировка нагрузки уровня 7

2. Алгоритм/стратегия балансировки нагрузки

3.LVS

4.Keepalive

5. Балансировка нагрузки обратного прокси Nginx

6.HAProxy

18. База данных

1 механизм хранения

2 индекс

3 База данных три парадигмы

4 Базы данных — это транзакции

5 хранимых процедур (наборы операторов SQL для определенных функций)

6 Триггер (программа, которая может выполняться автоматически)

7 Стратегия параллелизма базы данных

8 Блокировка базы данных

9 Распределенная блокировка на основе Redis

10 таблиц разделов

11 Протокол двухэтапной передачи обслуживания

12 Трехэтапный протокол передачи обслуживания

13 гибких транзакций

14 CAP

29. Алгоритм консенсуса

1.Paxos

2.Zab

3.Raft

4.NWR

5.Gossip

6. Согласованный хэш

20. Алгоритм JAVA

1. Бинарный поиск

2. Алгоритм пузырьковой сортировки

3. Алгоритм сортировки вставками

4. Алгоритм быстрой сортировки

5. Алгоритм сортировки по холму

6. Алгоритм сортировки слиянием

7. Алгоритм сортировки сегментов

8. Алгоритм сортировки по основанию

9. Алгоритм возврата

10. Алгоритм кратчайшего пути

11. Алгоритм максимального подмассива

12. Алгоритм самой длинной общей последовательности

13. Алгоритм минимального связующего дерева

21. Структуры данных

1 стопка

2 очередь (очередь)

3 Связанный список (Ссылка)

4 Хэш-таблица

5 Сортировка двоичного дерева

6 красно-черное дерево

7 B-TREE

8 растровых изображений

22. Алгоритм шифрования

1.AES

2.RSA

3.CRC

4.MD5

23. Распределенный кеш

1. Лавина кеша

2. Проникновение в кэш

3. Проникновение в кэш

4. Прогрев кеша

5. Обновление кеша

6. Деградация кэша

24. Hadoop

Это решение для больших данных. Он обеспечивает распределенную системную инфраструктуру. Основной контент включает hdfs и mapreduce. После версии hadoop 2.0 для хранения данных используется yarn.hdfs, а для расчета данных удобен mapreduce.

1. HDFS

2. MapReduce

3. Жизненный цикл задания Hadoop MapReduce

25. Spark

Spark предоставляет комплексную и унифицированную платформу для управления потребностями в обработке больших данных из различных наборов данных и источников данных (пакетные данные или потоковые данные в реальном времени) с различными свойствами (текстовые данные, графические данные и т. д.).

1. Концепция

2. Базовая архитектура

3. Основные компоненты

4. Модель программирования СПАРК

5. Расчетная модель СПАРК

6. Запущенный процесс SPARK

7. Процесс SPARK RDD

8.SPARK RDD

26. Storm

1. Кластерная архитектура

2. Модель программирования (носик->кортеж->болт)

3. Прогон топологии

4.Storm Streaming Grouping

27. YARN

YARN — это фреймворк для управления ресурсами и планирования задач, в основном состоящий из трех модулей: ResourceManager (RM), NodeManager (NM) и ApplicationMaster (AM). Среди них ResourceManager отвечает за мониторинг, распределение и управление всеми ресурсами; ApplicationMaster отвечает за планирование и координацию каждого конкретного приложения; NodeManager отвечает за обслуживание каждого узла. Для всех приложений RM имеет абсолютный контроль и распределение ресурсов. Каждый AM согласовывает ресурсы с RM и связывается с NodeManager для выполнения и мониторинга задач.

1.ResourceManager

2.NodeManager

3. ApplicationMaster

4. Работающий процесс пряжи

28. Машинное обучение

1. Дерево решений

2. Алгоритм случайного леса

3. Логистическая регрессия

4.SVM

5. Наивный Байес

6. Алгоритм K ближайших соседей

7. Алгоритм К-средних

8. Алгоритм Adaboost

9. Нейронные сети

10. Марков

29. Облачные вычисления

1. SaaS

2. PaaS

3. IaaS

5. Openstack

Суммировать:

Все основные точки знаний организованы архитектором Meituan.Каждая точка знаний имеет подробное введение и анализ.Если вам нужны исходные файлы, вы можете обратить внимание на публичный аккаунт WeChat: Java-программисты собираются, чтобы получить его.