Последний опыт собеседования по Java в январе 2020 года (достаточно разовой проверки)

Java

предисловие

Сейчас 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-программист