Заголовок NetEase Meituan Baidu Mianjing | Технические документы Nuggets

Java Байду алгоритм опрос

Перепечатано с:woohoo.now coder.com/discuss/484…

Прежде всего, позвольте мне представиться, владелец Nanjing Zhashuo.По завещанию Yihan, Qiu Zhao в основном поставлял серверные позиции JAVA.Он встречался со следующими компаниями: NetEase + Meituan + Toutiao + Baidu + Huawei + ZTE, и выиграл предложения NetEase и ZTE Approved заранее, Huawei все еще в пуле, Meituan висит со всех сторон, Toutiao висит с трех сторон, а Baidu сегодня днем ​​​​не пошел на две стороны. Некоторые другие компании получили интервью и не присутствовали.

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

Netease с трех сторон: (внутренний толчок)


Весь процесс NetEase достоин длительной подготовки. Перед интервью я почистил несколько интервью с интервьюером, большое спасибо, очень полезно.

одна сторона:
Как только я подошел, интервьюер не попросил меня представиться, а сразу начал вопрос.

  • Базовые типы java и количество занимаемых байтов, ответьте восемь, а так же конкретно укажите тип boolean, 1 или 4 байта, почему?
  • Исходный код какой коллекции вы читали? Хэш-алгоритм hashmap выделен
  • Реализация индекса Innodb
  • Новые возможности jdk1.8 и jdk1.9. Услышав, что арендодатель выглядит сбитым с толку, 1.9 вообще не работает, поэтому он мог только поговорить с ним о некоторых новых функциях 1.8 в сочетании с конкретными примерами, и он был вполне удовлетворен.
  • Структура памяти JVM
  • Объясните шаблон декоратора, ответ - нет, это действительно не было подготовлено раньше
  • Принцип и реализация динамического прокси, нарисуйте модель прокси UML, я сказал, что вы не умеете рисовать, а интервьюер очень хороший, мол вы не компьютерный майор, то рисовать не надо, то и пишите процесс на бумаге.
    Закончив рисовать, я посмотрела на часы в руке и сказала, что уже 20 минут, пора и все кончено. Выйдите и дождитесь уведомления HR на второй стороне.

Вторая сторона:
Проект арендодателя - дизайн системы seckill Интервьюер задает много частичных проектов Интервьюер толстый и симпатичный, хотя и не любит говорить.

  • Расскажите о своем понимании Redis. Когда дело доходит до горячего старта Redis, я никогда не слышал об этом, и я в замешательстве.
  • Как обеспечить согласованность кеша Redis и базы данных во время всплеска?
  • Несколько пользователей запрашивают доступ к пустому Redis в первый раз одновременно, как предотвратить сбой Redis?
  • Сколько контейнеров IOC имеет SpringMVC? Что определяет? Я был немного сбит с толку, поэтому намеренно неоднократно уточнял этот вопрос у интервьюера.
  • Внедрение динамического прокси, рассказ о процессе.

Разные интервьюеры, но они тоже посмотрели на часы и сказали, что 20 минут вышло, а я запаниковала, чувствуя ГГ и не интересуясь мной.

лицо:
Это самое хитрое лицо HR, которое у меня когда-либо было, чувак, все время смотрел мне в глаза и придумывал кое-какие трюки. Представьтесь и пролистайте мое резюме. Весь процесс 40 минут, сумма технических аспектов первых двух туров.

  • Хобби (ответ альпинизм и плавание)
  • Семейная ситуация, история женского билета, история студента по обмену
  • Как вы думаете, какое самое важное качество есть в вас у ваших родителей? Я, например, преувеличиваю.
  • Зачем сообщать об этом hc для интернет-продуктов? Какие продукты вы знаете? Ответ не очень понятен, хочется шлепнуть себя несколько раз
  • Почему некомпьютерные специальности приходят в разработку?
  • Почему стоит выбрать NetEase, почему ее не рассматривают другие компании? Я облажался, меня отругал hr, сказал, что я пустой
  • Какие факторы вы учитываете при выборе работы, факторы ранжирования, такие как местоположение, зарплата, технологии и т. д.
  • Самый большой выигрыш от стажировки, дайте кейс? Как вы обычно решаете проблему?
  • Одна из самых стойких вещей от детства до взрослой жизни, я ответил, что учусь, да, я дурак
  • Интересы и увлечения, повторите (вот набор, посмотрите, не вру ли), вы говорите альпинизм, как часто и где лазить
  • У кого вы сейчас берете интервью? Предложить уборку ситуации?
  • У вас есть какие-либо вопросы ко мне?

