Резюме пунктов допуска к собеседованию по Java

интервью Java Redis Микросервисы Spring Шаблоны проектирования
Резюме пунктов допуска к собеседованию по Java

Оригинальный адрес:Блог Лян Гуйчжао

адрес блога:blog.720ui.com

Здесь, основываясь на моем прошлом опыте интервью, автор составил некоторые списки основных знаний, чтобы помочь читателям лучше изучить и изучить основные технологии сервера Java. В этой статье основное внимание будет уделено выявлению вопросов. Если позже будет время, автор последовательно выделит некоторые важные точки знаний для подробного анализа и ответов. Пожалуйста, обратите внимание на общедоступный аккаунт WeChat «Server Thinking», чтобы быть в курсе последних статей.

Основы

основные навыки

  • Объектно-ориентированные функции
  • Разница между final, finalize, finalize
  • В чем разница между int и Integer
  • Разница между перегрузкой и переопределением
  • В чем разница между абстрактным классом и интерфейсом
  • Расскажите об использовании и реализации отражения
  • Расскажите о сцене и реализации пользовательских аннотаций
  • Разница между GET и POST в HTTP-запросах
  • Разница между сеансом и файлом cookie
  • распределенная обработка сеанса
  • JDBC-процесс
  • Дизайнерское мышление MVC
  • Разница между равными и ==

собирать

  • Разница между списком и набором
  • Разница между списком и картой
  • Разница между Arraylist и LinkedList
  • Разница между ArrayList и Vector
  • Разница между HashMap и Hashtable
  • Разница между HashSet и HashMap
  • Разница между HashMap и ConcurrentHashMap
  • Принцип работы и реализация кода HashMap
  • Принцип работы и кодовая реализация ConcurrentHashMap

нить

  • Как создать поток и его реализация
  • В чем разница между sleep(), join(), yield()
  • Разговор о принципе CountDownLatch
  • Расскажите о принципе CyclicBarrier
  • Расскажите о принципе семафора.
  • Разговор о принципе Exchanger
  • Разговор о разнице между CountDownLatch и CyclicBarrier
  • Анализ принципа ThreadLocal
  • Расскажите о принципе реализации пула потоков
  • Несколько способов пула потоков
  • жизненный цикл нити

замок механизм

  • Разговор о безопасности потоков
  • изменчивый принцип реализации
  • принцип реализации синхронизации
  • Разница между синхронизацией и блокировкой
  • Оптимистическая блокировка CAS
  • АВА-проблема
  • Бизнес-сценарии и методы реализации оптимистической блокировки

Основные статьи

хранилище данных

  • Примечания по использованию индексов MySQL
  • Разговор о дизайне против шаблонов
  • Разговор о дизайне подбиблиотеки и подтаблицы
  • Распределенная дилемма и контрмеры, вызванные подбазой данных и подтаблицей
  • Разговор об оптимизации SQL
  • Проблема взаимоблокировки, с которой столкнулся MySQL
  • InnoDB и MyISAM для механизмов хранения
  • Принцип индексации базы данных
  • Зачем использовать B-дерево
  • Разница между кластеризованным индексом и некластеризованным индексом
  • лимит 20000 загрузка очень медленная как решить
  • Выбор подходящей схемы распределенного первичного ключа
  • Выберите правильное решение для хранения данных
  • Правила ObjectId
  • Расскажите о сценариях использования MongoDB
  • Перевернутый индекс
  • Расскажите о сценариях использования ElasticSearch

использование кеша

  • Какие бывают типы Redis
  • Внутренняя структура Redis
  • Расскажите о сценариях использования Redis
  • Механизм сохранения Redis
  • Как Redis реализует постоянство
  • Схема и реализация кластера Redis
  • Почему Redis однопоточный?
  • сбой кеша
  • Деградация кэша
  • Разумность использования кеша

очередь сообщений

  • Сценарии использования очередей сообщений
  • Решение для компенсации повторной передачи сообщений
  • Идемпотентное решение сообщений
  • решение для стека сообщений
  • Как реализовать очередь сообщений самостоятельно
  • Как обеспечить порядок сообщений

Рамочные статьи

Spring

  • В чем разница между BeanFactory и ApplicationContext
  • Жизненный цикл Spring Bean
  • Как реализован Spring IOC
  • Разговор о весеннем АОП
  • Принцип реализации Spring АОП
  • Динамические прокси (cglib и JDK)
  • Реализация весенней транзакции
  • Основной принцип транзакции Spring
  • Как настроить функцию реализации аннотации
  • Рабочий процесс Spring MVC
  • Процесс запуска Spring MVC
  • Принцип реализации синглтона Spring
  • Какие шаблоны проектирования используются в среде Spring
  • Другие продукты Spring (Srping Boot, Spring Cloud, Spring Security, Spring Data, Spring AMQP и т. д.)

Netty

  • Почему выбирают Нетти
  • Расскажите о сценариях использования Netty в бизнесе
  • Нативный NIO имеет ошибку epoll в JDK 1.7.
  • Что такое склеивание/распаковка TCP
  • Решение проблемы склеивания/распаковки TCP
  • Модель потоков Netty
  • Разговор о нулевой копии Нетти
  • Внутренний процесс выполнения Netty
  • Реализация переподключения Netty

