предисловие
С момента интервью прошло больше месяца, а я до сих пор помню 80-90% вопросов интервью. Незадолго до фестиваля лодок-драконов я уволился с предыдущей работы и воспользовался выходным, чтобы подвести итоги интервью. Главное записывать вопросы.Ответы не написать в двух словах.В интернете довольно много статей очень хороших,поэтому эта статья не будет расширяться.
стек технологий
java
, golang
, js
, python
В основном первые два.
Резюме интервью
- Другие лидеры команды Java
- Другие руководители команды Golang
- Лидер команды
- Лицо директора
Причина, по которой я помещаю резюме интервью вперед, заключается в том, что у меня нет опыта написания статьи в первый раз. Интервью длилось 4 часа и 4 раунда. Я вспомнил, что ответил примерно на 90~95%, и общее ощущение в порядке. У меня сложилось впечатление, что эти интервьюеры очень профессиональны, качество вопросов довольно высокое, а люди очень приятные.
Это интервью похоже на то, чтобы посмотреть в зеркало, чтобы узнать свои недостатки, а затем вам нужно укрепить свои навыки. Усильте возможности алгоритма. Разобраться с исходным кодом.Усердно работайте, чтобы использовать каждую возможность.
Я вернулся к вч из сз 2 года назад и тогда я почувствовал пользу от сз. Он относится к ретроспективному типу. Увидев, что мои бывшие коллеги из UF хорошо танцевали один за другим (Ali, Tencent, Ali, Baidu, Jingdong, Meituan, Netease и т. д.)荒野求生
.
У меня нет никаких увлечений.В последние несколько лет, кроме игр и изучения технологий, я никогда не думал о стремлении к жизни, но в последние шесть месяцев я думал о жизни, и вдруг я знаю, что я хочу (мне двадцать восемь и девять лет и я побегу к третьей, которая тоже королева-мать. После осознания этого)
Рассчитать данные по статистике
За 19 лет проголосовал 50+, получил 4 и получил 2. . Большинство не отвечает.
В 2017 году за кого проголосовали более 10 раз, получил 7 из них и получил 4 из них. (Позже по какой-то причине я отказался от предложения iFLYTEK и выбрал определенную компанию)
Не могу вспомнить сз данные с 12 по 16 лет. Хотя я слабый цыпленок, я чувствую, что работу легко найти. (16 лет ст)
Итак, что в 2019 году действительно удивительно. Однажды я заподозрил, что резюме слишком водянистое. Я отправил его своим друзьям, чтобы убедиться, что с ними все в порядке и нет проблем. Могут ли это быть трудности с наймом, вызванные торговой войной Трампа? 【Улыбка】
Как сказать название этой статьи
Расскажи настоящий анекдот, некоторое время назад я столкнулся с должностью архитектора небольшой компании в wh. Сцена: 4 человека лицом ко мне одновременно, большой стол, кабинет генерального директора
Генеральный менеджер: Вы хотите заниматься продажами?Вы занимались продажами раньше?
Я: Стыдно говорить, что заниматься продажами слишком сложно, у меня нет способностей. ([Черный вопросительный знак] Почему вы говорили со мной об этом в первую очередь? Я выгляжу таким неквалифицированным? Я отправил десятки резюме. Я рад прийти сюда и сказать мне это? Значит ли это, что я серьезно? ? )
Генеральный менеджер: О! Ваша компания производит метизную продукцию! (Я написал проект робота НЛП в своем резюме)
Я: «Это программный продукт» (какого хрена, старший брат, у тебя серьезное непонимание меня.)
Гендиректор: Тогда пусть технический директор выйдет на встречу (по оценкам, он ударит в грязь лицом)
начать техническое
Он: Расскажите нам о своем проекте
Я: Представляю предысторию определенного проекта, рассказываю, для чего нужен следующий проект, кратко упоминаю стек технологий, около 5-6 минут, потому что нам нужно взаимодействовать, поэтому я не могу слишком долго говорить один.
Он: Для чего используется GRPC, почему бы вам не использовать для этого http restful?
Я: Удаленный вызов На основе http2 существует 4 метода вызова.Протокол сериализации использует protobuf (я думаю, что так много контента, что вы можете спрашивать по одному)
Он: Ладно, я закончил с техникой.
Генеральный менеджер добавил несколько заключительных вежливых замечаний: Интервью окончено.
[WTF Это конец? 】 Это меньше 15 минут? Меня просто так выгнали? О да [улыбается]
хорошо, чтобы подвести итогиНаконец-то получил техническоеЧувства к написанию этой темы.
Ява с одной стороны
В основном принцип базовой основы Java
- деталь
线程池
Каковы применения методов строительства,ctl
,allowCoreThreadTimeOut
Роль переменных, фаза инициализации, большое количество поставленных задач и все выполненные задачи — это процесс написания. (addWorker
Процесс и другие части ответили хорошоrunWorker
getTask
На некоторые детали не очень хорошо ответили. Пул потоков — это проблема, которой Java не может избежать.В Интернете есть много ответов, которые не будут подробно описаны. ) -
HashMap
структура данных,resize
Процесс, какие проблемы возникнут при выполнении многопоточных операций, какие изменения в 1.7 и 1.8, так как упоминается红黑树
Итак, давайте поговорим об этом иBST
,AVL
В чем их особенности и отличия?Поговорим о процессе балансировки (ок. Это основное содержание многих ответов в интернете, поэтому не буду вдаваться в подробности) - Давай поговорим дальше
concurrenthashmap
Разница между 1.7 и 1.8 в том, как обеспечить потокобезопасность (хорошо) - Поток имеет несколько состояний,
sleep
wait
разница (хорошо) -
synchronized
Lock
Разница, принцип работы синхронизированного заголовка объекта, оптимизация блокировок в JVM, давайте поговорим о параллельном AQS, честных блокировках, нечестных блокировках, блокировках чтения-записи, CAS и лежащей в их основе небезопасности (окей) -
JVM内存结构
, Какие из структур кучи памяти совместно используются потоками?Использовали ли вы команду javap?Объедините эту команду и расскажите о своем понимании каждой области памяти JVM. Связано с тюнингом. (в порядке) - чат
GC
,可达性分析算法
, какие объекты можно использовать в качествеGC ROOT
, по характеристикам нового поколения и старого поколения, какие алгоритмы сборки мусора им подходят. Сравнивать标记清除
и标记整理
. (в порядке) -
类加载器
,双亲委派
,安全沙箱机制
(в порядке) - Давайте поговорим об ИО,
BIO
,NIO
,IO模型
, Как jvm реализует NIO (хорошо. К счастью, я уже просматривал код JVM на c++ до этого. Я не буду вдаваться в подробности о мультиплексировании и неблокировке. Говоря о нескольких ключевых моментах, модель IO относится к в «Сетевое программирование Unix».select
,poll
,epoll
.fcntl
) - Проект чата Balabala включает в себя множество проблем. Последовательный алгоритм хеширования, распределенные вещи, практика Service Mesh, rabbitmq (в основном все в порядке)
-
TCP滑动窗口
Механизм АСК. (в порядке) - zuul, hystrix, принцип работы faign, принцип работы springmvc (хорошо)
- Приведите пример паттернов проектирования, используемых в spring (хорошо, у Nuggets есть эта статья)
- спецификация использования git, gitflow (хорошо)
- Вопросы, связанные с даббо (хорошо)
две стороны голанг
- Модель параллелизма Голанга (общие ответы M, P, G)
- Давайте поговорим о маршрутизации исходного кода gin, группе, промежуточном программном обеспечении и шаблоне проектирования (реализация маршрутизации использует дерево префиксов, этот ответ не подходит, другие в порядке)
- Есть 4 способа вызова grpc.Вы видели исходный код клиентской версии grpc golang --> server.Расскажите мне о процессе. протокол protobuf, оптимизация производительности GRPC, http2 (ок, это впечатление осталось в предыдущей компании)
- Принцип шапки, подбор АП или КП в регистрационном центре.
- Что такое CAP etcd? Что такое алгоритм согласованности данных etcd? Подробно опишите протокол raft, что происходит после изоляции раздела и как обеспечить согласованность данных после восстановления изоляции? (ладно, перед тем, как говорить о рафте, я говорил о Паксосе, а потом привел Рафт для сравнения, а потом начал рассказывать о различных ситуациях рафта. Очень рекомендую съездить посмотреть его.плот.GitHub.IO/)
- Если вы видели исходный код, давайте поговорим о gomicro (поговорим о том, для чего подходит каждый компонент, и поговорим о том, какие микросервисы используются в нашем проекте. Предыдущий стек технологий gomicro продвигал я, поэтому отвечу здесь. Все в порядке.)
- Давайте поговорим о том, как работают ваши микросервисы, когда вы не используете gomicro (реализация стратегий балансировки нагрузки, таких как etcd, продление аренды, понижение уровня обслуживания, ограничение тока, автоматический выключатель, кеш, согласованный хэш и т. д., найденные в реестре, GRPC, golang) Версия rabbitmq client & reconnect после отключения. В отличие от spring cloud или gomicro, многие готовые можно использовать вручную. Конечно, это делается моей командой вместе, и я многое приобрел в процессе, так что не исключайте изучение другого языка или стек технологий имеет свойство открывать окно самому себе)
- стресс-тест golang pprof, график пламени и обсуждение точек улучшения производительности архитектурного вывода в сочетании с проектом (ОК)
- Структура вашего проекта и управление зависимостями (хорошо, я должен пожаловаться, что godep и glide действительно не так просты в использовании, как maven)
- С какими ямами вы сталкивались (ямы возникающие в процессе использования etcd, утечка сопрограмм, вызванная неправильным использованием и как этого избежать, смотреть, сдавать в аренду, сжимать пространство и т.д.)
- Что вас впечатлило в использовании golang (сопрограммы, chan, select очень полезны, отложенные, panic&reverse)
- Спецификация кодирования Golang, спецификация журнала (здесь очень важно упомянуть спецификацию, у меня есть глубокое понимание рефакторинга при развитии архитектуры, но нет единой спецификации, такой как спецификация Java Ali, и нет официальной рекомендации по субподряду. метод разделения каталогов, поэтому Google затем сформулировал внутреннюю спецификацию команды, основываясь на собственном опыте.Позже выяснилось, что у Nuggets была статья, которая вызвала резонанс и полностью с ним согласовывалась.draveness.me/golang-101Структура журнала не так важна, как использование slf4j непосредственно в Java. Она так же важна, как log4j2 или logback. Если вы выбираете, вы решаете использовать logrus. Студенты QL команды настраивают его в соответствии со своими потребностями.)
трехсторонний всеобъемлющий
- Принцип работы Kafka, нулевая копия, принцип работы координатора группы, вопросы, связанные с зачетом
- Отслеживание ссылок SkyWalking, возможности и принципы реализации zipkin, исследование Java
- Блокировки MySQL, индексы, транзакции, оптимизация больших объемов данных
- Структура данных ziplist модели потока Redis, схема сохранения процесса резервного копирования моментального снимка rdb (копирование при записи - плохой ответ, я знаю только копирование при записи в Java, конкретная операция процесса разветвления Linux не ясна). Стратегия ликвидации, проникновение в кеш Крупномасштабное решение для аннулирования
- Вопрос об алгоритме рукописного кода предполагает, что есть два оператора * и - *, представляющие ×2, представляющие вычитание на единицу, что дает вам два числа a, b требуется вычислить минимальное количество шагов, чтобы получить b из a с помощью этих двух операций (хорошо ,алгоритм не Моя сила,я не задавал этот вопрос,когда чистил алгоритм,но он относительно прост.На его написание ушло секунд 10 и несколько минут.Он не полный.Расскажу об идее и используйте бинарное дерево, чтобы сделать это.)
- Расскажите об интересующей вас технологии и будущем направлении развития (технические аспекты)
Режиссер четырех сторон
Не вдаваясь в подробности, это следующие вопросы
Я также задавала несколько вопросов о планировании карьеры, почему я сменила работу, хобби, узнала о своей личности и провела самооценку своего предыдущего опыта работы.
После завершения интервью вернитесь и дождитесь уведомления отдела кадров.
наконец получил предложение
Этот двухлетний опыт подытожен одним предложением.
Правильно, нельзя недооценивать человека.
Напоследок желаю остальной команде убогого развития.