Резюме интервью Netease:
9.2 Когда я получил внутренний толчок, я был в смешанном настроении и не мог спать по ночам. Девушка, о которой много лет говорят, тоже учится в Ханчжоу в аспирантуре, и ее усилия тоже окупились, поэтому вчера она решила отправиться на свиноферму, чтобы разводить свиней.
Netease почистила несколько фейсбуков и посмотрела на них, основываясь на собственном опыте интервью. С точки зрения технологии, раунд в основном основан на JDK, если фундамент плохой, он никогда не пройдет. Затем я хотел бы спросить о структуре классов Spring, некоторые функции и исходный код также очень глубоки, и, наконец, это шаблон проектирования, и в сети также есть некоторые проекты. Алгоритм относительно прост, даже если он прост.

Meituan Sifang: (официальный осенний набор)


Одна сторона: (50 минут)

  • Вы так знакомы с коллекциями, какой исходный код вы видели? HashMap, HashTable, ConcurrentHashMap и другие
  • Рассказывая арайлиста, говорить о начальной длине, расширении механизма.
  • Расскажите о разнице между ArrayList и LinkedList, а затем расскажите о высокой эффективности вставки большого количества данных в первую 1/10 часть LinkedList и о высокой эффективности вставки в середине и конце ArrayList и объясните Зачем.
    Арендодатель намеренно ввел потокобезопасный CopyOnWriteArrayList, а затем взорвал исходный код.
  • Вот, позвольте мне показать вам пример:
private
HashMap<Integer,Integer> map =
new
HashMap<>();

Тема первая:

map.put(1,2);  

Тема вторая:

map.put(1,3);

Два потока для выполнения части кода

if(map.get(1) == 2) 

выход...

if(map.get(1) == 3) 

выход..

Спросите, что произойдет, когда поток 1 и поток 2 закончат выполнение вышеуказанного?
Я ответил, что может быть покрытие, которое связано с порядком выполнения.Как решить, я сказал, что карта украшена замками? Хорошо, есть что-нибудь еще, подумай еще раз, подумай об этом? ?
После долгих размышлений я так и не придумал.Он сказал, разве ты не слышал о ThreadLcoal? Меня вдруг просветлело, поэтому я начал отчаянно объяснять реализацию принципа и возможную проблему с утечкой памяти, и путь спасения был пройден.
Давай, ответь на несколько вопросов. Чувствуя себя смущенным, я смотрел, как он вытаскивает лист бумаги из стопки бумаги на столе, два вопроса
(1) Две таблицы, проверьте отношения связи, напишите оператор SQL, домовладелец неправильно набрал сумму в качестве подсчета, смущает, SQL слишком длинный, он должен быть неправильным, но интервьюер не прочитал его внимательно, тайно счастлив.
(2) Чтобы найти наименьшее число M среди N чисел, используя идею разделения быстрой сортировки, временная сложность O (n), и я объяснил это интервьюеру три раза, но он все еще не понял. , так что я оглянусь назад. . . .

