Сначала я планировал пройти собеседование в аутсорсинговой компании, чтобы освежить опыт.После того, как опыт будет почти таким же, я пойду в Сторону А, чтобы попробовать.К сожалению, это не гладко..
1. Макс (30 минут интервью)
-
Самостоятельное введение
-
Левое соединение (таблица слева присоединяется к таблице b, все данные в таблице выходят, а данные в таблице b пусты)
-
Таблица a остается подключенной к таблице b, таблица b остается подключенной к таблице c, а таблица c остается подключенной к таблице a, что это за данные эти данные (блогер немного запутался в время, отвечая на полное соединение, все данные выйдут...)
-
sql: У студентов в классе есть два поля, одно поле называется score, другое поле называется именем группы, всего 4 группы, узнайте первое место в каждой группе, как написать sql
select group_name,max(score) from table group by group_name order by group_name
5. Какие есть механизмы баз данных (myIsam, InnoDB и т. д.)
-
Разница между myIsam и Inno DB (InnoDB поддерживает транзакции, внешние ключи, аварийное восстановление, блокировки на уровне строк InnoDB, блокировки на уровне таблиц myIsam)
-
Преимущества myIsam (блогер вспомнил только о преимуществах InnoDB в то время, но интервьюер спросил о преимуществах myIsam, который работает быстро и занимает меньше места на диске)
-
Две функции Spring (IOC и aop, какие шаблоны проектирования используются в этих двух функциях)
-
Контейнеры, коллекции java
-
Реализация hashmap (массив + связанный список + красно-черное дерево)
-
Ставим ключ и значение, как определить индекс массива, если два ключа ставятся на одну позицию, что делать? (Рассчитать хеш-значение по ключу, определить индекс по хешу и т. д.)
-
Является ли HashMap потокобезопасным? Какие есть реализации? (Нет, потокобезопасный может использовать хеш-таблицу, concurrentHashMap и т. д.)
-
Как concurrentHashMap обеспечивает безопасность потоков? конкретная реализация? Как два потока помещают два ключа одновременно?
(1.7 массив + связанный список, блокировка сегмента, 1.8 массив + связанный список + красно-черное дерево, cas+синхронизировано)
- Как сортировка коллекций Java (сортировка в потоке) реализована внутри? Каков принцип? О каких видах вы узнали?
(Сравнительный и КомпараторСсылка на ссылку)
-
группировка коллекции java (groupingby(object::property))
-
Функциональные методы (интерфейсы), при каких условиях их можно использовать? Это относится ко всем? Или есть определенные ограничения?
-
Фоновые запросы относительно медленные, в чем основная причина? Фоновый запрос прям завис, как исправить, а лог не пишет об ошибке? (Проверьте медленный sql, который требует много операций)
-
Как проверить журнал блокировки и журнал потоков? (не знаю этого)
-
Общие пулы потоков, что это за пулы потоков? (newCachedThreadPool, newFixedThreadPool, newScheduledThreadPool, newSingleThreadExecutor, сейчас 6 пулов потоков, точно не помню)
-
java-блокировки и вкратце поговорим о блокировках, именах классов, ключевых словах, реализациях блокировок и т. д.
-
Вы использовали кеш Google guava? (Не используется)
-
Каковы сложности реализации проекта и как вы это сделали? (ответ по вашей ситуации)
2. Технология Кинни (Сторона А)
В прошлом интервью было 8 часов вечера в пятницу.
Одна сторона: час (менее 10 минут)
Простое представление о себе, какие требования к технике и зарплате, причины смены работы, оцените себя, компания много работает сверхурочно, спросите, можете ли вы это принять
Вторая сторона: технология (менее 20 минут, ответ немного скудный)
-
Разница между симметричным шифрованием и асимметричным шифрованием
-
Атаки с использованием междоменных сценариев (о некоторых я не слышал)
-
Уровень изоляции базы данных (чтение не зафиксировано, чтение зафиксировано, повторяемое чтение, сериализовано)
-
Что такое неповторяемые чтения и фантомные чтения? (a многократно считывает одни и те же данные, b изменяет данные, а считывает их снова, что является неповторяемым чтением; a изменяет некоторые данные, b вставляет часть данных, a обнаруживает, что есть еще одна часть данных. что не было изменено, то это фантомное чтение)
-
Что такое тупик? причина? Как это решить (соревнование за один и тот же ресурс, четыре условия, уничтожение четырех условий, на этот вопрос нет хорошего ответа)
-
ЦП сервера 100%, как проверить (ps для просмотра процесса, ответ не очень, все-таки исследований в этой области нет. Хотя компания тоже сталкивалась со 100% ЦП, решение - бан функция mrp, которая требует много вычислений. Удалите ее, добавьте память позже, добавьте сервер. Я не могу сказать правду об этом)
-
Для чего можно использовать nginx (балансировка нагрузки, обратный прокси, интервьюер продолжает спрашивать что еще, не знаю что, я сказал может перехватывать ip и т.д.)
-
что такое кас? (Реализация оптимистической блокировки вызовет проблему aba, добавьте номер версии или отметку времени)
-
Механизм сохраняемости Redis, преимущества и недостатки rdb и aof (полное резервное копирование данных, низкий уровень безопасности, длительный интервал резервного копирования; инкрементное резервное копирование данных, безопасность данных, большой размер файла)
-
Spring асинхронная аннотация (не используется)
-
Расскажите о механизме загрузки классов
-
Разница между утечкой памяти и переполнением памяти
-
Я задавал другие вопросы, я не помню
-
Расскажите о проекте, как вы это сделали
3. Osa Medicine (Сторона А, интервью длилось около 35 минут)
Я увидел девушку и спросил дорогу, такая хорошенькая
После входа заполните информацию, заполните информацию и задайте вопросы
-
Общие движки mysql, различия (InnoDB: поддерживает транзакции, внешние ключи, блокировки строк, поддерживает восстановление после сбоя, интервьюер также спросил, почему это можно восстановить. Myisam: блокировка таблицы, полнотекстовый индекс)
-
Каковы оптимизации sql, часто используемые индексы (какие поля запрашиваются, не используйте «%» после *, null, как и т. д.)
-
Каков процесс выполнения оператора sql? Как анализировать объяснить
-
Если есть данные 100w, я хочу данные после 600 000-й строки, как это оптимизировать (использовать лимит, добавить индекс, интервьюер слишком извращен, очень медленно спрашивает, что делать)
-
Что такое Redis и почему он более популярен, чем mongodb? (Нереляционная БД, на основе памяти и т.п., почему она популярна, этого я не знаю, потому что не знаю mongodb)
-
Что такое нереляционная база данных и чем она отличается от реляционной базы данных? (не правильно ответил)
-
Помимо памяти и высокой скорости чтения, какие еще причины делают Redis быстрым? (не правильно ответил)
-
Часто используемые типы данных, сценарии применения (String, List, Set, Zset, Hash, интервьюер спросил, почему, ммм, это просто пощечина)
-
Механизм персистентности, разница между rdb и aof, как выбрать какой механизм (полный и инкрементальный, время резервного копирования, безопасность данных и т.д., сейчас есть гибридный механизм)
-
Каковы стратегии исключения (ответил на просроченную стратегию, напомнил интервьюер)

