Недавно весенний набор почти подошел к концу, я нашел несколько фанатов, которые получили предложения от известных компаний, и попросил их обобщить свой опыт интервью, и я отправлю их вам партиями в ближайшее время. Я надеюсь оказать некоторую помощь тем студентам, которые готовятся к осеннему набору.
Автор интервью, которым я поделился с вами сегодня, прошел Spring Recruitment 2018 и несколько раундов технических интервью на JD.com. Ниже приводится краткое изложение его опыта интервью и идей подготовки. Холлис внес только простые изменения форматирования. Надеюсь, это поможет вам.
Формально я начал готовиться с конца года. С идеей попробовать весной я подал заявку на стажировку JD.com Java R&D инженера. Тогда я неожиданно сдал первый и второй письменный тест. кратко изложил свой опыт и подготовку к интервью, надеюсь, я смогу вам немного помочь
Перед собеседованием я составил для себя список, а затем разделил его на недельный план и ежедневный план для прохождения регистрации согласно списку.Хотя я еще не просмотрел все свои списки, я чувствую, что урожай все еще довольно большой.Если вы и я Те же студенты, которые не очень самообладание, также могут составить список, как я.
учебный планежедневные задания
1. Паттерны проектирования* 1 (Я читал «Шаблоны проектирования Dahua», которые легко читаются и понятны. Реализация на C#. За исключением доверенности, остальные отличия не очень большие. Если у вас есть свободные мощности, Вы также можете комбинировать «Рефакторинг» · Улучшение дизайна существующего кода «обучение»)
2. Эффективная Java * 2 (Есть также Практическая Java, которая кажется немного старой, я взял ее и прочитал. Эффективная Java также опубликовала третью книгу, добавив много новых мест. Студенты, хорошо владеющие английским языком, рекомендуют читаю оригинальную версию, но у меня китайская версия плохого уровня)
3. Исходный код класса коллекции*1 (Лучше всего найти период систематического изучения и просмотреть исходный код. Учащиеся, которые кажутся борющимися, могут обратиться к некоторым блогам в Интернете, чтобы понять, не обязательно все детали, но некоторые ключевые моменты, чтобы понять, я В то время я систематически изучал это раньше, а затем я просматривал это каждый день, чтобы не забыть)
4. Алгоритм вопросов * 1 (Leetcode также запустил китайскую версию, или Niuke.com также доступен, мой алгоритм относительно слаб, поэтому я выбрал классический вопрос и почистил его)
5. Ряд вопросов по базовым знаниям (в то время, в период китайского Нового года, все вопросы по Java на Niuke.com были проигнорированы, а более поздние в основном касались проверки неправильных вопросов, а также некоторых баз данных и сетевых множественных ответов). вопросы выбора)
Еженедельное задание
Лучше всего организовать в соответствии с собственным временем каждого человека.В настоящее время лучше всего перейти на последнюю неделю, чтобы просмотреть обзор предыдущей недели, и тогда лучше иметь тему каждую неделю вместо бесцельного обзора.У меня есть несколько привычка, рекомендуется использовать MarkDown или напрямую использовать такие инструменты, как Evernote Youdao Cloud Notes.
Точки обзора
На самом деле, я в основном слежу за ХоллисПуть Явы к БогуОсновы Я подготовил эту статью и несколько дополнительных статей, но то, что я резюмировал, на самом деле является основами Java, JVM, сети, базы данных, структуры данных и исходного кода Java, чтобы быть опытным (на самом деле не для рекламы Холлиса)
Если вы не очень хорошо разбираетесь в подготовке, вы можете найти еще несколько интервью, посмотреть на проблемы других людей и вывести их на сцену интервью.Вы можете составить список своих собственных слабостей, а затем просмотреть свои слабости.
С одной стороны, я получил смс в 6 часов вечера накануне, и попросил меня поехать в Шанхай на собеседование в 10 часов следующего дня, я действительно не ожидал, что пройду письменный тест Думая, что я никогда не участвовал в собеседовании, я пришел на собеседование, чтобы набраться опыта.
одна сторонаЯ: Я немного нервничал на первом собеседовании.
Интервьюер: Если нет ничего, давайте поболтаем между делом, пожалуйста, сначала представьтесь.
Затем серия представлений о себе (представление о себе - это действительно обязательный вопрос, рекомендуется, чтобы каждый студент имел в своем сердце представление о себе, я перемежаюсь несколькими проектами, которые я делал во время университета, и моим собственным исследованием, представляя себя .какие вещи)
В: Вы сказали в своем резюме, что у вас есть прочная основа Java, поэтому давайте сначала поговорим о некоторых основных проблемах Java.
Вопрос. В чем разница между StringBuffer и StringBuilder и как насчет базовой реализации?
A: StringBuffer является потокобезопасным, в то время как StringBuilder не является потокобезопасным.С точки зрения базовой реализации, StringBuffer на самом деле имеет больше модификаторов Synchronized, чем StringBuilder.
В: Какие карты вы знаете?
A: HashMap, небезопасный для потоков, ConcurrentHashMap, безопасный для потоков, упорядоченный TreeMap и WeakHashMap для ThreadLoacl.
В: Почему HashMap не является потокобезопасным?
A: До версии 1.8 HashMap использовал метод zip для разрешения конфликтов, и рисунок объяснял причину, по которой связанный список образовывал кольцо, в версии 1.8 для обработки использовалось красно-черное дерево, и я чувствую, что вероятность конфликта не так высоко (не знаю, правильно ли
Вопрос. Почему ConcurrentHashMap является потокобезопасным?
О: Я говорил о красно-черных деревьях и CAS, и, кстати, упомянул проблему ABA и решение на Java
В: Вы упомянули в резюме, что участвовали в соревнованиях Blue Bridge Cup, тогда напишите алгоритм быстрой сортировки и кратко изложите свои мысли
A: Ручная быстрая сортировка
В: Вы сказали, что используете Git/SVN для полного управления проектами. Как вы обычно используете Git в своих проектах? В чем разница между Git и SVN?
A: Я говорил о разнице, а потом сказал, что Git, который мы используем, не очень полезен, в основном для создания новых веток для резервного копирования, и Feture, который при необходимости сливается с master
Q: Вы знаете что-нибудь о JVM? Кратко представить
A: После разговора о модели памяти, алгоритме сборки мусора и сборщике мусора G1 и CMS считают, что они более важны.
В: Вы когда-нибудь пользовались замком, что вы знаете о пакете JUC?
A: Я говорил об оптимизации блокировок JVM, а также о нескольких блокировках в рамках пакета JUC, которые отличаются от Synchronized
В: Вы используете SpringMVC в своем проекте, можете вкратце рассказать о своем понимании SpringMVC
A: Я говорил о IOC и DI, а AOP говорил о динамических прокси JDK и CGLib, различиях в реализации двух прокси, а затем упомянул некоторые вещи, такие как Spring Data и Spring Security, используемые в проекте.
В: Вы в основном используете Mysql или SQL Server?
A: Mysql, а затем какой движок базы данных используется, я говорил о разнице между двумя движками Mysql, и я упомянул индекс и лежащую в его основе структуру данных.
В: Используете ли вы MyBatis или Hibernate?
A: Hibernate, но MyBatis я знаю сам, и я тоже предлагал сменить проект на MyBatis
В: Почему вы рекомендуете использовать MyBatis, в чем разница между ним и Hibernate?
О: В основном потому, что мне нравится учиться, и я слышал, что многие интернет-компании используют MyBatis, Hibernate более громоздкий и пишет hql, но если пересаживать базу данных, то относительно просто, MyBatis пишет нативные sql-выражения, может быть лучше для крупная компания типа JD.com для удовлетворения собственных потребностей бизнеса, ведь sql все же более гибкий, чем hql
Затем следует ряд проблем, связанных с проектом, которые должны быть разными для всех, перемежающиеся проблемами многопоточности.
Напомните учащимся, что собственных проектов может быть всего два, но необходимо быть знакомым с процессом разработки проекта, а в проектах, которые выходят, должно быть о чем рассказать.
В: Есть ли у вас опыт настройки JVM для решения проблем, с которыми сталкивается проект?
A; Я рассказал о проблеме с утечкой памяти, с которой столкнулся, как использовать JPS Htop и другие инструкции для экспорта стека потоков для устранения неполадок и, наконец, найти проблему.
В: Что вы знаете о Jingdong?
A: (В то время я чувствовал, что не очень хорошо ответил на этот вопрос. Предлагается, чтобы все студенты, которые проходят собеседование, узнали, опубликовала ли техническая команда этой компании какие-либо книги или технические блоги перед собеседованием. , чтобы иметь общее представление о техническом выборе)
В конце первой сессии интервьюер сказал, что у меня прочный фундамент, и меня могут попросить приходить на выходные, а потом я вернусь в школу и буду ждать второго уведомления.
две стороныНа самом деле, о второй стороне сказать нечего. Она кажется проще, чем первая. В основном это касается проектов моего резюме и совместной работы. Наконец, я упомянул, что я недавно изучаю, и я упомянул, интересуюсь ZooKeeper и Kafka. Я усердно учусь, а затем разработал сценарий с высокой степенью параллелизма, что заставило меня задуматься о том, как с этим бороться
В конце второго собеседования интервьюер сказал, что я попытаюсь отправить текстовое сообщение во второй половине дня, но я с нетерпением ждал три или четыре дня, прежде чем получил текстовое сообщение о встрече с отделом кадров.
Я все еще новичок, который все еще учится. Если что-то не так, я надеюсь указать на это!
PS: Эта статья написана фанатами, первоначальный автор: Stupid Twenty. Позвольте выразить нашу благодарность этому замечательному другу.