Вторая сторона:
Сумасшедший, чтобы задавать вопросы о моем проекте. немного смущен

  • Как сделать конкретные детали шипа? Где основная технология seckill? Как вы это гарантировали?
  • Как решить проблему перепроданности? Расскажите о транзакционных особенностях Spring
  • Давай, поговорим о твоем понимании Redis, зачем использовать prostuff вместо традиционной сериализации?
  • Давай, продолжим алгоритм. Дайте числовую строку строкового типа, такую ​​как «1026», диапазон 0000-9999, и напечатайте традиционную строку чтения ----- «Одна тысяча ноль два Ши Лу»
  • Посмотрите, знакомы ли вы с мультипараллельностью, давайте, несколько потоков одновременно обращаются к одному и тому же блоку кода, я хочу знать, когда завершается выполнение последнего потока и как это сделать. Ответ CountDownLatch.

Три стороны:
Раньше у моих одноклассников было только два собеседования в этот день, и на следующий день они продолжили собеседование.Я была настолько ошарашена, что меня втянули после того, как я вышла.Я сказала, что хочу в туалет, а интервьюер улыбнулась и решила это за две минуты.
Когда я вошел, интервьюер продолжал печатать на компьютере и сказал, давайте придумаем для вас алгоритм, это очень просто и легко, на душе тепло.

  • Правила, определяющие равенство двух строк: (1) без учета регистра; (2) символы в s1 должны быть в s2; (3) символы в s2 должны быть в s1. Проверить, равны ли две строки.
    Написано быстро, без помощи места, после прочтения дайте реализовать с картой, временной сложностью O(N), балабала. . .
  • За какую часть отдела вы являетесь стажером в основном отвечаете? Какую деталь вы сделали сами? Объясните подробно?
  • Почему вы не хотите заниматься большими данными, а вместо этого занимаетесь java-разработкой? Ответ на эту часть очень скудный, я когда-то был дураком, ничего страшного, и есть люди, которые продолжают быть дураками.
    Где вы хотите остановиться в будущем? Я сказал, что и в Нанкине, и в Шанхае все в порядке, но в свою очередь спросил меня, в Нанкине менее чистый Интернет, и я особо упомянул Сяту Ню.
  • Пришла замечательная вещь, он спросил меня: «Тогда почему ты только что сказал, что в Нанкине тоже все в порядке?» Я... я... я... начал сохранять, не удалось сохранить.
  • Ты спрашивал меня? Самое глупое здесь:
    Я сказал, что иногда, когда я использую приложение Meituan для поиска определенного места, магазин, который я хочу найти, не отображается. Мне так жаль спрашивать об этом.
    В режиме неловкого чата я то и дело объяснял, что такие вопросы задавать нельзя, да это и бессмысленно, интервьюер то и дело говорил, что все в порядке, это не наш отдел делал, может у них баги были или не учли . .

час поверхности:
Еще один мужской час, все время улыбающийся, хе-хе.

  • Давай, парень, позволь представиться.
  • Какие предложения у вас сейчас есть?
  • То, что у вас есть, хорошо, почему вы решили приехать в Шанхай? Знаете ли вы текущую рыночную стоимость Xinmei Da?
  • Ваша самая большая слабость и сила? Я ответил, что, может быть, я немного нетерпелив и не выношу ритма окружающих меня людей.
  • Я плохо ответил на два вопроса и почувствовал себя неловко:
    (1) Ваш коллега откладывает дела на потом, как вы решаете эту проблему? Не говорите об общении, общение неэффективно
    (2) Ваш начальник из тех, кто откладывает дела на потом. Как вы решаете эту проблему? Не говорите об общении, общение неэффективно

Вчера вечером были опубликованы результаты. Многие люди, которые занимались HR, получили предложения, и я чувствовал себя немного несчастным. Это правда, что мой EQ немного низок, и мне все еще нужно учиться. Но хорошие друзья прошли, очень счастлив.

Три стороны заголовка: (формальный осенний новобранец)