Микросервисы

Микросервисы

  • Как разделить переднюю и заднюю части
  • Какие фреймворки являются микросервисами
  • Как вы понимаете структуру RPC
  • Расскажите о принципе реализации RPC
  • Расскажите о принципе реализации Dubbo
  • Как вы понимаете RESTful
  • Расскажите о том, как разработать хороший API
  • Как понять идемпотентность RESTful API
  • Как обеспечить идемпотентность интерфейсов
  • Разговор о теореме CAP и теории BASE
  • Как учитывать согласованность данных
  • Разговор о реализации возможной согласованности
  • Что вы думаете о микросервисах
  • Разница между микросервисами и SOA
  • Как разделить услуги
  • Как микросервисы управляют базами данных
  • Как бороться с исключениями из цепочек вызовов микросервисов
  • Для быстрого отслеживания и обнаружения проблем
  • Безопасность для микросервисов

распределенный

  • Расскажите об использовании распределенных сценариев в бизнесе
  • Распределенное решение сеанса
  • Сценарий распределенной блокировки
  • Дистрибутив — это реализация блокировок
  • Распределенная транзакция
  • Алгоритмы и реализации кластеризации и балансировки нагрузки
  • Разговор о дизайне подбиблиотеки и подтаблицы
  • Распределенная дилемма и контрмеры, вызванные подбазой данных и подтаблицей

Контрольный вопрос

  • Элементы безопасности и угроза STRIDE
  • Защита от распространенных веб-атак
  • Атака и защита безопасности связи с сервером
  • Анализ принципа HTTPS
  • Атака с понижением HTTPS
  • Авторизация и аутентификация
  • управление доступом на основе ролей
  • Управление доступом на основе данных

оптимизация производительности

  • Каковы показатели эффективности
  • Как обнаружить узкие места в производительности
  • Общие средства настройки производительности
  • Расскажите о том, как вы выполняете настройку производительности в своем проекте.

Инжиниринг

анализ спроса

  • Как вы понимаете и разделяете прототипы требований
  • Расскажите о своем понимании функциональных требований
  • Расскажите о своем понимании нефункциональных требований
  • Какие взаимодействия и улучшения вы предлагаете для продукта?
  • Как вы понимаете болевые точки пользователей

Способность к проектированию

  • Расскажите нам о диаграммах UML, которые вы использовали в своем проекте.
  • Как вы относитесь к компонентизации
  • Как вы относитесь к сервитизации?
  • Как вы занимаетесь моделированием предметной области
  • Как вы рисуете границы домена
  • Расскажите о моделировании предметной области в вашем проекте
  • Разговор об эскизном дизайне

Шаблоны проектирования

  • Какие шаблоны проектирования используются в вашем проекте
  • Расскажите об анализе использования шаблонов проектирования в распространенных фреймворках с открытым исходным кодом.
  • Расскажите нам о своем понимании принципов дизайна
  • 23 шаблона дизайна Идеи дизайна
  • Сходства и различия между шаблонами проектирования, такие как разница между шаблоном стратегии и шаблоном состояния.
  • Комбинация между шаблонами проектирования, такими как практика шаблона стратегии + простой шаблон factory
  • Производительность шаблонов проектирования, таких как одноэлементный шаблон, который работает лучше.

бизнес инжиниринг

  • Как работает разделение интерфейса в вашей системе?
  • Расскажите о своем процессе разработки
  • Как вы общаетесь со своей командой
  • Как вы проводите код-ревью
  • Расскажите нам о своем понимании технологий и бизнеса
  • Расскажите об исключении, с которым вы часто сталкиваетесь в своем проекте.
  • Расскажите о самом сложном баге, с которым вы столкнулись в проекте, и как его решить
  • Расскажите о трудностях, с которыми вы чаще всего сталкивались в проекте, и о том, как вы их решили
  • Как вы считаете, в чем недостатки вашего проекта?
  • Вы когда-нибудь сталкивались с CPU 100%, как устранить неполадки и решить
  • Сталкивались ли вы с OOM памяти, как устранить неполадки и решить их
  • Расскажите о своей практике гибкой разработки
  • Расскажите о своей практике DevOps
  • Расскажите об одном из самых ценных проектов в вашей работе и о своей роли в этом процессе.

мягкая сила

  • Расскажите мне о своих основных моментах
  • Скажи мне, какую книгу ты недавно читал
  • Расскажите мне о технических книгах, которые вы считаете наиболее значимыми
  • что делать после работы
  • Обсудить направление личного развития
  • Расскажите нам, какими навыками, по вашему мнению, должен обладать разработчик сервера
  • Расскажите нам, что вы думаете об архитекторе и чем в основном занимается архитектор
  • Расскажите о техническом эксперте, которого вы понимаете

(Заканчивать)

Другие интересные статьи можно найти в общедоступном аккаунте WeChat «Server Thinking»!