-
Почему Redis может выполнять операции самоинкремента и самодекремента над строкой (я этого не знаю)
-
Как оптимизировать редис? (понятия не имею)
-
Каковы обычно используемые коллекции в java? (список, набор, карта, класс реализации)
-
Разница между arrayList и linkedList (структура данных, скорость чтения и добавления и удаления, поточно-ориентированное копирование onwriteArrayList)
-
Я хочу вставить сотни тысяч данных в arrayList, каков метод оптимизации? (Я действительно не знаю этого)
-
Базовая структура hashmap, процесс ввода? Зачем добавлять красные и черные цифры? Можно ли использовать красно-черные деревья для всех построек? (Массив + связанный список + красно-черное дерево, вычислить хэш по ключу, вычислить индекс по хэшу, присвоить значение, если индекс равен нулю, если он не равен нулю, выполнить обход, чтобы определить, что хэш-код равен, и т. д. 1.7 использовать вставку головы, 1.8 использовать вставку хвоста, добавить Красно-черное дерево стабильно и эффективно, сложность запроса массива по времени o(1), степень репликации времени добавления и удаления связанного списка o(1), и красно-черное дерево равно o(log n).черное дерево)
-
Структура concurrenthashmap (блокировка сегмента 1.7, синхронизация 1.8cas+)
-
Разница между синхронизацией и блокировкой
-
Разница между hashtable и concurrenthashmap (другая структура, hashtable блокирует весь объект и метод)
-
Какие существуют блокировки Java? Класс реализации? что такое кас? что такое акс? (Оптимистичный и пессимистичный, справедливый и несправедливый, только сказал ReentrantLock, затем интервьюер спросил, что еще? cas, реализация оптимистичной блокировки вызовет проблему aba, добавьте номер версии или временную метку. aqs - это структура блокировки)
-
Как использовать пул потоков, часто используемые параметры? (используя ThreadPoolExecutor, основные потоки, максимальное количество потоков, время, очередь, фабрику потоков, политику отклонения)
-
Если есть 50 задач для выполнения, 5 основных потоков, 10 максимальных потоков и 10 очередей задач, каков процесс и каков статус? Как использовать стратегию отклонения для избыточных задач (создать 5 основных потоков, поставить 10 в очередь, когда очередь заполнится, создать 10 неосновных потоков, остальные 25 определяются в соответствии со стратегией отклонения, и сообщается об исключении по умолчанию, а остальные три: Либо игнорировать, либо отдать самый ранний поток, либо использовать поток для выполнения) (позже я узнал, что ответ был неверным, 10 потоков максимум, 5 ядер + 5 не-ядер, а остальные 30 следуйте стратегии отказа)
Интервьюер дал мне оценку: я могу ответить на интервью, что очень хорошо, но я мало знаю, хотя я не могу использовать это в своей работе, так строятся ракеты в интервью. Интервью неплохое, но и нехорошее в ожидании.
4. Kingdee Software (Сторона А, интервью в течение 40 минут)
-
Задают много вопросов по проекту, как спроектировать функцию, как спроектировать базу данных
-
Разница между левым соединением, правым соединением и внутренним соединением
-
план выполнения mysql, что посмотреть
-
Процесс выполнения Springmvc, от внешнего интерфейса к внутреннему и обратно к внешнему интерфейсу.
-
Проверка разрешения, как сделать проверку
-
Блокировки базы данных (оптимистические блокировки, пессимистические блокировки, эксклюзивные блокировки, общие блокировки)
-
Каким замкам соответствует выбор, обновление, удаление?
-
система сбора java (список, набор, карта)
-
На что обратить внимание при удалении элементов в arraylist
-
Является ли потокобезопасным arraylist (нет, потокобезопасным: vector, copyonwritearraylist)
-
Когда использовать arraylist, linkedList (частые добавления и удаления используют linkedList)
-
глубокая копия и мелкая копия
-
передача по значению и передача по ссылке
-
многопоточность, пул потоков
-
Как работает синхронизация ресурсов?
-
Может ли синхронизация изменять статические классы?
-
В чем разница между блокировкой и синхронизацией? Как бы вы выбрали
-
Как вы обычно учитесь (смотрите уроки, читайте блоги)
-
Каков твой план? (Планирование микросервисов, распределенных и т. д.)
-
В чем технические преимущества
-
Как оптимизировать и рефакторить код (единая ответственность, совместное использование и т. д.)
-
Как вы оптимизируете свой сайт для повышения производительности? (добавьте CDN, добавьте Redis)
-
Что ты хочешь у меня спросить? Какие технологии вы там используете? Интервьюер: Технологический стек представляет собой фреймворк инкапсуляции, в нем нет внешнего интерфейса, он использует компоненты перетаскивания или что-то в этом роде, микросервис — это даббо, база данных — это оракул, основное внимание уделяется бизнесу, а технология — второстепенна.
В конце концов, интервьюер сказал: "Есть четыре раунда интервью. Пожалуйста, обсудите это с директором после интервью (оставшиеся три раунда не являются техническими)
5. Ping An Bank (аутсорсинг, собеседование в течение 40 минут и, наконец, из-за чего-то прервано)
-
принцип запуска spirngboot (встроенный tomcat....)
-
Аннотация запуска (приложение Springboot)
-
конфигурация ядра SpringBoot
-
Способ настройки файла (yml, properties)
-
Рабочий процесс springmvc
-
Компоненты SpringMVC
-
Роль @RequestMapping (перехватывать URL)
-
Весенние часто используемые модули, ядро
-
Разговор о ioc и aop
-
Весенние обычно используемые методы впрыска
-
Вы знаете о весенней фасоли?
-
Реализация весенней транзакции
-
изоляция весны
-
Уровень изоляции базы данных (чтение незафиксированного, чтение зафиксированного, повторяемое чтение, сериализованное)
-
Влияние уровней изоляции (грязные чтения, неповторяемые чтения, фантомные чтения)
-
Атомарность, долговечность (неделимость, сохранение в базу данных)
-
Разница между char и varchar (размер байта, '' и "") Интервьюер продолжает спрашивать, есть ли еще что-то. . .
-
Разница между левым соединением и правым соединением
-
sql как ты настроил
-
план выполнения sql (объяснить)
-
Блокировка строки SQL и блокировка таблицы, преимущества (блокировка строки и блокировка всей таблицы)
-
оптимистическая блокировка, пессимистическая блокировка (номер версии, метка времени)
-
Движок mysql, отличие (innodb поддерживает внешние ключи, блокировки строк, поддерживает восстановление после сбоя, myisam поддерживает полнотекстовое индексирование)
-
выберите count(*) из таблицы, как выполняются данные, вызовет ли это полное сканирование таблицы (innodb не поддерживает полнотекстовый индекс, поэтому это вызовет полное сканирование таблицы в innodb)
-
Сколько байтов памяти для float и double
-
В таблице автоинкремента 6 кусков данных, два куска данных удаляются, и еще один кусок данных добавляется.Какой id у этого куска данных (innodb 7, myisam 5, а результат перевернуто)
-
Сценарии использования Redis, отличие от memcache
-
Постоянство redis (rdb и aof, полное, инкрементное)
-
Узнайте о распределении Redis, количестве узлов и некоторых командах.
-
Сценарий приложения nginx (разделение front-end и back-end, балансировка нагрузки)
-
Стратегия балансировки нагрузки (циклический перебор, веса и т. д.)
-
Как взаимодействуют фронтенд и бэкэнд
-
Прямой прокси и обратный прокси
-
Знаете ли вы что-нибудь о swagger (документация по интерфейсу)
-
Разница между == и равным
-
Вы понимаете стек?
-
Разница между stringbuilder и stringbuffer (безопасность потоков, эффективность)
-
потоки ввода-вывода (чтение и запись, входной поток и выходной поток)
-
Разница между файловым входным потоком и буферным входным потоком
-
Коллекция (список, набор, карта)
-
Какие потокобезопасные коллекции (vector, copyonwritearraylist, hashtable, concurrenthashmap)
-
Процесс реализации hashmap (головная заглушка 1.7, хвостовая заглушка 1.8)
-
hashset и linkedhashset (базовая хэш-карта, упорядоченная, базовая хэш-карта, неупорядоченная)
-
глубокая копия, мелкая копия
Время на расспросы почти 40 минут.Поскольку у меня еще есть работа, я прервал собеседование.В итоге второй тур собеседований пришелся на вечер.
Второй раунд интервью с Ping An Bank (26 минут)
-
Запрос MySQL, есть много связанных таблиц, как оптимизировать (таблица плюс поля, соответствующая избыточность, менее связанные таблицы, не используйте *, in, null или % и т. д.)
-
Аннулирование индекса (in, null или, % и т. д.)
-
Обычно используемые классы коллекций (список, набор, карта и классы реализации)
-
Какие есть потокобезопасные контейнеры (vector, copyonwritearraylist, hashtable, concurrenthashmap)
-
Как concurrenthashmap обеспечивает безопасность потоков (1.7 использует блокировку сегментов, 16 заблокированы, 1.8 использует cas+syn)
-
Структура данных hashmap (массив 1.7 + связанный список, многопоточность сформирует кольцо, cpu взлетит на 100%, массив 1.8 + связанный список + красно-черное дерево)
-
При каких обстоятельствах он будет преобразован в красно-черное дерево (ключ, хэш, массив больше 64, связанный список больше 8, преобразован в красно-черное дерево)
-
После перезаписи равенства вам все еще нужно переписать метод хэш-кода?
-
Является ли связный список двусвязным?
-
Структура данных Redis (строка, набор, набор сортировки, список, хэш, растровое изображение и т. д.)
-
распределенная блокировка redis
-
Вы понимаете дерево b+ (индекс mysql)
-
Разбивка кеша (инвалидация кеша, не найдено в кеше, данные в базе данных)
-
Решение (установить время аннулирования кеша случайным образом, разбить время или поставить отметку) (фактически, установить неограниченный срок действия данных точки доступа или добавить мьютекс и т. д.)
-
Вы понимаете threadlocal? (Я не слышу четко произношения, это звучит как логотип, и я не слышу его после трехкратного прослушивания, а затем я реагирую на то, что он собирается сказать позже)
-
Трудности, возникшие в проекте (функция mrp)
-
Когда процессор сервера поднимается выше 90, вы все еще можете использовать многопоточность?
-
Изучали ли вы какие-либо новые технологии в последнее время? (При изучении микросервисов)
-
Компоненты, связанные с микросервисами, о которых некоторые не слышали (скажите, для чего они нужны)
-
Знаете ли вы о zookeeper (распространено)
-
Что такое утечки памяти?
-
С профессиональной точки зрения + личность, оцените себя
-
Каким вы хотите, чтобы был ваш проект? (Технология, технологическая атмосфера)
-
Общие команды Linux (ls, cd, pwd, chmod, vi, где, найти двоичные файлы)
Интервьюер: Время прибытия относительно срочное, технологический стек — springboot+dubbo, кластер микросервисов, zookeeper+redis+mysql и т. д.
Оценка интервью: нет большой проблемы, надеюсь присоединиться в ближайшее время
конец
Не записаны JVM, микросервисы, распределенные и т. д. Сам не трогал, и забыл, когда услышал, и не успел написать. Есть также некоторые интервью, которые не записываются. Организация и запись интервью занимает много времени. Вышеуказанные в основном записывают технические интервью. Некоторые из интервью длились по 40 минут, расспрашивая о подробностях жизни, о каких хобби и блогах я писал раньше, помните? хх, ты помнишь, что писал? Откуда вы и будете ли вы в Шэньчжэне в будущем? Ошеломленный, продолжал просить больше 40 минут, может больше часа, если я не прерывал. Интервью с текущим счетом, подобное этому, на нем не написано.
В конце концов, мне повезло больше: после того, как я выиграл несколько предложений, мне все равно пришлось писать дополнительные вопросы для интервью, чтобы не быть в состоянии ответить на них, кроме того, было бы больше возможностей получить предложения.
Суммировать
Компания, которую я жду, относительно комфортна и стабильна, и ее можно рассматривать как теплицу.Бизнес относительно сложен (система ERP), структура проекта относительно проста, и один проект не был добавлен в кеш последним. год.Данных в одной таблице не более тысячи, а сейчас это 260 множественных таблиц. На данный момент 20 клиентов, процессор загружается до 90%, после чего сервер несколько раз падает. Позже наш технический директор решил отключить функцию (расчет MRP), а позже обнаружил, что это проблема с отчетом, ошибка oom, и изменил инструмент отчета. Через некоторое время добавьте память и добавьте серверы. (Микросервисы, распределенные приложения, кэширование, кластеризация и очереди сообщений не используются и не изучаются), и я выполнял некоторые сложные бизнес-функции и писал бизнес-код. Лучше уйти оттуда, где технологию нельзя улучшить раньше, хотя он мне мозги промыл, говоря, что бесполезно знать столько технологий, нельзя заниматься бизнесом, нельзя писать код, и неважно как многие технологии вы знаете, он равен нулю. Но я всегда в душе это отрицал, ведь я занимаюсь техникой, я могу понять основное дело, обсудить дело, а требования оставить руководителю проекта, и, наконец, организовать то, что я делаю. Если вы не пойдете по бизнес-маршруту, возьмите управление, разберитесь в технологиях и разберитесь в бизнесе. Не годится для дела учить пятерых подонок вроде меня.
Оригинальная ссылкаВу-Ву. В руинах нет следов.com/article/159…
Привет всем, я cxuan. Я написал четыре PDF-файла самостоятельно, а именно: «Сводка основ Java», «Сводка ядра HTTP», «Основы работы с компьютером» и «Сводка ядра операционной системы». Информация о качестве.