Одна сторона: (26 минут)

  • синглтон
  • В частности, объясняется изменчивый запрет механизма упорядочения инструкций и объекта нового процесса.
  • Самая длинная убывающая подпоследовательность массива записывается динамическим программированием, что относительно просто.
  • Режим связи процесса уровня изоляции транзакций базы данных

Одна сторона заняла всего 26 минут, и ответ был в порядке, мой брат попросил меня немного подождать, а затем продолжил со второй стороной, а затем с видео.

Вторая сторона: (60 минут)

  • Где хранится запас предметов seckill?
  • Как обеспечить согласованность Redis и нескольких потоков БД, одновременно обращающихся к пустому Redis, как решить (эти две проблемы точно такие же, как у NetEase)
  • Неубывающая последовательность находит первую позицию больше x, а временная сложность требует lgN (деление пополам)
  • Строка, полностью состоящая из чисел, чтобы найти количество подстрок последовательности символов, которые могут делиться на k, требует O (N), что немного сложно, не все A
  • Разница между cookie и сеансом, разница между get и post
  • Введите URL-адрес в URL-адрес, серию процессов
  • Код состояния, скажи мне, если ты его знаешь
  • Одно ядро ​​ЦП может обрабатывать только одну инструкцию за раз, да или нет? Процессор с 8 ядрами может обрабатывать только до 8 инструкций одновременно, да или нет?

Напоследок брат спросил меня про знание виртуальной машины JAVA.Он не понял.JAVA в последнее время многие занимаются,поэтому могу временно выучить. Так я начал запоминать текст.

Через час после второй встречи вечером мне позвонили из HR и сказали, что вторая встреча закончилась, и я очень счастлив.

Три стороны:(80 минут)

  • Принцип блокировки на уровне операционной системы (ответов так много, на самом деле интервьюер хотел, чтобы я ответил на три слова атомарность...)
  • Многопоточность и многопроцессорность сценариев использования Принцип CAS, написан низкоуровневый исходный код
  • mac адрес и ip адрес, ерунду пишите
  • Почему уровень IOS7 стал 5-уровневым и почему он должен быть многоуровневым?
  • Дан массив (все числа от 0 до 9), могут быть дубликаты, выбрать свободную комбинацию чисел, задано число k, найти наименьшее число больше k (возврат), не закончено, это ошибка, половина часов, после долгого обсуждения с интервьюером, интервьюер также напомнил мне использовать возврат, но я слишком хорош в этом.

Через полчаса hr позвонил и извинился, GG, но я получил текстовое сообщение от Netease, так что это не имело значения.

Байду:


одна сторона:(Первоначально это было в 2 часа дня, но позже я подумал, что не простужен для Шанхая, поэтому сдался)

Младший брат Baidu действительно супер хорош. В гостиничном номере, как только я открыл дверь, я встал, чтобы поприветствовать меня, улыбаясь, очень удобно. Следующие писания.

  • Само введение.
  • Вы сказали, что знакомы с основами Java, тогда расскажите о разнице между int и Integer. Я специально объяснил распаковку, некоторый исходный код Integer и применение дженериков.
  • Механизм рециркуляции JVM начинается с оценки смерти объектов, GC Roots, Stop the World, преимуществ и недостатков алгоритмов рециркуляции и упоминает недостатки подсчета ссылок.
  • Если объекту присваивается значение null в JVM, будет ли он переработан? Например, утечка памяти.
  • Как обеспечить безопасность записи файлов в процессе? Я не знаком с этой операционной системой, поэтому упомянул базовую реализацию ReadWritelock в JAVA.
  • Ладно, приступим к алгоритму. Найдите первую букву в строке только с одним вхождением, например abcdab, вывод c, два метода
  • Два массивных вопроса о данных:
    (1) Два файла, хранящие 5 миллиардов URL-адресов соответственно, каждый URL-адрес составляет 60 байт, а память - 4G. Найдите объединение двух файлов.
    (2) Файл, в котором хранится 4,5 миллиарда отсортированных 32-битных целых чисел, найдите целое число, которое встречается более одного раза, и просто найдите его. Ответил после подсказки.
  • Головоломка: Мешок со 100 шарами может взять только 1-5 шаров за раз. Два человека, A и B, берут ничью. Выигрывает тот, кто вытащит последний. Вытягивает A первым. Как гарантировать, что A выиграет.
  • Почему не два из трех рукопожатий? Почему не в четыре раза?
  • Процесс ввода адреса веб-сайта для веб-сайта, давайте подробно поговорим о процессе разрешения DNS.
  • Разница между get и post, сообщение должно быть безопасным? Как решить проблему перехвата данных для входа?
  • Логин Taobao - это метод получения, как обеспечить безопасность?

