предисловие
Сейчас 2020 год. Я считаю, что многие люди готовятся к собеседованиям, как получить понравившееся предложение, попасть на фабрику грез, реализовать свои карьерные идеалы и выйти на уровень состоятельных программистов.
Эта статья в основном знакомитБрат ЛюНесколько очных интервью в январе, (достаточно разовой проверки, чтобы наверстать упущения),!(感谢刘哥的内容提供)
Компании, с которыми было проведено интервью, пока не будут объявлены, пожалуйста, поймите.
Первый (Zookeeper + микросервис + промежуточное ПО для сообщений + дизайн архитектуры с высокой степенью параллелизма)
одна сторона
- Модель хранения данных JVM, структура нового поколения и старого поколения?
- Алгоритм Java GC, когда будет запущен второстепенный gc и когда будет запущен полный gc?
- Что такое GC ROOT в анализе достижимости GC?
- Знакомы ли вы с параметрами настройки JVM и какие инструменты настройки вы использовали?
- Какие типы блокировок есть в Java?
- Опишите поток обработки пула потоков?
- Механизм загрузки класса.Загрузка класса в виртуальную машину состоит из нескольких шагов.Какие из этих шагов фиксированные, а какие нет и почему они не фиксированы?
- Hashmap не является потокобезопасным, а concurrenthashmap — потокобезопасным Как добиться потокобезопасности?
- Какую проблему решает ключевое слово volatile и каков принцип реализации?
- Что такое параллельные контейнеры, разница между параллельными контейнерами и синхронными контейнерами
две стороны
- На работе оптимизация операторов SQL и вопросы, требующие внимания
- Какие библиотеки или фреймворки используют NIO
- Какие методы внедрения есть в Spring, какой из них используется при каких обстоятельствах и принцип реализации ioc
- Как найти медленный запрос, как быстро найти службу с несколькими SQL-запросами
- Знаете ли вы кластеризованные и некластеризованные индексы? Когда использовать кластеризованный индекс и когда использовать некластеризованный индекс
- Какую структуру хранения использует движок Nosql, каковы преимущества и недостатки реляционных баз данных и NoSQL и как выбрать технологию?
- В микросервисной архитектуре, если есть система заказов и система инвентаризации, как можно гарантировать транзакции?
- Вы понимаете плот с протоколом распределенного консенсуса, paxos?
- Протокол ZAB в Zookeeper, основной алгоритм
Три стороны
- Самостоятельное введение
- Участие в параллельных проектах, от проектирования до развертывания, следит за процессом.
- Связанные с проектом Использовали ли вы Redis, в каких сценариях и как?
- Принцип работы механизма синхронизации mysql, какие есть способы синхронизации
- Как реализовать синхронизацию master-slave базы данных и как реализовать транзакции
- Расскажите о своем понимании SOA и микросервисов, а также об изменениях и проблемах, связанных с распределенной архитектурой на уровне приложений.
- Каковы сходства и различия между промежуточным программным обеспечением Alibaba metaQ и его принципом и существующей kafka
- Вы узнали о промежуточном программном обеспечении на Али? Принцип реализации? Каковы характеристики других очередей сообщений с открытым исходным кодом?
- Почему решили сменить компанию?
- Карьерный план на три-пять лет?
- Хочешь спросить меня?
Второй (фантомное чтение + блокировка сегмента + Spring Cloud + шип)
одна сторона
- Краткое введение
- ACID транзакции, который подробно объясняет изоляцию транзакции.
- Грязные чтения, фантомные чтения, неповторяющиеся чтения
- Алгоритмы красно-черного дерева и бинарного дерева
- Какие классы коллекций обычно используются? Разница между ArrayList и LinkedList? Внутренняя структура данных HashMap? Блокировка сегмента ConcurrentHashMap?
- В jdk1.8 какие оптимизации были сделаны для hashMap и concurrentHashMap
- Как разрешить конфликт хэшей, и если есть конфликт, как найти целевое значение в хеш-таблице
- Разница между синхронизированным и ReentranLock?
- Локальный поток? Сценарий применения?
- Механизм Java GC? Что такое корни GC?
- Есть ли тупиковая ситуация для блокировки строк MySQL?
две стороны
- Вы понимаете оптимистическую блокировку и пессимистическую блокировку? Как насчет оптимистичной и пессимистичной блокировки в JDK?
- Стратегия балансировки нагрузки Nginx?
- Вы сравнивали Nginx с другими фреймворками балансировки нагрузки?
- Redis является однопоточным?
- Почему Redis отличается высоким параллелизмом и скоростью?
- Как использовать Redis для обработки горячих данных
- Разговор о Redis Sentinel, репликации, кластеризации
- Какие технологии вы оптимизировали в работе? Расскажите о JVM, MySQL, коде и т. д.
Три стороны
- Что использует Spring Cloud? Как добиться балансировки нагрузки? Как судить, зависла ли услуга в центре регистрации?
- Сетевое программирование nio связано с netty, потоковой моделью netty, реализацией нулевого копирования.
- Что вы знаете о реализации распределенных блокировок? Расскажите о методе реализации в деталях
- Какие технологии необходимо использовать в сценариях приложений с высокой степенью параллелизма? Как спроектировать архитектуру?
- Затем проблема высокого параллелизма, мы говорили о технических приложениях, таких как шипы: kafka, redis, mycat и т. д.
- Наконец, расскажите о проектах, в которых вы участвовали, проектах с высоким техническим содержанием, дизайне соответствующей архитектуры и коде ядра, за который вы отвечаете.
третий
Одна сторона (50 минут)
- Как расширить hashmap и как бороться с конфликтом данных? Как эффективно реализовать миграцию данных?
- Как реализовать разделяемую память в Linux, наверное, сказано немного.
- Программирование сети сокетов, разговор о трехстороннем рукопожатии TCP и четырехсторонней волне
- В чем разница между синхронным вводом-выводом и асинхронным вводом-выводом?
- Механизм Java GC? Что такое корни GC?
- Поговорим о красно-черных деревьях, пяти характеристиках, операциях вставки и удаления и временной сложности?
- Временная сложность быстрой сортировки, наихудший случай, лучший случай, временная сложность сортировки в куче и сложность построения кучи
Две стороны (40 минут)
- Представьтесь, в основном расскажите о том, что вы сделали и в чем вы хороши
- Что вы знаете о шаблонах проектирования?
- Как AtomicInteger реализует атомарную модификацию?
- Разница между ConcurrentHashMap в Java7 и Java8? Почему параллелизм Java8 лучше? Когда использовать --
- HashMap, когда использовать ConcurrentHashMap?
- структура данных Redis?
- Механизм удаления данных Redis?
Три стороны (около 1 часа)
- Как mysql реализует транзакции (MVCC)
- Как реализована синхронизация master-slave данных MySQL?
- Реализация индекса MySQL, индекс innodb, как реализовать индекс дерева b+, зачем использовать дерево b+ в качестве узла индекса, сколько данных хранится в узле, как указать размер и соответствующие страницы диска.
- Если Redis имеет 100 миллионов ключей, повлияет ли использование команды keys на онлайн-сервис?
- Метод персистентности Redis, aod и rdb, как его реализовать, добавлять журналы и файлы резервных копий, знаете ли вы лежащий в основе принцип реализации?
- С какой самой большой трудностью столкнулись? Как преодолеть?
- Каковы планы на будущее?
- Что ты хочешь у меня спросить?
Четвертый (транзакция + кластер + шиповая архитектура)
одна сторона
- Различия и применимые сценарии общих классов коллекций
- Что знают параллельные контейнеры?
- Как узнать, есть ли цикл в связном списке
- Как реализован concurrentHashMap
- Как кластерные серверы совместно используют приложение
- В сетевом программировании JAVA: разница и связь между BIO, NIO и AIO
- Модель памяти jvm jmm знает все о
- Сборка мусора в JAVA, отличие алгоритма маркировки от алгоритма копирования, где используется?
- Разница между http и https, разница между http1.x и http2.0, разница между SSL и TSL
- Разница между GC, G1 и ZGC
- Разница между деревом B+ и деревом B, а также разница между красно-черным деревом
- разница между утечкой памяти и переполнением памяти
- Как долго длится жизненный цикл сеанса
- Что вы знаете о фреймворке Mina? (Я упомянул эту часть, потому что использовал Мину в своем проекте)
две стороны
- принцип java cas
- Какие параметры имеет пул потоков JAVA и какие вопросы следует учитывать при самостоятельной разработке пула потоков?
- Базовая реализация блокировки Java?
- Механизм хранения базы данных MySQL по умолчанию, каковы преимущества
- Уровень изоляции транзакций MySQL, какие проблемы решаются соответственно.
- Четыре таблицы записывают оценки, каждая из которых содержит около 100 000 записей, как найти учеников с лучшими оценками
- Каковы общие алгоритмы балансировки нагрузки
- Если у Redis 100 миллионов ключей, повлияет ли использование команды keys на онлайн-сервисы?
- Метод персистентности Redis, aod и rdb, как его реализовать, добавлять журналы и файлы резервных копий, знаете ли вы лежащий в основе принцип реализации?
Три стороны
- Пожалуйста, нарисуйте схему развертывания кластера распределенных серверов для полноценного большого веб-сайта.
- Приходит несколько запросов RPC, как сервер обрабатывает параллелизм?
- Разговор о дозорном механизме Redis
- Сколько данных требуется для подтаблиц базы данных?
- Как обеспечить согласованность базы данных и кэша Redis
- Как использовать очередь сообщений в проекте? Какие конкретные бизнес-сценарии используются?
- Какие инструменты анализа, связанные с JVM, вы использовали? Существуют ли конкретные шаги по настройке производительности?
- Как оптимизировать медленный SQL в MySQL? Кроме каких еще способов оптимизации?
- Индикаторы онлайн-мониторинга серверов, какие индикаторы, по вашему мнению, требуют наибольшего внимания? Зачем?
- Как проводить стресс-тестирование, антистрессовые методы
- Как разработать модуль seckill
HR сторона
- Самостоятельное введение
- Как бы вы оценили свои предыдущие 3 раунда интервью
- Как вы оцениваете себя и в чем ваша основная компетенция?
- будущий карьерный план
- Как вы понимаете техническую атмосферу Alibaba и какие библиотеки с открытым исходным кодом Alibaba вы использовали?
- Какова ожидаемая зарплата
- Наконец, что вы хотите знать
Интервью Вопрос Ответы
Все, на этом статья заканчивается! Относительно того, почему ответы на вопросы интервью не пишутся напрямую, я хочу сказать, что запись вопросов интервью сделает статью очень длинной (она уже очень длинная...). Это повлияет на читабельность статьи. статья.
Теперь более 1000 вопросов для собеседования по Java и более 400 страниц документов в формате pdf от более чем 1000 компаний были отсортированы по темам.
Существуют также сотни страниц основных знаний Java в формате PDF.
Приветствую всех, чтобы обратить внимание на публичный аккаунт, чтобы получить ответ: PDF достаточно, кстати, пожалуйста, лайкните и подпишитесь! Эй-эй
я Тимо
Верный Java-программист