Еще раз, младший брат Baidu действительно хороший.Когда я уходил, я встал и отослал меня, большое спасибо. Я не жалею, что сейчас не пошла на вторую сторону.

Две стороны Huawei (отличный ход):


одна сторона:
Все студенты, которых я расспрашивал, были проектами. Я вернулся в Нанкин со стажировки в Шанхае, поэтому я не готовил основы. Я немного подготовился к проекту. Однако верно и обратное.

  • Разница между HashMap и Hashtable, я специально упомянул, что алгоритмы хеширования разные, и их соответствующие принципы алгоритмов, и спросил: почему они разные? Почему Hashtable не использует HashMap?
  • В каких аспектах оптимизирован HashMap1.8?
  • Напишите одноэлементный шаблон. Давно не писал, забыл, проверка на двойную блокировку была написана не в двух местах, и было указано, смущает
  • Напишите бинарный поиск. Интервьюер спросил меня, вы уверены, что массив отсортирован (я молчу), и не надо ли судить, не пуст ли массив (я подаю)?
  • Какие замки вы использовали? Разница между синхронизированным и реентерантным замком
  • Расскажите о нижнем уровне reentrantLock и реализуйте API.
  • Хозяин немного придурок.Он говорил о ThreadLocal и спрашивал об этом сумасшедшем.Я также могу рассказать о базовой реализации.Спросите об истории использования,как его использовать? Я немного смущен, я забыл
  • Базовая реализация CopyOnWriteArrayList
  • Алгоритм повторного использования JVM, когда я выучил половину, я прервал его и сказал, что знаю, что вы его запоминаете для интервью, но я забыл его через несколько дней.
  • Разница между мажорным гк и полным гк, мой мозг прокачали, я сказал обратное, меня презирали
  • После стольких разговоров о виртуальной машине вы ее настроили? Как настроить. . . сбитый с толку

Вторая сторона:(20 минут)
С одной стороны, я плохо отвечал на основные вопросы, а с другой стороны, интервьюера я тоже не интересовал.

  • Представившись, я взял свое резюме и сказал, что в нем три проекта, давай, выбери один проект, который ты считаешь самым классным, и расскажи о нем.
    Нарисуйте конкретную структуру и функциональные модули. Пока я рисовал, он печатал на компьютере, а потом практически не читал, что я написал.
  • Что вы думаете о Хуавей?
  • Почему вы выбрали Хуавей? Что вы больше всего цените в Huawei?
  • Что ты хочешь у меня спросить?
  • После того, как лицо было закончено, мое сердце было пустым. Накануне были однокурсники, которые говорили о зарплате прямо с интервьюером на втором собеседовании. Я думаю, что, возможно, встретил фальшивого интервьюера. Java действительно очень хорошо понимает и задает очень глубокие вопросы. Этот случай говорит мне не использовать это в своих интересах. Наденьте все штаны.

ps:Хуавэй немного хорош в этом году.Результаты собеседования отмачивались в пуле больше двух месяцев.Когда вы дадите письмо-одобрение?

ZTE с двух сторон (согласовывается заранее):


Облачные вычисления, в которых я участвовал, были одобрены заранее, и я чувствовал, что организация интервью была немного грязной. Добавьте до 20 минут.
Технических вопросов относительно немного, поэтому я представлю проект, а затем выскажу свое мнение о сверхурочной работе. Есть две странные проблемы:
(1) Если бы Huawei и ZTE прислали вам предложение одновременно, на какое из них вы бы пошли?
pa: Некоторых студентов спросили, NetEase и ZTE, Ali и Xing, что вы выберете? Почему? Пришло время проверить вашу способность лгать, не лизать слишком много, не быть очень глубоким
(2) Если интерфейсный модуль в проекте разработан другим отделом и есть проблема, а у другого отдела нет времени на ее решение из-за серьезности вопроса, как вы ее решаете?
Это сказал начальник бэк-отдела, а потом они представляли свою продукцию по телефону на протяжении всего процесса, я не тратил на разговоры больше одной минуты. Добавлен час WeChat.

Наконец, я подведу некоторые итоги технического процесса арендодателя, чтобы изучить JAVA.

  • Основа языка JAVA:
    Базовые типы Java, ссылочные типы, полиморфный нижний слой, общий нижний слой, механизм отражения и т. д.
    Исходный код версии класса Common Collection 1.7/1.8
    Рекомендуемые книги: Идеи программирования на Java, Эффективная работа с JAVA (глубоко)

  • Многопоточное параллельное программирование:
    Исходный код параллельного пакета надо видеть, там есть следующие моменты:
    Пул потоков, блокирующая очередь, неблокирующая очередь
    Использование различных блокировок, оптимизация
    атомный
    Параллельный безопасный контейнер
    Рекомендуемые книги: Высокопараллельное программирование на Java (поверхностное), Практика параллельного программирования на Java (глубоко).

  • Виртуальная машина Java JVM:
    Область памяти Java, OOM
    алгоритм сборки мусора, сборщик мусора
    механизм загрузки классов, загрузчик классов
    Механизм выполнения байт-кода виртуальной машины (перезапись перезагрузки нижнего уровня и т. д.)
    Модель памяти Java JMM
    Рекомендуемые книги: глубокое погружение в виртуальную машину Java

  • Структуры данных и алгоритмы:
    Общие стеки, кучи, связанные списки, бинарные деревья, деревья B/B+, кучи (меньше картинок)
    Общие алгоритмы сортировки: всплытие, выбор, вставка, быстрая сортировка, сортировка кучей, слияние (последние три основные функции эффективны) (Хилл, топология в основном не задается), наихудший случай
    Рекомендуемые книги: Big Talk Data Structures (язык не проблема)
    Вопросы по кисти: настоятельно рекомендуется предложение Jianzhi (много оригинальных вопросов для интервью), книга Цзо Чэнъюня по алгоритмам - Code Interview Guide for Programmers, вы можете почистить вопросы по leetcode, когда у вас есть время, и пропустить сложные вопросы

  • Веб-фреймворк рекомендует изучить Spring.Этот Netease Ali Meituan спрашивал у многих воров.Кстати, вы сегодня читали исходный код Spring?

  • Существует так много шаблонов проектирования, что рекомендуется ознакомиться со следующими: синглтон, шаблон прокси, фабрика (три типа), адаптер, декоратор, стратегия, наблюдатель и т. д.

  • Хозяин TCP/IP и операционной системы не обладает достаточными знаниями, поэтому в последующих действиях требуется дополнительное понимание.

Наконец, я дам вам предложение. Если вы столкнетесь с проблемами и не поймете точки знаний, вы можете найти более мощные блоги. После прочтения вы должны усвоить его и написать в блоге. Все еще очень полезно возьми это для интервью позже~~

Осенний набор не прост, раз в жизни каждый обязательно получит большое предложение, которое он хочет больше всего, давай вместе~! ! !~~! ! !